[FFmpeg-devel] H264 video and AVPacket::duration

Alex Sukhanov alx.sukhanov at gmail.com
Wed Nov 20 20:02:10 CET 2013


On Tue, Nov 19, 2013 at 5:58 PM, Michael Niedermayer <michaelni at gmx.at>wrote:

> On Tue, Nov 19, 2013 at 02:27:55PM -0800, Alex Sukhanov wrote:
> > Hi Michael and ffmpeg-devel,
> >
> > I recently found that for H264 video ffmpeg demuxers and ffprobe doesn't
> > set AVPacket::duration field.
> > This is typical ffprobe output for H264 video packed into FLV container:
> >
> >
> packet|codec_type=audio|stream_index=1|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=9|pos=103|flags=K_
> >
> *packet|codec_type=video|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=N/A|duration_time=N/A|convergence_duration=N/A|convergence_duration_time=N/A|size=4188|pos=132|flags=K_*
> >
> packet|codec_type=audio|stream_index=1|pts=23|pts_time=0.023000|dts=23|dts_time=0.023000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=9|pos=4337|flags=K_
> >
> *packet|codec_type=video|stream_index=0|pts=37|pts_time=0.037000|dts=37|dts_time=0.037000|duration=N/A|duration_time=N/A|convergence_duration=N/A|convergence_duration_time=N/A|size=43|pos=4366|flags=__*
> >
> packet|codec_type=audio|stream_index=1|pts=46|pts_time=0.046000|dts=46|dts_time=0.046000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=9|pos=4426|flags=K_
> >
> packet|codec_type=audio|stream_index=1|pts=70|pts_time=0.070000|dts=70|dts_time=0.070000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=56|pos=4452|flags=K_
> >
> *packet|codec_type=video|stream_index=0|pts=73|pts_time=0.073000|dts=73|dts_time=0.073000|duration=N/A|duration_time=N/A|convergence_duration=N/A|convergence_duration_time=N/A|size=26|pos=4528|flags=__*
> >
> packet|codec_type=audio|stream_index=1|pts=93|pts_time=0.093000|dts=93|dts_time=0.093000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=607|pos=4571|flags=K_
> >
> *packet|codec_type=video|stream_index=0|pts=110|pts_time=0.110000|dts=110|dts_time=0.110000|duration=N/A|duration_time=N/A|convergence_duration=N/A|convergence_duration_time=N/A|size=31|pos=5198|flags=__*
> >
> packet|codec_type=audio|stream_index=1|pts=116|pts_time=0.116000|dts=116|dts_time=0.116000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=599|pos=5246|flags=K_
> >
> packet|codec_type=audio|stream_index=1|pts=139|pts_time=0.139000|dts=139|dts_time=0.139000|duration=23|duration_time=0.023000|convergence_duration=N/A|convergence_duration_time=N/A|size=611|pos=5862|flags=K_
> >
> >
> > I found following patch, which may be related:
> >
> http://git.videolan.org/?p=ffmpeg.git;a=commit;h=497431a5b645ffc39cf3acbd333c9ff0f3031adb
> > I understand the problem with interlaced video  which you fixed in this
> > patch, but I wanted to ask you If it's possible to move back calculation
> of
> > AVPacket::duration for codecs which support Interlace?
> >
> > I would like to solve my problem and rollback aforementioned patch, but
> > before that I wanted to check with you and probably encourage some
> > discussion.
> > What do you think? Should I elaborate a fix in different way?
>
> if you have a file with mixed interlaced and progressive packets
> does reverting the commit produce correct durations?
> what if a parser is initialized ?
>
> also can you share the/a file that is affected (its always useful
> if everyone can look at the same data insteda of everyone using a
> different file)
>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> it is not once nor twice but times without number that the same ideas make
> their appearance in the world. -- Aristotle
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> Hi,

I was told that I can share file only with Michael. File sent directly to
him. Sorry that I can not share it with everyone.
I had some time yesterday to study FFmpeg version which we use currently
(It's a few years old), and I found that we modified our FFmpeg and moved
AVPacket::duration computation back. Now we are updating FFmpeg and we
faced with this problem again. As long as we computed AVPacket::duration
all the time, looks like it's safe to rollback
http://git.videolan.org/?p=ffmpeg.git;a=commit;h=497431a5b645ffc39cf3acbd333c9ff0f3031adb

I saw that Carl's email how to retrieve your file. Let me try it also.

Thanks for your help


More information about the ffmpeg-devel mailing list