我有一个文件夹,里面有一个 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++
}