为什么ffmpeg的报告不同的时间?(Why does ffmpeg report differen

2019-09-17 07:22发布

来源视频: http://www.artworknotavailable.com/tmp/ffmpegtest

QuickTime专业版7.7.1督察(Win 7的)报告的文件2398.mov以下

4.19MB
H.264
电影FPS:23.98
数据传输率:2.35兆位/秒
持续时间14:97

ffmpeg的报告以下(参见后的底足的ffmpeg版本信息)

ffmpeg的-i 2398.mov

似乎流1编解码帧速率从容器帧速率不同:47952.00(1分之47952) - >> 23.98(125分之2997)
输入#0,MOV,MP4,M4A,3GP,3G2,MJ2,从 '2398.mov':
元数据:
major_brand:QT

minor_version:537199360
compatible_brands:QT
时间:00:00:15.97,启动:0.-963005,比特率:2210千比特/秒
流#0.0(ENG):音频:AAC,48000赫兹,立体声,S16,152 kb / s的
流#0.1(ENG):视频:H264,YUV420P,848x480,2060千比特/秒,23.98帧,23.98 TBR,23976 TBN,47952 TBC

一秒钟比QuickTime的报告更长的时间。

作为一个实验,通过以下设置导出该文件从QuickTime专业版:

帧率:当前值
关键帧:每24帧
帧重排在
品质:高
编码最佳
数据速率:自动
优化下载
输出文件:qtime-export-2398.mov

QuickTime的检查报告:

5.62 MB
H.264
电影FPS:23.98
数据传输率:3.15兆位/秒
持续时间14:97

现在ffmpeg的报道:

ffmpeg的-i qtime-export-2398.mov

似乎流1编解码帧速率从容器帧速率不同:1200.00(1分之1200) - > 23.98(24000/1001)
输入#0,MOV,MP4,M4A,3GP,3G2,MJ2,从 'qtime-export-2398.mov':
元数据:
major_brand:QT
minor_version:537199360
compatible_brands:QT
时间:00:00:14.96,启动:0.000000,比特率:3153 KB /秒
流#0.0(ENG):音频:pcm_s16le,44100赫兹,2个通道,S16,1411 kb / s的
流#0.1(ENG):视频:H264,YUV420P,678x384,1738千比特/秒,23.98帧,23.98 TBR,600 TBN,1200 TBC

FFmpeg的持续时间从报告15.97跑到14.96(我可以.1生活)

难道这期间从比特率计算出来的?

我需要准确地报告的上传视频的持续时间,以及将它们转换成FLV。 谁能告诉我这到底是怎么回事,我如何才能解决这个问题?

下面ffmpeg的信息。 我已经试过这上的ffmpeg 2完全不同的安装/版本。 同样的结果。

FFmpeg的版本0.6.5,版权所有(C)2000-2010 FFmpeg的开发建立在2012年1月29日23时55分02秒用gcc 4.1.2 20080704(红帽4.1.2-51)配置:前缀= / USR - -libdir =的/ usr / lib64下--shlibdir =的/ usr / lib64下--mandir =的/ usr /共享/人--incdir =的/ usr /包括--disable-AviSynth的--extra-CFLAGS =' - O2 -g - 管-Wall -Wp,-D_FORTIFY_SOURCE = 2 -fexceptions -fstack保护器--param = SSP-缓冲器大小= 4 -m64 -mtune =通用-fPIC” --enable-avfilter --enable-avfilter-lavf - 使-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-了libmp3lame --enable-libopencore-amrnb --enable-libopencore-AMR-WB --enable-libx264 --enable -gpl --enable-非自由--enable-postproc --enable-pthreads的--enable共享--enable-swscale --enable-VDPAU --enable-版本3 --enable-x11grab libavutil 50.15。 1 / 50.15。 1 libavcodec的52.72。 2 / 52.72。 2 libavformat流52.64。 2 / 52.64。 2 libavdevice 52. 2. 0/52 2.0 libavfilter 1.19。 0 / 1.19。 0 libswscale 0.11。 0 / 0.11。 0 libpostproc 51. 2. 0/51 2.0 FFmpeg的0.6.5 libavutil 50.15。 1 / 50.15。 1 libavcodec的52.72。 2 / 52.72。 2 libavformat流52.64。 2 / 52.64。 2 libavdevice 52. 2. 0/52 2.0 libavfilter 1.19。 0 / 1.19。 0 libswscale 0.11。 0 / 0.11。 0 libpostproc 51. 2. 0/51 2.0

Answer 1:

我只是来看看第一个文件,这是为什么他们的报告不同的持续时间。

QuickTime是从“电影标题”收集持续时间值。 这里的数值是六百分之八千九百八十一=14.97秒。

FFmpeg的从“媒体标头”,其是23976分之383000=15.97秒用于视频和四万八千分之七十一万九千八百七十二用于音频= 15.00s收集持续时间值。

编辑:...和也回答您的其他问题: 谁能告诉我怎么可能会解决此问题? 我想象你正在使用的ffmpeg的文件转换成FLV的? 如果是的话,我会坚持到什么ffmpeg的报告。



Answer 2:

FFmpeg的显示“播放时间:00:00:14.96”在这里,请了解您的FFmpeg的版本是古老的(并且有许多已知的bug和回归),请参阅http://ffmpeg.org/download.html的信息,如何获取当前的git头,它总是建议。



文章来源: Why does ffmpeg report different durations?
标签: video ffmpeg