【发布时间】:2012-05-25 06:54:17
【问题描述】:
来源视频:http://www.artworknotavailable.com/tmp/ffmpegtest
Quicktime Pro 7.7.1 Inspector (Win 7) 报告文件 2398.mov 的以下内容
4.19MB
H.264
电影 FPS:23.98
数据速率:2.35 mb/秒
时长 14:97
ffmpeg 报告以下内容(请参阅帖子底部的完整 ffmpeg 版本信息)
ffmpeg -i 2398.mov
似乎流 1 编解码器帧速率与容器帧速率不同:47952.00 (47952/1) -> >23.98 (2997/125)
输入#0, mov,mp4,m4a,3gp,3g2,mj2, from '2398.mov':
元数据:
主要品牌:qt次要版本:537199360 兼容品牌:qt
时长:00:00:15.97,开始:0.-963005,比特率:2210 kb/s
流 #0.0(eng):音频:aac、48000 Hz、立体声、s16、152 kb/s
流 #0.1(eng):视频:h264、yuv420p、848x480、2060 kb/s、23.98 fps、23.98 tbr、23976 tbn、47952 tbc
比 Quicktime 报告的时间长一秒。
作为一项实验,我使用以下设置从 Quicktime Pro 导出了这个文件:
帧速率:当前
关键帧:每 24 帧
帧重新排序开启
质量:高
最佳编码
数据速率:自动
优化下载
输出文件:qtime-export-2398.mov
Quicktime Inspector 报告:
5.62 MB
H.264
电影 FPS:23.98
数据速率:3.15 mb/秒
时长 14:97
ffmpeg 现在报告:
ffmpeg -i qtime-export-2398.mov
似乎流 1 编解码器帧速率与容器帧速率不同:1200.00 (1200/1) -> 23.98 (24000/1001)
输入 #0, mov,mp4,m4a,3gp,3g2,mj2, from 'qtime-export-2398.mov':
元数据:
主要品牌:qt
次要版本:537199360 兼容品牌:qt
时长:00:00:14.96,开始:0.000000,比特率:3153 kb/s
流 #0.0(eng):音频:pcm_s16le,44100 Hz,2 通道,s16,1411 kb/s
流 #0.1(英文):视频:h264、yuv420p、678x384、1738 kb/s、23.98 fps、23.98 tbr、600 tbn、1200 tbc
ffmpeg 的持续时间报告从 15.97 变为 14.96(我可以忍受 .1)
这个时长是根据比特率计算的吗?
我需要准确报告上传视频的时长并将其转换为 FLV。谁能告诉我这里发生了什么以及如何解决这个问题?
ffmpeg 信息如下。我已经在 2 个完全不同的 ffmpeg 安装/版本上进行了尝试。结果一样。
FFmpeg 版本 0.6.5,版权所有 (c) 2000-2010 FFmpeg 开发者 使用 gcc 4.1.2 20080704 (Red Hat 4.1.2-51) 于 2012 年 1 月 29 日 23:55:02 构建 配置: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra -cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore- amrwb --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable- x11grab libavutil 50.15。 1 / 50.15。 1 libavcodec 52.72。 2 / 52.72。 2 libav 格式 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 libav 格式 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
【问题讨论】:
-
刚刚测试了 Quicktime 导出的更多变体。似乎如果只是选择任何帧速率或比特率来导出,ffmpeg 仍然有更好的机会报告更准确的持续时间。 Quicktime 是在“修复”什么吗?容器?