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

如何用FFmpeg移除除第一条英语字幕外的所有字幕轨道?

如何用FFmpeg移除除第一条英语字幕外的所有字幕轨道?

我太懂这种对着FFmpeg命令折腾几小时还摸不着头脑的感觉了!别着急,我来帮你搞定这个需求——保留所有视频、只留第一条英语软字幕,删掉其他所有字幕轨道。

首先先明确你的核心需求:

  • 保留所有视频轨道
  • 移除所有非英语字幕
  • 只保留第一条英语字幕(软字幕,不转硬字幕)

正确的FFmpeg命令

直接用这条命令就能实现:

ffmpeg -i "Episode 01 - Yaha-kui zaShunina.mkv" -map 0:v -map 0:a -map 0:s:m:language:eng:0? -c copy "copy Episode 01 - Yaha-kui zaShunina.mkv"

命令拆解(帮你理解为啥这么写)

  • -map 0:v:完整保留输入文件(标记为0)的所有视频轨道,完全符合你要保留视频的要求
  • -map 0:a:保留所有音频轨道(你没说要修改音频,所以默认全保留)
  • -map 0:s:m:language:eng:0?:这是关键!s代表字幕轨道,m:language:eng筛选出英语字幕,后面的:0指定只取筛选结果里的第一条,最后的?是容错机制——如果文件里根本没有英语字幕,命令也不会报错终止
  • -c copy:所有轨道直接复制编码,既保证字幕是软字幕(不会被烧进视频里),又能让处理速度飞快

为啥你之前的命令没生效?

你之前的命令里-map 0:s会把所有字幕轨道都带上,再加上-map 0:m:language:eng等于重复添加英语字幕,而且没有指定只保留第一条,所以结果不符合预期。

额外小建议

  • 如果你想先确认文件里的轨道情况,可以先跑这条命令:
    ffmpeg -i "Episode 01 - Yaha-kui zaShunina.mkv"
    
    输出里会列出所有轨道信息,比如Stream #0:2(eng): Subtitle: subrip这样的行,能清楚看到英语字幕的位置,心里更有数。
  • 处理前记得备份原文件!毕竟FFmpeg操作是直接生成新文件,但多一份备份总没坏处
  • 确保你的FFmpeg是较新版本,旧版本可能不支持m:language这种筛选语法

备注:内容来源于stack exchange,提问作者Novum Gain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:53:14