Gstreamer rtsp de jeu (avec le son)
im débutant dans gstreamer et simple essayez de visualiser rtsp flux vidéo à partir de Dlink 2103 caméra.
Quand j'ai essayer (juste la vidéo):
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
Son ok.
Quand j'ai essayer (audio):
gst-launch rtspsrc location=rtsp://192.168.0.20/live1.sdp ! \
rtpg726depay ! ffdec_g726 ! audioconvert ! audioresample ! autoaudiosink
Il est aussi ok.
Ensuite, j'ai essayer de jouer à la fois de l'audio et de la vidéo. tps-lancement de la page de manuel a été utilisé pour générer quelque chose comme ceci:
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
Mais la vidéo freez avec la première image. J'ai aussi essayer de cette façon classique à l'aide de decodebin (1 et 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
MAIS aussi freez sur la première image.
UNE façon que j'ai de la réussite à l'aide de playbin...
gst-launch-0.10 playbin2 uri=rtsp://192.168.0.20/live1.sdp
C'EST mon mauvais pipeline ou quelque chose de mal avec dlink camera? Pouvez-vous me dire mot-clé que je devrais apprendre plus?
merci d'avance !
- Cela fonctionne lorsque vous utilisez un multiqueue, au lieu des deux éléments de la file d'attente?
Vous devez vous connecter pour publier un commentaire.
Solution 1 (Testé)
Ok, j'ai fait mon propre serveur RTSP pour tester
J'ai créé un serveur RTSP l'utilisation de la vidéo et de l'audio test de croix de saint-andré en utilisant les informations suivantes ( http://www.ip-sense.com/linuxsense/how-to-develop-a-rtsp-server-in-linux-using-gstreamer/ )
Makefile
Testé le décodage du pipeline. Il fonctionne très bien!
solution 2 (Testé)
Essayez d'utiliser mux/demux combinaison
Pour décoder le 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.
Solution 3 (Non Testé)
Essayez d'utiliser un
Tee
approche fondée sur les. Également exécutergst-launch-0.10 -v playbin2 uri=rtsp://192.168.0.20/live1.sdp
. Avis de l'option verbose. Cela vous donnera beaucoup de conseils sur la façon de construire le pipeline.Ont une source commune de Tee bin -> fourche en deux pipelines un pour l'audio de décodage et un pour le décodage vidéo.
src -> té (fourche en deux branches - sous pipelines) -> (branche 1 audio demux -> décodeur audio -> audio lavabo) et (branche 2 aura une vidéo demux -> décodeur vidéo -> vidéo lavabo)
Donner à la suite d'un coup (non testé). Vous pouvez avoir à modifier ce pipeline un peu pour le faire fonctionner, mais vous aurez une idée.