Deepseek批量调整视频的默认音频声道
时间:2025-04-22 | 作者: | 阅读:0文件夹中有多个视频文件,默认音频声道为俄语,想调整成英语:


先安装 MKVToolNix软件,然后使用 mkvinfo 工具来查看 .mkv 文件的音轨信息,在命令行中输入命令:
mkvinfo "F:aivideoThe Legend of Tarzan - 16 - Tarzan and the Leopard Men Rebellion.mkv"

来查看轨道信息:
+ EBML 头
|+ EBML 版本: 1
|+ EBML 读取版本: 1
|+ EBML ID 最大长度: 4
|+ EBML 大小最大长度: 8
|+ 文档类型: matroska
|+ 文档类型版本: 4
|+ 文档类型读取版本: 2
+ 剪辑: 大小 556452947
|+ 定位头 (子条目将被跳过)
|+ EBML void: 大小 4027
|+ 剪辑信息
| + 时间戳缩放: 1000000
| + 混流应用程序: libebml v1.4.5 + libmatroska v1.7.1
| + 写入应用程序: mkvmerge v88.0 ('All I Know') 64-bit
| + 时长: 00:21:46.400000000
| + 日期: 2024-11-21 02:52:45 UTC
| + 标题: The Legend of Tarzan [1x06] HDTV 720p x264 [Source: ThV, Encode: GD]
| + 剪辑 UID: 0x44 0x0d 0x7e 0xac 0xb1 0xd5 0x00 0x8d 0x02 0x45 0x91 0x76 0xda 0xba 0xf2 0xf2
|+ 轨道
| + 轨道
| + 轨道编号: 1 (mkvmerge & mkvextract 的轨道 ID: 0)
| + 轨道 UID: 1
| + 轨道类型: 视频
| + ?紧缩? 标记: 0
| + 语言: und
| + 编码格式 ID: V_MPEG4/ISO/AVC
| + 编解码器私有数据: 大小 42 (H.264 档次: High @L4.0)
| + 默认帧时长: 00:00:00.040000000 (对应视频轨的 25.000 帧/场每秒)
| + 语言 (IETF BCP 47): und
| + 视频轨道
| + 像素宽度: 1280
| + 像素高度: 720
| + 显示宽度: 1280
| + 显示高度: 720
| + 轨道
| + 轨道编号: 2 (mkvmerge & mkvextract 的轨道 ID: 1)
| + 轨道 UID: 782399382
| + 轨道类型: 音频
| + ?默认轨? 标记: 0
| + 语言: rus
| + 编码格式 ID: A_AC3
| + 默认帧时长: 00:00:00.032000000 (对应视频轨的 31.250 帧/场每秒)
| + 语言 (IETF BCP 47): ru
| + 名称: 俄语
| + 音频轨
| + 采样率: 48000
| + 声道数: 2
| + 轨道
| + 轨道编号: 3 (mkvmerge & mkvextract 的轨道 ID: 2)
| + 轨道 UID: 2887079607
| + 轨道类型: 音频
| + ?默认轨? 标记: 0
| + 语言: und
| + 编码格式 ID: A_AC3
| + 默认帧时长: 00:00:00.032000000 (对应视频轨的 31.250 帧/场每秒)
| + 语言 (IETF BCP 47): und
| + 名称: 原始语言
| + 音频轨
| + 采样率: 48000
| + 声道数: 2
|+ EBML void: 大小 1133
|+ 簇
在deepseek中输入提示词:
你是一个Python编程专家,完成如下任务:
读取这个文件夹中所有的mkv视频文件:“F:aivideo”
根据 mkvinfo 输出,mkv视频文件中有三个轨道:
视频轨道(轨道编号 1)
音频轨道 1(轨道编号 2,AC3 格式,俄语)
音频轨道 2(轨道编号 3,AAC 格式,原始语言)
将默认音轨从音频轨道 1(轨道编号 2)调整为音频轨道 2(轨道编号 3)。
索引从 0 开始,所以 --default-track 1 对应音频轨道 1, --default-track 2 对应音频轨道 2,
"--default-track", "1:no", # 禁用音频轨道 1的默认音轨
"--default-track", "2:yes", # 启用音频轨道2的默认音轨
注意:每一步都要输出信息到屏幕上
mkvmerge 工具的路径为:D:Program FilesMKVToolNixmkvmerge.exe
subprocess.run 在读取 mkvmerge 的输出时,默认使用 gbk 编码解码,但输出中包含无法解码的字节。我们可以通过指定 encoding='utf-8' 来解决这个问题。
源代码:
import os
import subprocess
# 定义文件夹路径和mkvmerge工具的路径
folder_path = r"F:aivideo"
mkvmerge_path = r"D:Program FilesMKVToolNixmkvmerge.exe"
# 获取文件夹中的所有MKV文件
mkv_files = [f for f in os.listdir(folder_path) if f.endswith('.mkv')]
# 输出信息
print(f"Found {len(mkv_files)} MKV files in the folder.")
# 遍历每个MKV文件
for mkv_file in mkv_files:
file_path = os.path.join(folder_path, mkv_file)
print(f"Processing file: {file_path}")
# 构建mkvmerge命令
command = [
mkvmerge_path,
"--output", file_path + ".tmp", # 输出到临时文件
"--default-track", "1:no", # 禁用轨道2的默认音轨
"--default-track", "2:yes", # 启用轨道3的默认音轨
file_path
]
# 输出命令信息
print(f"Running command: {' '.join(command)}")
# 执行命令
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, encoding='utf-8')
# 输出执行结果
print(result.stdout)
print(result.stderr)
# 检查命令是否成功
if result.returncode == 0:
# 删除原文件
os.remove(file_path)
# 重命名临时文件为原文件名
os.rename(file_path + ".tmp", file_path)
print(f"Successfully processed file: {file_path}")
else:
print(f"Failed to process file: {file_path}")
print("All files processed.")

福利游戏
相关文章
更多-
- 爆火的DeepSeek,你真的会用吗?
- 时间:2025-04-22
-
- AI办公自动化:用deepseek批量把gif动画转为mp4视频
- 时间:2025-04-22
-
- Deepseek 和Open Ai 大模型最大区别是什么
- 时间:2025-04-22
-
- 本地部署AI大模型DeepSeek
- 时间:2025-04-22
-
- 将大局逆转吧是什么梗 抖音将大局逆转吧的意思出处解释
- 时间:2025-04-22
-
- Win11怎么添加独立显卡
- 时间:2025-04-22
-
- 那很有生活了是什么意思 网络用语那很有生活了的意思和出处介绍
- 时间:2025-04-22
-
- 惊爆!DeepSeek vs. OpenAI,基准测试对决震撼发布,谁更胜一筹?
- 时间:2025-04-22
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- 快查你手机有没有!67款APP违法收集使用个人信息被通报
- 时间:2025-04-22
-
- SLP币涨势分析:Axie Infinity驱动未来
- 时间:2025-04-22
-
- 联想拯救者Y9000P 2025至尊版上市:RTX 5080/5090国补价17999元起
- 时间:2025-04-22
-
- 老板拒售变质鸭躲过天花板坍塌被质疑摆拍 抖音:禁言30天
- 时间:2025-04-22
-
- 王腾用REDMI Turbo 4 Pro给咖啡机充电:一部手机能打300杯咖啡
- 时间:2025-04-22
-
- 比特币挖矿机配置:高效挖矿的关键要素
- 时间:2025-04-22
-
- Kucoin手机app使用攻略:交易、管理、赚取
- 时间:2025-04-22
-
- 剪映怎么参与国庆节活动
- 时间:2025-04-22