You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中使用FFmpeg删除视频中的音频流

实现方法

你可以通过FFmpeg的流复制模式实现,全程不会触发解码/重编码操作,处理速度和本地文件拷贝速度接近。

基础场景:删除所有音频流,仅保留视频流

直接执行以下命令即可:

ffmpeg -i 输入视频路径 -c copy -an 输出视频路径

参数说明:

  • -c copy:指定所有流直接拷贝原始编码数据,不做编解码处理
  • -an:移除输出文件中的所有音频流

进阶场景:删除指定编号的特定流

如果视频包含多个视频、音频、字幕流,需要精准删除某几个流时,可以按以下步骤操作:

  1. 首先查看视频的所有流编号,执行命令:
ffprobe 输入视频路径

输出中所有以Stream #0:数字开头的行对应的就是不同流,数字即为流的编号,同时会标注流的类型(视频/音频/字幕等)。
2. 执行流拷贝,仅保留你需要的流即可,比如你要保留编号为0的视频流,删除其他所有流,命令为:

ffmpeg -i 输入视频路径 -c copy -map 0:0 输出视频路径

如果需要保留多个流,添加多个-map参数即可,比如同时保留0号视频流和2号字幕流:

ffmpeg -i 输入视频路径 -c copy -map 0:0 -map 0:2 输出视频路径

注意事项

输出视频的容器格式需要兼容原视频流的编码格式,比如原视频是H.265编码,可直接输出为mp4、mkv等兼容容器,若选择不兼容的容器会触发报错,更换兼容容器即可无需额外调整编码参数。


内容的提问来源于stack exchange,提问作者user15306406

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:45:04