FFmpeg 转换音轨并添加回媒体文件而不触及视频轨道

FFmpeg 转换音轨并添加回媒体文件而不触及视频轨道

我想将音轨尽可能高效且无损地转换为 AC3。

这篇文章给出了命令:

ffmpeg -i my_movie.mkv -map 0:v -map 0:a:0 -map 0:a -map 0:s -c:v copy -c:a copy -c:s copy -c:a:0 ac3 -b:a:0 640k my_movie_ac2.mkv

此命令会忽略视频/字幕轨道吗?是否有 FFmpeg 命令可以转换并重新添加音轨(例如将 DTS 转换为 AC3 并添加到原始媒体文件中)没有需要复制视频/字幕轨道吗?或者非音轨复制不会占用太多时间/资源?

另外,这是什么-c:a:0 ac3 -b:a:0 640k意思?我是否应该根据原始音轨进行更改?这是转换为 AC3 的最佳方法吗?

答案1

此命令会忽略视频/字幕轨道吗?

不会。-map 0:v会包含-map 0:s视频和字幕。-c:v copy-c:s copy流复制(无需重新编码即可重新混合)视频和字幕。

是否有一个 FFmpeg 命令可以转换并重新添加音轨(例如将 DTS 转换为 AC3 并添加到原始媒体文件中)而无需复制视频/字幕轨道?

不可以。ffmpeg必须创建一个新文件。无法就地编辑。

或者非音轨复制不会耗费太多时间/资源?

与编码相比,重新复用并不需要花费太多的时间/资源。

这是什么-c:a:0 ac3 -b:a:0 640k意思?

  • -c:a:0 ac3对于音频输出流 #0,使用编码器名称 ac3。计数从 0 开始,因此这是第一个输出音频流。
  • -b:a:0 640k对于音频输出流#0,应用 640k/s 的比特率。

我是否应该根据原始音轨进行更改?

如果您想使用不同的编码器或比特率,您可以更改它。

这是对 AC3 的最佳转换吗?

可能没问题。听起来不错吧?您可以考虑删除-b:a:0 640k并允许编码器根据通道布局(立体声、5.1 等)自动选择比特率。

编码器 ac3 有许多附加选项,您可能需要查看。请参阅ffmpeg -h encoder=ac3。这不是我使用的编码器,因此我无法提供详细的建议。

相关内容