gstreamer를 사용하여 YouTube 동영상을 스트리밍하고 싶습니다. 그래서 명령줄에 다음 명령을 내렸습니다.
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에 테스트를 거쳤습니다.