[FFmpeg-trac] #1137(avformat:open): adher to start media time in QuickTime edts/elst

FFmpeg trac at avcodec.org
Tue Mar 27 21:04:21 CEST 2012


#1137: adher to start media time in QuickTime edts/elst
-------------------------------------+------------------------------------
             Reporter:  dericed      |                    Owner:
                 Type:  enhancement  |                   Status:  open
             Priority:  wish         |                Component:  avformat
              Version:  git-master   |               Resolution:
             Keywords:  mov edts     |               Blocked By:
             Blocking:               |  Reproduced by developer:  1
Analyzed by developer:  0            |
-------------------------------------+------------------------------------
Changes (by cehoyos):

 * status:  new => open
 * component:  undetermined => avformat
 * priority:  normal => wish
 * version:  unspecified => git-master
 * keywords:  quicktime, edts => mov edts
 * reproduced:  0 => 1


Old description:

> When a Quicktime file is opened in Quicktime 7 Pro, edited and saved (not
> "Save As" or "Export", but "Save") then a new moov chunk is written with
> the updated start times and durations in the edts chunk. Quicktime and
> VLC subsequently play the file back according to the edit list, but
> ffmpeg uses the entire timeline.
>
> To replicate the issue, I made a 5 second Quicktime file using
>
> {{{
> ffmpeg -f lavfi -t 5 -i testsrc -c:v ffv1 -an 5seconds.mov
> }}}
>
> and then opened it in Quicktime 7 Pro and edited out one second from the
> beginning and end. I then hit "Save" and renamed the file to
> 5seconds_cut_with_QT.mov.
>
> When I then tried to use 5seconds_cut_with_QT.mov as an input to ffmpeg
> the whole 5 seconds is decoded and used in the output, instead of the
> limited timeline specified in the edit list.
>

> {{{
> ffmpeg started on 2012-03-26 at 20:16:31
> Report written to "ffmpeg-20120326-201631.log"
> Command line:
> ffmpeg -y -report -i 5seconds_cut_with_QT.mov -c:v ffv1
> 5seconds_cut_with_QT_resaved.mov
> ffmpeg version N-35853-g8f0d9b4 Copyright (c) 2000-2012 the FFmpeg
> developers
>   built on Mar 26 2012 16:53:53 with gcc 4.2.1 (Apple Inc. build 5666)
> (dot 3)
>   configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared
> --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables
> --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-
> libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis
> --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-
> libopencore-amrwb --enable-libass
>   libavutil      51. 44.100 / 51. 44.100
>   libavcodec     54. 12.100 / 54. 12.100
>   libavformat    54.  3.100 / 54.  3.100
>   libavdevice    53.  4.100 / 53.  4.100
>   libavfilter     2. 66.100 /  2. 66.100
>   libswscale      2.  1.100 /  2.  1.100
>   libswresample   0. 10.100 /  0. 10.100
>   libpostproc    52.  0.100 / 52.  0.100
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] Format mov,mp4,m4a,3gp,3g2,mj2
> probed with size=2048 and score=100
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] ISO: File Type Major Brand: qt
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] All info found
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '5seconds_cut_with_QT.mov':
>   Metadata:
>     major_brand     : qt
>     minor_version   : 512
>     compatible_brands: qt
>     encoder         : Lavf54.3.100
>   Duration: 00:00:03.00, start: -1.000000, bitrate: 1383 kb/s
>     Stream #0:0(eng), 1, 1/25: Video: ffv1 (FFV1 / 0x31564646), bgr0,
> 320x240, 825 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
>     Metadata:
>       handler_name    : Apple Alias Data Handler
> [buffer @ 0x7fb7fa4195a0] w:320 h:240 pixfmt:bgr0 tb:1/1000000 sar:0/1
> sws_param:
> [ffv1 @ 0x7fb7fa87da00] detected 8 logical cores
> [ffv1 @ 0x7fb7fa853a00] detected 8 logical cores
> [mov @ 0x7fb7fa87d400] Using MS style video codec tag, the file may be
> unplayable!
> Output #0, mov, to '5seconds_cut_with_QT_resaved.mov':
>   Metadata:
>     major_brand     : qt
>     minor_version   : 512
>     compatible_brands: qt
>     encoder         : Lavf54.3.100
>     Stream #0:0(eng), 0, 1/25: Video: ffv1, bgr0, 320x240, q=2-31, 200
> kb/s, 25 tbn, 25 tbc
>     Metadata:
>       handler_name    : Apple Alias Data Handler
> Stream mapping:
>   Stream #0:0 -> #0:0 (ffv1 -> ffv1)
> Press [q] to stop, [?] for help
> frame=   93 fps=0.0 q=0.0 size=     380kB time=00:00:03.72 bitrate=
> 837.2kbits/s
> frame=  125 fps=0.0 q=0.0 Lsize=     505kB time=00:00:05.00 bitrate=
> 827.1kbits/s
> video:504kB audio:0kB global headers:0kB muxing overhead 0.247244%
>
> }}}

