1

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

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

在哪里$parameters['convert'] = flv

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

上传限制设置为 200MB

4

1 回答 1

1

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

ffmpeg -i 离开.mp4 -c 复制 -copyts 离开.flv

(-copyts“复制时间戳”有助于在转换格式时保持音频/视频同步)

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

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

于 2013-03-01T00:13:31.557 回答