[Libav-user] prores variable frame rate last frame bug?

Al Crate al at dneg.com
Wed Sep 19 17:06:38 CEST 2012


here's the output using

	c->time_base.den = 24;
	c->time_base.num = 1;

   as opposed to

	c->time_base.den = 600;
	c->time_base.num = 25;

stream #0:
   keyframe=1
   duration=0.042
   dts=0.917  pts=0.917
   size=131592
stream #0:
   keyframe=1
   duration=0.042
   dts=0.958  pts=0.958
   size=131401

As seen the duration value looks correct.

On 19/09/12 15:10, Al Crate wrote:
> It appears the packet frame duration is being filled in incorrectly.
>
> DTS is incrementing by 0.042 every frame, whereas duration is shown to
> be 0.002.
>
> The quicktime plugin in avformat calculates the total duration as
> last_dts - first_dts + last_duration.
>
> This produces my shortened duration on the movie.
>
> I'm guessing av_interleaved_write_frame is filling in bad values.
>
> stream #0:
>    keyframe=1
>    duration=0.002
>    dts=0.917  pts=0.917
>    size=131592
> stream #0:
>    keyframe=1
>    duration=0.002
>    dts=0.958  pts=0.958
>    size=131401
>
>
> On 18/09/12 16:40, Al Crate wrote:
>> If I dump out the quicktime information I get this..
>>
>>        total_entries 2
>>         count 23 duration 25
>>         count 1 duration 1
>>
>> Definitely looks like the avformat movenc is doing something weird.
>>
>> quicktime_dump
>> ftyp
>>   major brand: qt
>>   minor version: 00000000
>>   compatible brands: qt
>> movie data (mdat)
>>   size 3127372
>>   start 1013
>> movie (moov)
>>   movie header (mvhd)
>>    version 0
>>    flags 0
>>    creation_time 2012-09-19 10:56:06 (3430806966)
>>    modification_time 2012-09-19 10:56:06 (3430806966)
>>    time_scale 1000
>>    duration 960
>>    preferred_rate 1.000000
>>    preferred_volume 1.000000
>>    reserved 00 00 00 00 00 00 00 00 00 00
>>     matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000
>> 0.000000 0.000000 16384.000000
>>    preview_time 0
>>    preview_duration 0
>>    poster_time 0
>>    selection_time 0
>>    selection_duration 0
>>    current_time 0
>>    next_track_id 2
>>   user data (udta)
>>    copyright: Double Negative
>>    comment:
>> source frame range:1-24
>>   track (trak)
>>    track header (tkhd)
>>     version 0
>>     flags 15
>>      creation_time 2012-09-19 10:56:06 (3430806966)
>>      modification_time 2012-09-19 10:56:06 (3430806966)
>>     track_id 1
>>     reserved1 0
>>     duration 960
>>     reserved2 00 00 00 00 00 00 00 00
>>     layer 0
>>     alternate_group 0
>>     volume 0.000000
>>     reserved3 0
>>     matrix 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000
>> 0.000000 0.000000 16384.000000
>>     track_width 640.000000
>>     track_height 480.000000
>>    edit atom (edts)
>>     edit list (elst)
>>      version 0
>>      flags 0
>>      total_entries 1
>>      edit list table
>>       duration 960
>>       time 0
>>       rate 1.000000
>>    media (mdia)
>>     media header (mdhd)
>>      version 0
>>      flags 0
>>      creation_time 2012-09-19 10:56:06 (3430806966)
>>      modification_time 2012-09-19 10:56:06 (3430806966)
>>      time_scale 600
>>      duration 576
>>      language 0
>>      quality 0
>>     handler reference (hdlr)
>>      version 0
>>      flags 0
>>      component_type mhlr
>>      component_subtype vide
>>      component_name VideoHandler
>>     media info (minf)
>>      is_audio     0
>>      is_audio_vbr 0
>>      is_video     1
>>      is_text      0
>>      is_timecode  0
>>      video media header (vmhd)
>>       version 0
>>       flags 1
>>       graphics_mode 0
>>       opcolor 0 0 0
>>     handler reference (hdlr)
>>      version 0
>>      flags 0
>>      component_type dhlr
>>      component_subtype url
>>      component_name DataHandler
>>      data information (dinf)
>>       data reference (dref)
>>        version 0
>>        flags 0
>>        data reference table (dref)
>>         type url
>>         version 0
>>         flags 1
>>         data
>>      sample table
>>       sample description (stsd)
>>        version 0
>>        flags 0
>>        total_entries 1
>>         format apch
>>         reserved 00 00 00 00 00 00
>>         data_reference 1
>>         version 0
>>         revision 0
>>         vendor FFMP
>>         temporal_quality 512
>>         spatial_quality 512
>>         width 640
>>         height 480
>>         dpi_horizontal 72.000000
>>         dpi_vertical 72.000000
>>         data_size 0
>>         frames_per_sample 1
>>         compressor_name prores
>>         depth 24
>>         ctab_id 65535
>>       color description (colr)
>>         colorParamType 1852009571
>>         primaries 6
>>         transferFunction 1
>>         matrix 6
>>       time to sample (stts)
>>        version 0
>>        flags 0
>>        total_entries 2
>>         count 23 duration 25
>>         count 1 duration 1
>>       sample to chunk (stsc)
>>        version 0
>>        flags 0
>>        total_entries 1
>>         chunk 1 samples 1 id 1
>>       sample size (stsz)
>>        version 0
>>        flags 0
>>        sample_size 0
>>        total_entries 24
>>         sample_size 1f24f (127567)
>>         sample_size 1e8ad (125101)
>>         sample_size 1fcdd (130269)
>>         sample_size 1fb3d (129853)
>>         sample_size 1fc53 (130131)
>>         sample_size 1fc1a (130074)
>>         sample_size 1fad4 (129748)
>>         sample_size 1fc62 (130146)
>>         sample_size 1fd07 (130311)
>>         sample_size 1fedf (130783)
>>         sample_size 1fb52 (129874)
>>         sample_size 1fe7e (130686)
>>         sample_size 2008c (131212)
>>         sample_size 1fe51 (130641)
>>         sample_size 1fe49 (130633)
>>         sample_size 1ff44 (130884)
>>         sample_size 1fea2 (130722)
>>         sample_size 1ff24 (130852)
>>         sample_size 1ff30 (130864)
>>         sample_size 201e9 (131561)
>>         sample_size 1ffd1 (131025)
>>         sample_size 2016a (131434)
>>         sample_size 20208 (131592)
>>         sample_size 20149 (131401)
>>       chunk offset (stco)
>>        version 0
>>        flags 0
>>        total_entries 24
>>         offset 0 1021 (3fd)
>>         offset 1 128588 (1f64c)
>>         offset 2 253689 (3def9)
>>         offset 3 383958 (5dbd6)
>>         offset 4 513811 (7d713)
>>         offset 5 643942 (9d366)
>>         offset 6 774016 (bcf80)
>>         offset 7 903764 (dca54)
>>         offset 8 1033910 (fc6b6)
>>         offset 9 1164221 (11c3bd)
>>         offset 10 1295004 (13c29c)
>>         offset 11 1424878 (15bdee)
>>         offset 12 1555564 (17bc6c)
>>         offset 13 1686776 (19bcf8)
>>         offset 14 1817417 (1bbb49)
>>         offset 15 1948050 (1db992)
>>         offset 16 2078934 (1fb8d6)
>>         offset 17 2209656 (21b778)
>>         offset 18 2340508 (23b69c)
>>         offset 19 2471372 (25b5cc)
>>         offset 20 2602933 (27b7b5)
>>         offset 21 2733958 (29b786)
>>         offset 22 2865392 (2bb8f0)
>>         offset 23 2996984 (2dbaf8)
>>
>>
>> On 18/09/12 16:23, Al Crate wrote:
>>> Cheers!
>>>
>>> At least I've a clue as to where to start looking now :)
>>>
>>> Heh lol, no idea where that to came from, must be thunderbird being
>>> "smart"
>>>
>>>
>>> On 18/09/12 15:57, Edward Richards wrote:
>>>> Hi,
>>>>
>>>> PTS/DTS values are not affected by the ProRes encoder at all. They are
>>>> created in the MOV wrapper during the write_interleaved()
>>>>
>>>> Debug that bit to work out how it is making the DTS/PTS longer for the
>>>> last
>>>> one.
>>>>
>>>> E
>>>>
>>>> PS: Love your TO name for the mailing list.
>>>>
>>>>
>>>> _______________________________________________
>>>> Libav-user mailing list
>>>> Libav-user at ffmpeg.org
>>>> http://ffmpeg.org/mailman/listinfo/libav-user
>>>>
>>> _______________________________________________
>>> Libav-user mailing list
>>> Libav-user at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/libav-user
>> _______________________________________________
>> Libav-user mailing list
>> Libav-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/libav-user
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user


More information about the Libav-user mailing list