So fügen Sie mit qtdemux Audio- und Videoelemente für Gstreamer hinzu

So fügen Sie mit qtdemux Audio- und Videoelemente für Gstreamer hinzu

Ich möchte ein YouTube-Video mit Gstreamer streamen. Daher habe ich den folgenden Befehl in die Befehlszeile eingegeben:

gst-launch-0.10 souphttpsrc location=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA) ! typefind ! qtdemux name=demux demux.audio_00 ! multiqueue ! aacparse ! faad ! audioconvert ! pulsesink demux.video_00 ! multiqueue ! h264parse ! video/x-h264 ! ffdec_h264 ! videoscale ! video/x-raw-yuv,width=1024,height=768 ! sdlvideosink

Danach wird ein Fenster geöffnet, in dem weder Video noch Audio abgespielt wird. Ich habe die folgende Ausgabe in der Befehlszeile erhalten:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...

Daher habe ich den folgenden Befehl nur mit Audioelementen ausprobiert:

gst-launch-0.10 souphttpsrc location=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA) ! typefind ! qtdemux name=demux demux.audio_00 ! multiqueue ! aacparse ! faad ! audioconvert ! pulsesink 

Es ist in Ordnung, ich kann die Audioausgabe hören.

Ähnlich verhält es sich, wenn ich den folgenden Befehl nur mit Videoelementen eingebe:

gst-launch-0.10 souphttpsrc location=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA) ! typefind ! qtdemux name=demux demux.video_00 ! multiqueue ! h264parse ! video/x-h264 ! ffdec_h264 ! videoscale ! video/x-raw-yuv,width=1024,height=768 ! sdlvideosink

Ich kann die Videowiedergabe ohne Ton sehen.

Bitte helfen Sie mir, wo ich einen Fehler gemacht habe ...

Antwort1

Dasselbe erreichen Sie mit playbin2:

gst-launch-0.10 playbin2 uri=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA)

Zur Information: Dies ist die von playbin2 erstellte Pipeline (verwenden Sie „Bild anzeigen“ in Ihrem Browser, um es in voller Größe anzuzeigen):

Bildbeschreibung hier eingeben

Wenn Sie den Videostream mit 1024 x 768 rendern müssen, versuchen Sie stattdessen die folgende Pipeline:

gst-launch-0.10 uridecodebin name=dec uri=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA)  ! queue ! autoaudiosink dec. ! queue  ! videoscale ! video/x-raw-yuv,width=1024,height=768 ! autovideosink

Beide Tests am 14.04. waren OK.

verwandte Informationen