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

Al Crate al at dneg.com
Wed Sep 19 16:10:25 CEST 2012


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


More information about the Libav-user mailing list