New description:

 When a Quicktime file is opened in Quicktime 7 Pro, edited and saved (not
 "Save As" or "Export", but "Save") then a new moov chunk is written with
 the updated start times and durations in the edts chunk. Quicktime and VLC
 subsequently play the file back according to the edit list, but ffmpeg
 uses the entire timeline.

 To replicate the issue, I made a 5 second Quicktime file using

 {{{
 ffmpeg -f lavfi -t 5 -i testsrc -c:v ffv1 -an 5seconds.mov
 }}}

 and then opened it in Quicktime 7 Pro and edited out one second from the
 beginning and end. I then hit "Save" and renamed the file to
 5seconds_cut_with_QT.mov.

 When I then tried to use 5seconds_cut_with_QT.mov as an input to ffmpeg
 the whole 5 seconds is decoded and used in the output, instead of the
 limited timeline specified in the edit list.


 {{{
 ffmpeg started on 2012-03-26 at 20:16:31
 Report written to "ffmpeg-20120326-201631.log"
 Command line:
 ffmpeg -y -report -i 5seconds_cut_with_QT.mov -c:v ffv1
 5seconds_cut_with_QT_resaved.mov
 ffmpeg version N-35853-g8f0d9b4 Copyright (c) 2000-2012 the FFmpeg
 developers
   built on Mar 26 2012 16:53:53 with gcc 4.2.1 (Apple Inc. build 5666)
 (dot 3)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared
 --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables
 --enable-libfreetype --cc=/usr/bin/gcc-4.2 --enable-libx264 --enable-
 libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis
 --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-
 libopencore-amrwb --enable-libass
   libavutil      51. 44.100 / 51. 44.100
   libavcodec     54. 12.100 / 54. 12.100
   libavformat    54.  3.100 / 54.  3.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 66.100 /  2. 66.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 10.100 /  0. 10.100
   libpostproc    52.  0.100 / 52.  0.100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] Format mov,mp4,m4a,3gp,3g2,mj2
 probed with size=2048 and score=100
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] ISO: File Type Major Brand: qt
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fb7fa84b400] All info found
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '5seconds_cut_with_QT.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf54.3.100
   Duration: 00:00:03.00, start: -1.000000, bitrate: 1383 kb/s
     Stream #0:0(eng), 1, 1/25: Video: ffv1 (FFV1 / 0x31564646), bgr0,
 320x240, 825 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
     Metadata:
       handler_name    : Apple Alias Data Handler
 [buffer @ 0x7fb7fa4195a0] w:320 h:240 pixfmt:bgr0 tb:1/1000000 sar:0/1
 sws_param:
 [ffv1 @ 0x7fb7fa87da00] detected 8 logical cores
 [ffv1 @ 0x7fb7fa853a00] detected 8 logical cores
 [mov @ 0x7fb7fa87d400] Using MS style video codec tag, the file may be
 unplayable!
 Output #0, mov, to '5seconds_cut_with_QT_resaved.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf54.3.100
     Stream #0:0(eng), 0, 1/25: Video: ffv1, bgr0, 320x240, q=2-31, 200
 kb/s, 25 tbn, 25 tbc
     Metadata:
       handler_name    : Apple Alias Data Handler
 Stream mapping:
   Stream #0:0 -> #0:0 (ffv1 -> ffv1)
 Press [q] to stop, [?] for help
 frame=   93 fps=0.0 q=0.0 size=     380kB time=00:00:03.72 bitrate=
 837.2kbits/s
 frame=  125 fps=0.0 q=0.0 Lsize=     505kB time=00:00:05.00 bitrate=
 827.1kbits/s
 video:504kB audio:0kB global headers:0kB muxing overhead 0.247244%

 }}}

--

Comment:

 (I wonder if using ffv1 for the sample instead of for example mpeg4 really
 is a good idea.)

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1137#comment:1>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list