如何使用具有多个音频流的mpv播放视频

问题描述 投票:0回答:2

我尝试用两种语言播放电影。 音频 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

如何结合这个?

audio video ffmpeg video-streaming mp4
2个回答
0
投票

我通过创建一个 5.1 流,其中一种语言混合为 [FL] 和 [FR],另一种语言混合为 [BL] 和 [BR],成功地做到了这一点。 我直接发送到多通道硬件(通过 ALSA)或通过 JACK 发送,以使通道路由更加灵活。

可能可以使用 mpv 的 --lavfi-complex 实现,但我总是使用 ffmpeg 准备 5.1 流。

https://trac.ffmpeg.org/wiki/AudioChannelManipulation


0
投票

如果视频位于特定文件夹中,我编写的这个丑陋的脚本将同时播放音轨 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)
© www.soinside.com 2019 - 2024. All rights reserved.