我尝试用两种语言播放电影。 音频 1 至扬声器 音频 2 至耳机
mpv --lavfi-complex="[aid1] [aid2] amix [ao]" "input.mp4"
播放视频并混合音频1和音频2并输出为标准设备
mpv "input.mp4" --vid=1 --aid=1 --audio-device="wasapi/{d3178b30-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
播放视频和音频1
mpv "input.mp4" --aid=2 --no-video --audio-device="wasapi/{06a44940-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
仅播放音频2
如何结合这个?
我通过创建一个 5.1 流,其中一种语言混合为 [FL] 和 [FR],另一种语言混合为 [BL] 和 [BR],成功地做到了这一点。 我直接发送到多通道硬件(通过 ALSA)或通过 JACK 发送,以使通道路由更加灵活。
这可能可以使用 mpv 的 --lavfi-complex 实现,但我总是使用 ffmpeg 准备 5.1 流。
如果视频位于特定文件夹中,我编写的这个丑陋的脚本将同时播放音轨 1 和 2。我用它来检查我的 Shadowplay 录音,因为它们有分割音轨的选项。
将其放入
anything.lua
中名为 %appdata%\mpv\scripts
的文件中或任何 Linux 等效文件中(尽管仅在 Windows 上测试),并根据需要编辑 folderPath
。
local folderPath = "F:\\Shadowplay"
local function starts_with(str, start)
return str:sub(1, #start) == start
end
mp.register_event("file-loaded", function(event)
if (starts_with(mp.get_property("working-directory"), folderPath) and mp.get_property_number("track-list/count") > 2) then
mp.set_property('options/lavfi-complex', "[aid1] [aid2] amix [ao]")
end
end)