如何播放无声视频并同时添加音频文件?

如何播放无声视频并同时添加音频文件?

我有一个文件夹,里面有一个 MP3 音频文件和一个视频文件。两个文件的名称相同。

  • 例子.mp3
  • 示例.mp4

我想播放视频并添加声音。
两个文件应该保持不变,我不想要任何包含这两个文件的新文件。

有没有办法用命令行来完成它?

答案1

如何播放无声视频并同时添加音频文件?
我想播放视频并添加声音。

使用(实验性)--input-slave开关。

有没有办法用命令行来完成它?

如果您的视频没有音轨,那么您可以简单地使用以下命令:

vlc example.mp4 --input-slave=example.mp3

如果您的视频确实有音轨,那么 VLC 将默认使用该音轨,因此您必须按如下方式指定备用音轨:

vlc exmaple.mp4 --input-slave=example.mp3 --audio-track=1

如果您的视频有两个音轨,那么您将使用--audio-track=2等(第一个音轨是0,因此您用于外部音频的数量等于视频中的音轨数量)。

此外,您(当前)只能指定单个外部音轨,因此这不起作用:

vlc example.mp4 --input-slave=example.mp3 --input-slave=example2.mp3

在这种情况下,VLC 仅使用最后指定的一个。

答案2

看来我想要的是同样的东西。我有一个用 powershell 编写的应用启动器,我让它做的事情之一是从我的音乐库中创建一个随机的 8 轨播放列表,然后它在全屏模式下从顶部播放随机可视化视频。

看起来像这样:vlc.ps1

#cache variables
$videopath = "C:\path\to\your\mp4\videos"
$musicpath = "C:\path\to\your\music"
$numtracks = 8
$slave = @()
$slavecount =0
$rand = 0
$track = ""
$i=0

#Grab a random video
Get-Childitem -Path $videopath -Include *.mp4, *.avi, *.mkv -Recurse |
    Foreach {
        # Flip those slashes around
        $slave += $_.Fullname  -replace "\\","/"
    }
   $slavecount = $slave.Count

# Build a random 8-track
Get-Childitem -Path $musicpath -Include *.mp3, *.flac -Recurse |
    Get-Random -Count $numtracks |
    Foreach {
        #Choose a random video from the array of videos
        # This only used if they fix VLC to allow multiple slaves
        $rand = Get-Random -Minimum 0 -Maximum $slavecount

        # Add the double quotes just how vlc likes it
        $track = """" + $_.Fullname + """"

        if ($i -lt 1) {
            #start vlc, queue your first track and slave the random visualization
            vlc --started-from-file --play-and-stop $track --input-slave=file:///$slave[$rand] --fullscreen   
        } else {
            #now enqueue the remaining tracks
            #if multiple slaves are eventually supported this whole if statement can be removed
            vlc --started-from-file --playlist-enqueue $track
        }
        $i++

    }

相关内容