
Ich habe einen Ordner mit einer MP3-Audiodatei und einer Videodatei. Beide haben den gleichen Namen.
- Beispiel.mp3
- Beispiel.mp4
Ich möchte das Video abspielen und den Ton hinzufügen.
Beide Dateien sollen gleich bleiben und ich möchte keine neue Datei, die beides enthält.
Gibt es eine Möglichkeit, dies über die Befehlszeile zu erledigen?
Antwort1
Wie kann ich ein Video ohne Ton abspielen und gleichzeitig eine Audiodatei hinzufügen?
Ich möchte das Video abspielen und den Ton hinzufügen.
Mit dem (experimentellen) --input-slave
Schalter.
Gibt es eine Möglichkeit, dies über die Befehlszeile zu erledigen?
Wenn Ihr Video keine Audiospuren hat, können Sie einfach etwas wie das Folgende verwenden:
vlc example.mp4 --input-slave=example.mp3
Wenn Ihr Video eine Audiospur hat, wird VLC diese standardmäßig verwenden. Sie müssen die alternative Spur also folgendermaßen angeben:
vlc exmaple.mp4 --input-slave=example.mp3 --audio-track=1
Wenn Ihr Video über zwei Audiospuren verfügt, verwenden Sie --audio-track=2
usw. (die erste Spur ist 0
, die Nummer, die Sie für das externe Audio verwenden, entspricht also der Anzahl der Audiospuren im Video).
Außerdem können Sie (derzeit) nur eine einzige externe Audiospur angeben, sodass dies nicht funktioniert:
vlc example.mp4 --input-slave=example.mp3 --input-slave=example2.mp3
In diesem Fall verwendet VLC nur die zuletzt angegebene.
Antwort2
Ich wollte anscheinend dasselbe. Ich habe einen App-Launcher, den ich in Powershell geschrieben habe, und er erstellt unter anderem eine zufällige 8-Track-Wiedergabeliste aus meiner Musikbibliothek und legt im Vollbildmodus ein zufälliges Visualisierungsvideo darüber.
Sieht ungefähr so aus: 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++
}