
Eu tenho uma pasta com um arquivo de áudio MP3 e um arquivo de vídeo. Ambos com o mesmo nome.
- Exemplo.mp3
- Exemplo.mp4
Quero reproduzir o vídeo e adicionar o som.
Ambos os arquivos devem permanecer iguais e não quero nenhum arquivo novo com ambos.
Existe uma maneira de fazer isso com a linha de comando?
Responder1
Como reproduzir um vídeo sem som e adicionar um arquivo de áudio ao mesmo tempo?
Quero reproduzir o vídeo e adicionar o som.
Com o interruptor (experimental) --input-slave
.
Existe uma maneira de fazer isso com a linha de comando?
Se o seu vídeo não tiver faixas de áudio, você pode simplesmente usar algo como o seguinte:
vlc example.mp4 --input-slave=example.mp3
Se o seu vídeo tiver uma trilha de áudio, o VLC a usará por padrão, então você deverá especificar a trilha alternativa da seguinte forma:
vlc exmaple.mp4 --input-slave=example.mp3 --audio-track=1
Se o seu vídeo tiver duas trilhas de áudio, você usaria --audio-track=2
e assim por diante (a primeira trilha é 0
, então o número usado para o áudio externo é igual ao número de trilhas de áudio no vídeo).
Além disso, você pode (atualmente) especificar apenas uma única trilha de áudio externa, portanto isso não funcionará:
vlc example.mp4 --input-slave=example.mp3 --input-slave=example2.mp3
Neste caso, o VLC usa apenas o último especificado.
Responder2
Eu queria a mesma coisa, parece. Eu tenho um inicializador de aplicativos que escrevi no PowerShell, e uma das coisas que faço é criar uma lista de reprodução aleatória de 8 faixas da minha biblioteca de música e escravizar um vídeo de visualização aleatória por cima no modo de tela cheia.
Parece algo assim: 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++
}