使用ffmpeg和php进行转换时视频时间减少了

时间:2012-11-23 09:36:00

标签: php ffmpeg

我正在使用ffmpeg和php将视频文件转换为.flv。 这是我的代码

$cmd = $this->ffmpeg . ' -i ' . $filein . ' -sameq -ar 22050 -b 2048k -f ' . $parameters['convert'] . ' ' . $fileout;

$parameters['convert'] = flv

它适用于许多文件,但是当我上传~80MB and ~9minutes .mp4 file时,它已成功转换为flv,但时间缩短为2秒。可能是什么问题和可能的解决方案。

上传限制设置为200MB

1 个答案:

答案 0 :(得分:1)

如果您试图保持“相同质量”(-sameq表示“相同的量化器”),请使用:

  

ffmpeg -i leaving.mp4 -c copy -copyts leaving.flv

( - copyts“copy timestamps”有助于在转换格式时保持音频/视频同步)

转换格式时,永远不会使用-sameq。 (你将从mp4转到flv。)如果你将mp2下采样到mp2或类似的东西,你可能想要复制量化器,你可以使用-sameq。

至于更改时间,无论何时转换采样率,都会冒程序计算错误的长度。例如,ffmpeg并不总能正确计算48k mp3的长度。尝试将44.1k mp3上采样到48k,然后检查ffmpeg和Windows Media Player中每个文件的长度。您可能会为同一个文件获得4种不同的长度。