Gstreamer rtsp-spielen (mit Ton)
im newbie in gstreamer und einfach versuchen Sie zu wath rtsp-video-flow von Dlink 2103 Kamera.
Wenn ich versuche es (nur video):
gst-launch rtspsrc location=rtsp://192.168.0.20/live1.sdp ! \
rtph264depay ! \
h264parse ! capsfilter caps="video/x-h264,width=1280,height=800,framerate=(fraction)25/1" !
ffdec_h264 ! ffmpegcolorspace ! autovideosink
Ok.
Wenn ich es versuchen (nur audio):
gst-launch rtspsrc location=rtsp://192.168.0.20/live1.sdp ! \
rtpg726depay ! ffdec_g726 ! audioconvert ! audioresample ! autoaudiosink
Ist auch ok.
Nächstes werde ich versuchen, das Spiel sowohl für audio und video. gst-launch-Mann Seite wurde für erzeugen etwas wie dieses:
gst-launch-0.10 -m -vvv -e rtspsrc location=rtsp://192.168.0.20/live1.sdp latency=1000 ! \
gstrtpptdemux name=demuxer demuxer. ! \
queue ! \
rtph264depay ! h264parse ! capsfilter caps="video/x-h264,width=1280,height=800,framerate=(fraction)25/1" ! \
ffdec_h264 ! ffmpegcolorspace ! autovideosink demuxer. ! \
queue !
rtpg726depay ! ffdec_g726 ! audioconvert ! audioresample ! autoaudiosink
Aber video freez mit dem ersten frame. Ich versuche auch, diese klassische Weise mit decodebin (beide 1 und 2 ver):
gst-launch-0.10 -v souphttpsrc rtspsrc location=rtsp://192.168.0.20/live1.sdp !
decodebin name=decoder decoder. ! queue ! audioconvert ! audioresample !
autoaudiosink decoder. ! \
ffmpegcolorspace ! autovideosink
ABER auch freez auf den ersten frame.
EINER Weise, die ich haben Erfolg mit playbin...
gst-launch-0.10 playbin2 uri=rtsp://192.168.0.20/live1.sdp
IST ES mein schlechtes pipeline oder etwas falsch mit dlink Kamera? Können Sie mir sagen, Schlüssel-Wort, sollte ich mehr erfahren?
vielen Dank im Voraus !
InformationsquelleAutor devnull | 2012-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung 1 (Getestet)
Ok, ich habe meine eigene RTSP-server, um zu testen
Erstellte ich einen RTSP-server mit video-und audio-test-srcs mit den folgenden Informationen ( http://www.ip-sense.com/linuxsense/how-to-develop-a-rtsp-server-in-linux-using-gstreamer/ )
Makefile
Getestet decoding-pipeline. Es funktioniert!
Lösung 2 (Getestet)
Versuchen Sie es mit mux/demux-Kombination
Decodieren der pipeline
gst-launch filesrc location=file.ts ! typefind ! mpegtsdemux name=demux demux. ! queue ! h264parse ! ffdec_h264 ! autovideosink demux. ! queue ! mp3parse ! ffdec_mp3 ! audioconvert ! autoaudiosink demux.
Lösung 3 (Ungetestet)
Versuchen Sie es mit einem
Tee
basierten Ansatz. Auch laufengst-launch-0.10 -v playbin2 uri=rtsp://192.168.0.20/live1.sdp
. Beachten Sie die verbose-option. Dies wird Ihnen eine Menge Tipps, wie die Leitung zu bauen.Haben eine gemeinsame Quelle zu Tee bin -> Gabel diese in zwei Rohrleitungen, eine für audio-Dekodierung und eine für video-Dekodierung.
src -> T-SHIRT (Gabelung in zwei äste - sub-pipelines) -> (Zweig 1 audio demux -> audio-decoder -> audio sink) und (Zweig 2 video-demux -> video-decoder -> video sink)
Geben, die nach einem Schuss (ungetestet). Haben Sie möglicherweise zu zwicken diese pipeline ein bisschen, um es zu arbeiten, aber Sie erhalten die Idee.
InformationsquelleAutor enthusiasticgeek