[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