GNOME Bugzilla – Bug 739031
Hangs during transcode preroll
Last modified: 2015-01-28 09:16:58 UTC
I am getting hangs during preroll when trying to transcode. Transmageddon also hangs without writing any data to the target file. Here is a simple command that should work: gst-launch-1.0 filesrc location=test.mpg ! decodebin ! vaapiencode_h264 ! matroskamux name=mux ! filesink Here is the output: Setting pipeline to PAUSED ... libva info: VA-API version 0.35.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_35 libva info: va_openDriver() returns 0 Pipeline is PREROLLING ... Got context from element 'vaapiencodeh264-0': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL; Redistribute latency... Then it just hangs until I ctrl+c, at which point it reports "ERROR: pipeline doesn't want to preroll." The verbose output looks like it makes it all the way through the decodebin before it freezes. I can play the video just fine with a pipeline like "filesrc... ! decodebin ! vaapisink" Here is the media info from the source file: General ID : 0 (0x0) Complete name : test.mpg Format : MPEG-TS File size : 19.8 MiB Duration : 20s 20ms Overall bit rate mode : Variable Overall bit rate : 8 309 Kbps Law rating : TV-14 (DL) Video ID : 3580 (0xDFC) Menu ID : 1 (0x1) Format : MPEG Video Format version : Version 2 Format profile : Main@High Format settings, BVOP : Yes Format settings, Matrix : Custom Format settings, GOP : M=3, N=30 Codec ID : 2 Duration : 19s 836ms Bit rate mode : Variable Bit rate : 7 316 Kbps Maximum bit rate : 20.0 Mbps Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate : 29.970 fps Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Compression mode : Lossy Bits/(Pixel*Frame) : 0.118 Stream size : 17.3 MiB (87%) Audio #1 ID : 3581 (0xDFD) Menu ID : 1 (0x1) Format : AC-3 Format/Info : Audio Coding 3 Mode extension : CM (complete main) Format settings, Endianness : Big Codec ID : 129 Duration : 19s 968ms Bit rate mode : Constant Bit rate : 384 Kbps Channel(s) : 2 channels Channel positions : Front: L R Sampling rate : 48.0 KHz Bit depth : 16 bits Compression mode : Lossy Delay relative to video : -998ms Stream size : 936 KiB (5%) Language : English Audio #2 ID : 3582 (0xDFE) Menu ID : 1 (0x1) Format : AC-3 Format/Info : Audio Coding 3 Mode extension : CM (complete main) Format settings, Endianness : Big Codec ID : 129 Duration : 20s 32ms Bit rate mode : Constant Bit rate : 192 Kbps Channel(s) : 2 channels Channel positions : Front: L R Sampling rate : 48.0 KHz Bit depth : 16 bits Compression mode : Lossy Delay relative to video : -1s 59ms Stream size : 470 KiB (2%) Language : Spanish Language, more info : Visual impaired commentary Text #1 ID : 3580 (0xDFC)-CC1 Menu ID : 1 (0x1) Format : EIA-608 Muxing mode : A/53 / DTVCC Transport Muxing mode, more info : Muxed in Video #1 Duration : 19s 836ms Bit rate mode : Constant Stream size : 0.00 Byte (0%) Text #2 ID : 3580 (0xDFC)-1 Menu ID : 1 (0x1) Format : EIA-708 Muxing mode : A/53 / DTVCC Transport Muxing mode, more info : Muxed in Video #1 Duration : 19s 836ms Bit rate mode : Constant Stream size : 0.00 Byte (0%) Menu ID : 53 (0x35) Menu ID : 1 (0x1) Duration : 20s 20ms List : 3580 (0xDFC) (MPEG Video) / 3581 (0xDFD) (AC-3, English) / 3582 (0xDFE) (AC-3, Spanish) Language : / English / Spanish Law rating : TV-14 (DL)
test.mpg can be downloaded here: https://drive.google.com/a/thefrys.com/file/d/0BzsBmmLNnJblbEgxODRDVXpNTGs/view?usp=sharing
Hm, something else is also broken in gstreamer-vaapi master it seems. Can't connect the decodebin even to vaapisink, with out having vaapipostproc. Note: I am fixing some other bugs now so this is not my immediate item ! But I will try to get back to this soon.
It seems like the content is interleaved, which is not supported by the vaapiencode_h264. So you have to use a postprocessing element.Please try the following pipeline with gstreamer-vaapi git master. gst-launch-1.0 -v filesrc location= test.mpg ! decodebin ! vaapipostproc ! vaapiencode_h264 ! vaapiparse_h264 ! matroskamux ! filesink location=sample.mkv
I am closing this for now , please feel free to re-open if comment_3 didn't help.