Я хочу передать потоком видео 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
Я могу посмотреть, что видео играет без аудио.
Помогите мне, где я пошел не так, как надо...
Можно достигнуть того же самого с 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.