[Bug 787795] flvdemux: unable to handle file that works fine in ffmpeg

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Sep 18 08:31:18 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=787795

--- Comment #2 from Nicola <lists at svrinformatica.it> ---
enabling avdemux_flv in gst-libav and applying these small modifications/hacks:

1) here:
https://cgit.freedesktop.org/gstreamer/gst-libav/tree/ext/libav/gstavdemux.c#n1424
use pkt.dts if pkt.pts < 0
2) here:
https://cgit.freedesktop.org/gstreamer/gst-libav/tree/ext/libav/gstavcodecmap.c#n1244
adding stream-format avc to the caps

make this pipeline works as expected:

gst-launch-1.0 -v filesrc location=/tmp/test.flv ! avdemux_flv name=demux
demux.video_0 ! queue ! avdec_h264 ! xvimagesink demux.audio_0 ! queue !
aacparse ! avdec_aac ! pulsesink

here is the verbose gst-launch output with useful info about the right codec
data ecc..

/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h264,
width=(int)540, height=(int)304, framerate=(fraction)25/1,
alignment=(string)au, stream-format=(string)avc,
codec_data=(buffer)014d001effe10024674d401e965604413f7ffe0980097e9100000300010000030032e8c00ac00158af7be0a001000568ef060cc8
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-h264,
width=(int)540, height=(int)304, framerate=(fraction)25/1,
alignment=(string)au, stream-format=(string)avc,
codec_data=(buffer)014d001effe10024674d401e965604413f7ffe0980097e9100000300010000030032e8c00ac00158af7be0a001000568ef060cc8
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = audio/mpeg,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003,
mpegversion=(int)4, stream-format=(string)raw, base-profile=(string)lc,
level=(string)1, profile=(string)lc, codec_data=(buffer)1390
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = audio/mpeg,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003,
mpegversion=(int)4, stream-format=(string)raw, base-profile=(string)lc,
level=(string)1, profile=(string)lc, codec_data=(buffer)1390
/GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:src: caps = audio/mpeg,
rate=(int)22050, channels=(int)2, channel-mask=(bitmask)0x0000000000000003,
mpegversion=(int)4, stream-format=(string)raw, base-profile=(string)lc,
level=(string)1, profile=(string)lc, codec_data=(buffer)1390,
framed=(boolean)true
Redistribute latency...
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps =
video/x-h264, width=(int)540, height=(int)304, framerate=(fraction)25/1,
alignment=(string)au, stream-format=(string)avc,
codec_data=(buffer)014d001effe10024674d401e965604413f7ffe0980097e9100000300010000030032e8c00ac00158af7be0a001000568ef060cc8
/GstPipeline:pipeline0/avdec_aac:avdec_aac0.GstPad:sink: caps = audio/mpeg,
rate=(int)22050, channels=(int)2, channel-mask=(bitmask)0x0000000000000003,
mpegversion=(int)4, stream-format=(string)raw, base-profile=(string)lc,
level=(string)1, profile=(string)lc, codec_data=(buffer)1390,
framed=(boolean)true
/GstPipeline:pipeline0/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg,
rate=(int)44100, channels=(int)2, channel-mask=(bitmask)0x0000000000000003,
mpegversion=(int)4, stream-format=(string)raw, base-profile=(string)lc,
level=(string)1, profile=(string)lc, codec_data=(buffer)1390
/GstPipeline:pipeline0/avdec_aac:avdec_aac0.GstPad:src: caps = audio/x-raw,
format=(string)F32LE, layout=(string)interleaved, rate=(int)44100,
channels=(int)2, channel-mask=(bitmask)0x0000000000000003
Redistribute latency...
/GstPipeline:pipeline0/GstPulseSink:pulsesink0.GstPad:sink: caps = audio/x-raw,
format=(string)F32LE, layout=(string)interleaved, rate=(int)44100,
channels=(int)2, channel-mask=(bitmask)0x0000000000000003
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw,
format=(string)I420, width=(int)540, height=(int)304,
interlace-mode=(string)progressive, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1216/1215, chroma-site=(string)mpeg2,
colorimetry=(string)bt601, framerate=(fraction)25/1
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps =
video/x-raw, format=(string)I420, width=(int)540, height=(int)304,
interlace-mode=(string)progressive, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1216/1215, chroma-site=(string)mpeg2,
colorimetry=(string)bt601, framerate=(fraction)25/1


fixing flvdemux would be better but it seems not easy as enabling/fixing, using
avdemux_flv

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list