[FFmpeg-trac] #445(FFmpeg:new): Wrong FLV duration metadata field
FFmpeg
trac at avcodec.org
Fri Sep 9 04:55:24 CEST 2011
#445: Wrong FLV duration metadata field
-------------------------------------+-------------------------------------
Reporter: burek | Owner: michael
Type: defect | Status: new
Priority: minor | Component: FFmpeg
Version: git-master | Resolution:
Keywords: flv meta | Blocked By:
duration | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by burek):
I'm not sure what output do you need, because it happens with hundreds of
videos I've been working for so far. For example:
ffmpeg -f video4linux2 -i /dev/video0 -vcodec libx264 -crf 20 -threads 0
out.flv
and then
ffmpeg -ss 00:01:00 -t 00:00:25 -i out.flv -acodec copy -vcodec copy
sample.flv
The file sample.flv has got an invalid metadata "duration" field.
Here is the actual example:
{{{
# ffmpeg -i final.flv
ffmpeg version git-2011-08-19-ada49f9, Copyright (c) 2000-2011 the FFmpeg
developers
built on Sep 5 2011 12:41:18 with gcc 4.6.1
configuration: --enable-static --enable-shared --enable-gpl --enable-
nonfree --enable-postproc --enable-runtime-cpudetect --enable-bzlib
--enable-libfaac --enable-libopenjpeg --enable-libx264 --enable-zlib
--enable-libaacplus --enable-libfaac --extra-cflags=-fPIC
libavutil 51. 12. 0 / 51. 12. 0
libavcodec 53. 11. 0 / 53. 11. 0
libavformat 53. 8. 0 / 53. 8. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 32. 0 / 2. 32. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x1f0c420] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 50.00
(50/1) -> 50.00 (50/1)
Input #0, flv, from 'final.flv':
Metadata:
duration : 21117
width : 320
height : 240
videodatarate : 118
framerate : 50
videocodecid : 7
audiodatarate : 31
audiosamplerate : 44100
audiosamplesize : 16
stereo : true
audiocodecid : 10
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
creation_time : 1970-01-01 00:00:00
encoder : Lavf53.8.0
filesize : 421422299
Duration: 05:51:57.33, start: 0.040000, bitrate: 152 kb/s
Stream #0.0: Video: h264 (High), yuv420p, 320x240, 120 kb/s, 50 tbr,
1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, 2 channels (FC), s16, 32 kb/s
At least one output file must be specified
}}}
and then
{{{
# ffmpeg -ss 00:00:10 -t 00:00:30 -i final.flv -acodec copy -vcodec copy
sample.flv
ffmpeg version git-2011-08-19-ada49f9, Copyright (c) 2000-2011 the FFmpeg
developers
built on Sep 5 2011 12:41:18 with gcc 4.6.1
configuration: --enable-static --enable-shared --enable-gpl --enable-
nonfree --enable-postproc --enable-runtime-cpudetect --enable-bzlib
--enable-libfaac --enable-libopenjpeg --enable-libx264 --enable-zlib
--enable-libaacplus --enable-libfaac --extra-cflags=-fPIC
libavutil 51. 12. 0 / 51. 12. 0
libavcodec 53. 11. 0 / 53. 11. 0
libavformat 53. 8. 0 / 53. 8. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 32. 0 / 2. 32. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x82f420] Estimating duration from bitrate, this may be inaccurate
Seems stream 0 codec frame rate differs from container frame rate: 50.00
(50/1) -> 50.00 (50/1)
Input #0, flv, from 'final.flv':
Metadata:
duration : 21117
width : 320
height : 240
videodatarate : 118
framerate : 50
videocodecid : 7
audiodatarate : 31
audiosamplerate : 44100
audiosamplesize : 16
stereo : true
audiocodecid : 10
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
creation_time : 1970-01-01 00:00:00
encoder : Lavf53.8.0
filesize : 421422299
Duration: 05:51:57.33, start: 0.040000, bitrate: 152 kb/s
Stream #0.0: Video: h264 (High), yuv420p, 320x240, 120 kb/s, 50 tbr,
1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, 2 channels (FC), s16, 32 kb/s
Output #0, flv, to 'sample.flv':
Metadata:
duration : 21117
width : 320
height : 240
videodatarate : 118
framerate : 50
videocodecid : 7
audiodatarate : 31
audiosamplerate : 44100
audiosamplesize : 16
stereo : true
audiocodecid : 10
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
creation_time : 1970-01-01 00:00:00
filesize : 421422299
encoder : Lavf53.8.0
Stream #0.0: Video: libx264, yuv420p, 320x240, q=2-31, 120 kb/s, 1k
tbn, 1k tbc
Stream #0.1: Audio: libaacplus, 44100 Hz, 2 channels (FC), 32 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop, [?] for help
frame= 780 fps= 0 q=-1.0 Lsize= 629kB time=00:00:29.96 bitrate=
172.1kbits/s
video:480kB audio:122kB global headers:0kB muxing overhead 4.504534%
}}}
so, sample.flv has got wrong duration (21117 instead of 25 or 31, i guess
it's just been copied from the original flv file, i.e. not calculated):
{{{
# ffmpeg -i sample.flv
ffmpeg version git-2011-08-19-ada49f9, Copyright (c) 2000-2011 the FFmpeg
developers
built on Sep 5 2011 12:41:18 with gcc 4.6.1
configuration: --enable-static --enable-shared --enable-gpl --enable-
nonfree --enable-postproc --enable-runtime-cpudetect --enable-bzlib
--enable-libfaac --enable-libopenjpeg --enable-libx264 --enable-zlib
--enable-libaacplus --enable-libfaac --extra-cflags=-fPIC
libavutil 51. 12. 0 / 51. 12. 0
libavcodec 53. 11. 0 / 53. 11. 0
libavformat 53. 8. 0 / 53. 8. 0
libavdevice 53. 3. 0 / 53. 3. 0
libavfilter 2. 32. 0 / 2. 32. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x65a420] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'sample.flv':
Metadata:
stereo : true
duration : 21117
width : 320
height : 240
videodatarate : 118
framerate : 50
videocodecid : 7
audiodatarate : 31
audiosamplerate : 44100
audiosamplesize : 16
audiocodecid : 10
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
creation_time : 1970-01-01 00:00:00
encoder : Lavf53.8.0
filesize : 644492
Duration: 00:00:31.32, start: 0.024000, bitrate: 152 kb/s
Stream #0.0: Video: h264 (High), yuv420p, 320x240, 120 kb/s, 25 tbr,
1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, 2 channels (FC), s16, 32 kb/s
At least one output file must be specified
}}}
--
Ticket URL: <https://avcodec.org/trac/ffmpeg/ticket/445#comment:2>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list