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.")

福利游戏
相关文章
更多-
- 美团外卖怎么看下单几次 掌握个人下单数据的途径
- 时间:2025-05-31
-
- 萤石云视频家庭分享怎么用 家人共享功能设置
- 时间:2025-05-31
-
- 怎么查芒果tv有没有自动续费 芒果tv自动续费状态查询方法
- 时间:2025-05-31
-
- 今日头条看新闻能赚钱吗 今日头条看新闻赚钱真相
- 时间:2025-05-31
-
- b站怎么看黑名单 黑名单管理及查看方法
- 时间:2025-05-31
-
- ios支付宝自动续费怎么关闭 iOS端支付宝自动续费关闭指南
- 时间:2025-05-31
-
- 今日头条怎么发视频 今日头条视频发布教程
- 时间:2025-05-31
-
- 起点作家助手app如何查看总稿费
- 时间:2025-05-31
精选合集
更多大家都在玩
大家都在看
更多-
- 区块链合约平台:开启全球交易新纪元
- 时间:2025-05-31
-
- 魔兽世界索罗夫宝藏获取方法
- 时间:2025-05-31
-
- Venom币起源:解决交易痛点
- 时间:2025-05-31
-
- 《金铲铲之战》三冠冕无限爆金币攻略
- 时间:2025-05-31
-
- 魔兽世界博学者的罩衫怎么获取
- 时间:2025-05-31
-
- Smittix预售筹1430万,瞄准跨境支付
- 时间:2025-05-31
-
- 鸣潮2.2幽夜幻梦任务流程
- 时间:2025-05-31
-
- 《幸福里》查看收藏记录方法
- 时间:2025-05-31