Я хочу транслировать видео с YouTube с помощью gstreamer. Поэтому я дал следующую команду в командной строке:
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
После этого открывается окно без воспроизведения видео или звука. Я получил следующий вывод в командной строке:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Поэтому я попробовал следующую команду только с аудиоэлементами:
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
Все в порядке, я слышу звук.
Аналогично, когда я дал следующую команду только с элементами видео:
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
Я могу смотреть видео без звука.
Пожалуйста, помогите мне, где я ошибся...
решение1
Того же результата можно добиться с помощью playbin2
:
gst-launch-0.10 playbin2 uri=$(/usr/local/bin/youtube-dl -g -f 18 i4jTHhXuKLA)
Для информации, это конвейер, созданный playbin2 (используйте «Просмотреть изображение» в вашем браузере, чтобы увидеть его в полном размере):
Если вам необходимо визуализировать видеопоток с разрешением 1024x768, попробуйте следующий конвейер:
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
Оба теста 14.04 прошли успешно.