ffmpeg 如果请求相同的编解码器,是否会复制流?

ffmpeg Will stream be copied if same codec is requested?

我遍历一些文件并用 ffmpeg 转换它们。我提供-vcodec h264。当输入视频已经使用该编解码器编码时:是否会复制视频流?在这种情况下如何确保它不被重新编码?是之前-sameq用的吗?

如果您希望在不重新编码的情况下传递原始 H.264 流,则需要使用 -c:v copy

ffmpeg -i myh264file.mp4 -c:v copy -c:a copy myh264output.mp4

-c:a copy也会复制音频

-c copy 将复制音频和视频,如:

ffmpeg -i myh264file.mp4 -c copy myh264output.mp4

检测 H.264 流并不简单。您需要对此进行编码。

-sameq设置请参考this statement

我建议升级到最新版本的 ffmpeg(如果尚未完成),因为 -vcodec 不再使用,现在是 -c:v

ffmpeg 上的 documentation 可以帮助您。