Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 为什么ffmpeg报告不同的持续时间?_Video_Ffmpeg - Fatal编程技术网

Video 为什么ffmpeg报告不同的持续时间?

Video 为什么ffmpeg报告不同的持续时间?,video,ffmpeg,Video,Ffmpeg,源视频: Quicktime Pro 7.7.1 Inspector(Win 7)为文件2398.mov报告以下内容 4.19MB H.264 电影FPS:23.98 数据速率:2.35 mbits/Sec 持续时间14:97 ffmpeg报告了以下内容(请参阅文章底部的完整ffmpeg版本信息) ffmpeg-i2398.mov 似乎流1编解码器帧速率与容器帧速率不同:47952.00(47952/1)->>23.98(2997/125) 从“2398.mov”输入#0、mov、mp4、m4a

源视频:

Quicktime Pro 7.7.1 Inspector(Win 7)为文件2398.mov报告以下内容

4.19MB
H.264
电影FPS:23.98
数据速率:2.35 mbits/Sec
持续时间14:97

ffmpeg报告了以下内容(请参阅文章底部的完整ffmpeg版本信息)

ffmpeg-i2398.mov

似乎流1编解码器帧速率与容器帧速率不同:47952.00(47952/1)->>23.98(2997/125)
从“2398.mov”输入#0、mov、mp4、m4a、3gp、3g2、mj2:
元数据:
主要品牌:qt

次要版本:537199360
兼容品牌:qt
持续时间:00:00:15.97,开始时间:0-963005,比特率:2210kb/s
流#0.0(英语):音频:aac,48000赫兹,立体声,S16152kb/s
流#0.1(英文):视频: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.62MB
H.264
电影FPS:23.98
数据速率:3.15 mbits/Sec
持续时间14:97

ffmpeg现在报道:

ffmpeg-i qtime-export-2398.mov

似乎流1编解码器帧速率与容器帧速率不同:1200.00(1200/1)->23.98(24000/1001)
从'qtime-export-2398.mov'输入#0,mov,mp4,m4a,3gp,3g2,mj2:
元数据:
主要品牌:qt
次要版本:537199360
兼容品牌:qt
持续时间:00:00:14.96,开始时间:0.000000,比特率:3153kb/s
流#0.0(英语):音频:pcm#U s16le,44100 Hz,2个通道,s16,1411 kb/s
流#0.1(英文):视频:h264、yuv420p、678x384、1738kb/s、23.98 fps、23.98 tbr、600 tbn、1200 tbc

ffmpeg关于持续时间的报告从15.97增加到14.96(我可以接受1)

这个持续时间是根据比特率计算的吗

我需要准确报告上传视频的持续时间,并将其转换为FLV。谁能告诉我这里发生了什么事,我该怎么处理

ffmpeg信息如下。我已经在两个完全不同的ffmpeg安装/版本上尝试了这一点。同样的结果

FFmpeg版本0.6.5,版权所有(c)2000-2010 FFmpeg开发者 建造于2012年1月29日23:55:02,通用条款4.1.2 20080704(红帽4.1.2-51) 配置:--prefix=/usr--libdir=/usr/lib64--shlibdir=/usr/lib64--mandir=/usr/share/man--incdir=/usr/include--disable avisynch--extra cflags='-O2-g-pipe-Wall-Wp,-D_FORTIFY_SOURCE=2-feexceptions-fstack protector--param=ssp buffer size=4-m64-mtune=generic-fPIC'--enable avfilter--enable avfilter lavf--enable libdirac--enable libfaad--enable libfaadbin--enable libgsm--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. libavcodec52.72。2 / 52.72. 2. libav52.64格式。2 / 52.64. 2. libav52设备。2.0 / 52. 2.0 libavfilter 1.19。0 / 1.19. 0 libswscale 0.11。0 / 0.11. 0 Libroc 51。2.0 / 51. 2.0 FFmpeg 0.6.5 libavutil 50.15。1 / 50.15. 1. libavcodec52.72。2 / 52.72. 2. libav52.64格式。2 / 52.64. 2. libav52设备。2.0 / 52. 2.0 libavfilter 1.19。0 / 1.19. 0 libswscale 0.11。0 / 0.11. 0 Libroc 51。2.0 / 51. 2.0


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

Quicktime正在从“电影标题”收集持续时间值。此处的值为8981/600=14.97秒

FFmpeg正在从“媒体头”收集持续时间值,视频为383000/23976=15.97秒,音频为719872/48000=15.00秒


编辑:…同时回答你的另一个问题:有人能告诉我我该如何解决这个问题吗?我想您正在使用ffmpeg将文件转换为.FLV?如果是这样,我将坚持ffmpeg报告的内容。

ffmpeg显示“Duration:00:14.96”在这里,请理解您的ffmpeg版本是古老的(并且有许多已知的错误和退化),请参阅以获取有关如何获取当前git头的信息,这是始终推荐的。

刚刚在Quicktime导出中使用了更多的变体进行了测试。似乎只要选择任何帧速率或比特率导出,ffmpeg仍然有更好的机会报告更准确的持续时间。Quicktime是否正在“修复”某些东西?集装箱?谢谢你的信息。检查QT文件的电影头的最佳方法是什么?我还发现,如果我使用“-ss”参数并应用ffmpeg报告的负开始时间,我的文件更接近我认为正确的持续时间,加上任何不同步的音频似乎都得到了解决。例如:ffmpeg reports video input.mov start:0.-963005 duration:00:00:15.97 ffmpeg-i input.mov-ar 22050-ab 65536-s 320x240-b 524288-r 12-ss 00:00:00.963005 output.flv结果:duration:00:00:15.00抱歉,stackoverflow注释框快把我逼疯了。不确定最好的方法是什么。我使用一个我从头开始构建的自定义专有库。关于同步问题,您还可以查看-async参数,看看这是否有帮助。我认为ffmpeg报告的持续时间对于该文件可能是正确的。如果将文件放在不基于Quicktime组件的时间线上,如Adobe Premiere Pro,则报告的持续时间为15秒23帧。谢谢。你基本上回答了我最初的问题。我会把它标记为