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

批量为多文件夹MKV添加适配电视的音视频轨工具求助

适合批量更新MKV音视频轨的工具及PowerShell实现方案

推荐工具:MKVToolNix

MKVToolNix是一套专门针对MKV文件的开源处理工具集,其中的mkvmerge命令行工具完全匹配你的需求:

  • 无损封装:仅合并音视频轨,不重新编码原有内容,速度快且保留画质音质
  • 精准控制:可指定保留原文件所有轨的同时,新增目标格式的音视频轨,不会覆盖原有内容
  • 脚本友好:所有操作通过命令行参数实现,完美适配PowerShell批量处理场景

核心实现思路

  1. 遍历目标文件夹及子文件夹下的所有MKV文件
  2. 用mediainfo提取每个MKV的音视频轨编码信息,判断是否已存在电视支持的格式(如AAC音轨、H.264视频轨)
  3. 若缺少目标轨,调用mkvmerge将原MKV与新增轨合并,完成后替换原文件(或保留备份)

示例PowerShell脚本片段

# 定义电视支持的目标编码格式
$targetAudioCodec = "AAC"
$targetVideoCodecID = "V_MPEG4/ISO/AVC" # H.264的标准CodecID

# 遍历指定路径下所有MKV文件(包含子文件夹)
Get-ChildItem -Path "你的目标文件夹路径" -Recurse -Filter "*.mkv" | ForEach-Object {
    $mkvFullPath = $_.FullName
    $tempOutputPath = "$mkvFullPath.temp.mkv"

    # 用mediainfo提取音轨编码列表
    $existingAudioCodecs = mediainfo --Inform="Audio;%Codec%" "$mkvFullPath" -split "`n"
    # 提取视频轨CodecID列表
    $existingVideoCodecIDs = mediainfo --Inform="Video;%CodecID%" "$mkvFullPath" -split "`n"

    # 判断是否需要添加AAC音轨
    $needAddAudio = !$existingAudioCodecs.Contains($targetAudioCodec)
    # 判断是否需要添加H.264视频轨
    $needAddVideo = !$existingVideoCodecIDs.Contains($targetVideoCodecID)

    # 构建mkvmerge命令参数
    $mkvmergeCmdArgs = @("-o", "$tempOutputPath", "$mkvFullPath")
    if ($needAddAudio) {
        # 假设AAC音轨文件与MKV同名(如xxx.aac),可根据实际路径调整
        $audioTrackPath = [System.IO.Path]::ChangeExtension($mkvFullPath, ".aac")
        if (Test-Path $audioTrackPath) {
            $mkvmergeCmdArgs += @("--audio-tracks", "0", "$audioTrackPath")
        }
    }
    if ($needAddVideo) {
        # 假设H.264视频轨文件与MKV同名(如xxx.h264),可根据实际路径调整
        $videoTrackPath = [System.IO.Path]::ChangeExtension($mkvFullPath, ".h264")
        if (Test-Path $videoTrackPath) {
            $mkvmergeCmdArgs += @("--video-tracks", "0", "$videoTrackPath")
        }
    }

    # 执行合并操作(仅当需要添加轨时)
    if ($needAddAudio -or $needAddVideo) {
        & mkvmerge $mkvmergeCmdArgs
        # 替换原文件(建议先备份原文件,可注释以下两行)
        if (Test-Path $tempOutputPath) {
            Remove-Item $mkvFullPath -Force
            Rename-Item $tempOutputPath $mkvFullPath -Force
        }
    }
}

注意事项

  • 确保MKVToolNix和mediainfo已添加至系统环境变量,或在脚本中使用工具的完整路径调用
  • 处理前务必备份原MKV文件,避免操作失误导致数据丢失
  • 若没有现成的目标格式音视频轨,可先通过FFmpeg编码生成对应轨文件,再用上述脚本合并

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:10:27