LINUX.ORG.RU

помогите составить конвеер gst-launch


1

1

помогите запустить gst-launch, то есть правильно составить конвеер. Есть файл который корректно проигрывается mplayer`ом, но вызов

$ gst-launch-0.10 -t -v filesrc location=video.bin ! decodebin ! xvimagesink
выдаёт некорректную картинку : http://www.4shared.com/photo/HePLBFCM/badvideo.html при этом выхлоп gst-launch:
Установка конвейера в состояние PAUSED...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
Подготовка конвейера (PREROLL)...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = video/x-raw-yuv, width=(int)720, height=(int)480, framerate=(fraction)10/1, format=(fourcc)I420, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1
Конвейер подготовлен (PREROLLED)...
Установка конвейера в состояние PLAYING...
New clock: GstSystemClock
Получен маркер EOS («конец потока») от элемента «pipeline0».
Execution ended after 35000047911 ns.
Установка конвейера в состояние PAUSED...
Установка конвейера в состояние READY...
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/ffdec_mpeg4:ffdec_mpeg40.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL
Установка конвейера в состояние NULL...
Освобождение конвейера...
а выхлоп mplayer на том-же файле :
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Audio: no sound
Freeing 0 unused audio chunks.
Starting playback...
[ffmpeg] aspect_ratio: 1.500000
VDec: vo config request - 720 x 480 (preferred colorspace: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.50:1 - prescaling to correct movie aspect.
VO Config (720x480->720x480,flags=0,'MPlayer',0x32315659)
VO: [vdpau] 720x480 => 720x480 Planar YV12 
VO: Description: VDPAU with X11
VO: Author: Rajib Mahapatra <rmahapatra@nvidia.com> and others
[vdpau] Updating CSC matrix for BT.601
подозреваю что gst-launch некорректно подобрал кодек, но как ему сказать мои предпочтения - пока не понял :(

сам видеофайл - http://www.4shared.com/file/5KZbjDZb/video.html?refurl=d1url

★★★★★

solved

проблема оказалось на редкость простой: gst-launch корректно определил тип файла, кодек, но не стал подбирать парсер (разборщик на фреймы).

диагностируется следующим образом :

$ gst-typefind video.bin
video.bin - video/mpeg, systemstream=(boolean)false, mpegversion=(int)4, parsed=(boolean)false
свойство parsed=false говорит, что поток неразобран и нужен парсер. В свою очередь `gst-inspect | grep parser` в числе прочих выдаёт mpeg4videoparse. Применение которого и решает проблему:
$ gst-launch filesrc location=video.bin ! mpeg4videoparse ! ffdec_mpeg4 !  xvimagesink
ЗАРАБОТАЛО !

MKuznetsov ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.