You need to enable JavaScript to run this app. 如何使用pymkv识别MKV字幕轨道并批量移除MKV文件内的字幕?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pymkv识别MKV字幕轨道并批量移除MKV文件内的字幕?

pymkv可以实现批量移除MKV文件字幕的需求。

判断MKVTrack是否为字幕轨道的方法很简单,直接读取MKVTrack实例的track_type属性即可,字幕轨道对应的属性值为subtitles,其他常见轨道类型还有video(视频轨道)、audio(音频轨道)。

具体实现逻辑如下:

  • 遍历目标目录下所有MKV格式文件
  • 为每个MKV文件初始化MKVFile实例完成加载
  • 过滤轨道列表,仅保留track_type不为subtitles的轨道
  • 调用mux方法将过滤后的轨道输出为新的MKV文件

参考代码示例:

import os
from pymkv import MKVFile

# 待处理MKV文件所在目录
source_dir = "./mkv_source"
# 处理后文件输出目录
target_dir = "./mkv_output"
os.makedirs(target_dir, exist_ok=True)

for file_name in os.listdir(source_dir):
    if not file_name.lower().endswith(".mkv"):
        continue
    source_path = os.path.join(source_dir, file_name)
    try:
        mkv_file = MKVFile(source_path)
        # 移除所有字幕轨道
        mkv_file.tracks = [track for track in mkv_file.tracks if track.track_type != "subtitles"]
        target_path = os.path.join(target_dir, file_name)
        mkv_file.mux(target_path)
        print(f"处理成功:{file_name}")
    except Exception as e:
        print(f"处理失败:{file_name}, 错误信息:{str(e)}")

注意事项:

  • 运行代码前需要先在设备上安装mkvtoolnix依赖,pymkv的封装操作基于该工具实现,未安装会导致混流报错。
  • 如果不需要保留原文件,可以直接用处理后的文件覆盖原文件,修改输出路径为原文件路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 23:12:00