我想为我的MKV普通质量转换添加一个AAC双声道音频作为默认音轨,同时原样复制所有其他可用的音频流。我可以用MCEBuddy实现吗?如果可以,我该怎么做?
谢谢
我想为我的MKV普通质量转换添加一个AAC双声道音频作为默认音轨,同时原样复制所有其他可用的音频流。我可以用MCEBuddy实现吗?如果可以,我该怎么做?
谢谢
這是 FAQ 對 ffmpeg 的說明:
ffmpeg-audio=-map 0:1 -map 0:1 -c:a:0 aac -ab 192k -ac 2 -c:a:1 ac3 -ab 192k
ffmpeg-audioac3=-map 0:1 -map 0:1 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy
ffmpeg-AudioOptimized=true
但我看不懂這些個別參數。我想要把預設的 5.1 聲道音軌轉成標準化的立體聲 AAC,並保留所有原始音軌(複製或壓縮)。我想實驗一下。目前我的設定檔音訊部分長這樣:
ffmpeg-audioac3=-c:a copy -map 0:a
ffmpeg-audioac3=-acodec copy -map 0:a
但我想在把預設音軌轉成立體聲 AAC 後,改用原本 HEVC 設定檔的這段:
ffmpeg-audio=-acodec ac3 -ab 160k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 256k -map 0:a
如果有人能給我一些做法上的建議,我會非常感激。這樣我就能終於把 MCEBuddy 設定成我需要的樣子,然後連續轉檔幾個月,把硬碟裡所有的 TS 檔清掉。
我来试着拆解一下这些 FAQ 字符串。
ffmpeg-audio=-map 0:1 -map 0:1 -c:a:0 aac -ab 192k -ac 2 -c:a:1 ac3 -ab 192k
ffmpeg-audio=
用于处理非 AC3 音频(不确定是否逐条轨道生效,如果文件里既有 AAC 又有 AC3,两行都会被调用吗?)。
-map 0:1 -map 0:1
说实话,我不知道为什么要写两次。
-c:a:0 aac -ab 192k -ac 2
把源音频做成 192 kbps、立体声的 AAC,作为输出文件的第 0 条音轨。
-c:a:1 ac3 -ab 192k
用与源音频相同的声道数,再做一条 192 kbps 的 AC3,作为输出文件的第 1 条音轨。
ffmpeg-audioac3=-map 0:1 -map 0:1 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy
ffmpeg-audioac3=
用于处理 AC3 音频(同样不确定是否逐条轨道生效)。
-map 0:1 -map 0:1
还是不知道为什么要写两次。
-c:a:0 aac -ab 384k -ac 2
把源音频做成 384 kbps、立体声的 AAC,作为输出文件的第 0 条音轨。
-c:a:1 copy
直接把源音频复制一份,作为输出文件的第 1 条音轨。
ffmpeg-AudioOptimized=true
我不知道怎么做音量归一化,因为你得先装 SoX。要想实现你的需求,我觉得可以这样写:
ffmpeg-audio=-map 0:1 -map 0:1 -c:a:0 aac -ab 192k -ac 2 -c:a:1 ac3 -ab 160k
ffmpeg-audioac3=-map 0:1 -map 0:1 -c:a:0 aac -ab 192k -ac 2 -c:a:1 ac3 -ab 256k
ffmpeg-AudioOptimized=true
希望这能帮你开始实验。
谢谢,我一直在做实验,但仍然有些困惑。我在配置文件中复制了一份当前配置并命名为 TEST,删除了所有音频条目,只添加了:
ffmpeg-audioac3=-map 0:1 -map 0:1 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy
结果文件如预期包含了视频,默认音轨是 AAC 立体声,第二条音轨是原始默认 AC3 6 声道音频的拷贝。
如果我改成:
ffmpeg-audioac3=-map 0:1 -map 0:1 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy -c:a:2 copy
就会多出一个原始 AC3 6 声道音频的拷贝。
我目前能猜到的就是 -map 0:1 与音频流有关,其中 0 是第一个,1 是第二个,但我不确定这是指输入文件还是输出文件。
现在我真正需要知道的是如何复制原文件中的第二条音频流,因为它是 2 声道的西班牙语,但我现在不知道该怎么做。如果能帮我理解这一点,我想我也就能学会如何转换那条音轨了。
任何见解都将非常感谢。我急切地想搞明白这最后一块拼图,以便为我的 Emby 服务器获得完整的转码方案。
我假設你需要為第3個音訊提供一個更新的 map 值,以告訴它你想要映射哪個音軌 ID。
以下是 ffmpeg 的 map 說明:
-map [-]input_file_id[:stream_specifier][,sync_file_id[:stream_s set input stream mapping
這裡是可能對你有幫助的 wiki 頁面:
非常感谢你在我个人资料调整过程中给予的所有帮助……那页内容我看了十几遍,自以为看懂了映射,却始终搞不清顺序,也不知道怎么在配置文件里用;为了保留两条音轨和字幕,我把一段5分钟的片段至少编码了30次……现在终于搞定:
ffmpeg-audioac3=-map 0:1 -map 0:1 -map 0:2 -c:a:0 aac -ab 384k -ac 2 -c:a:1 copy -c:a:2 copy
这样,原始TS文件里的默认AC3 6声道会被转成AAC立体声,并设为输出文件的默认音轨;原6声道AC3则原封不动地作为第二条音轨;而原始文件里的AC3 2声道西班牙语音轨也被完整复制为输出的第三条音轨。
我几次都想放弃——从昨天下午抽空折腾到现在,一边自己试,一边还得向你请教。但德国人的倔劲上来了,我非得弄懂不可,实在走投无路了才又来问你。
太好了!我这边没有合适的源文件来测试,所以只能看看资料,觉得自己大概明白了意思。我不想贸然让你去试什么,怕把你带偏了。真高兴你能自己搞定。