Como reproduzir um vídeo sem som e adicionar um arquivo de áudio ao mesmo tempo?

4

Eu tenho uma pasta com um arquivo de áudio MP3 e um arquivo de vídeo. Ambos receberam o mesmo nome.

  • Exemplo.mp3
  • Exemplo.mp4

Eu quero reproduzir o vídeo e adicionar o som.
Ambos os arquivos devem permanecer os mesmos e eu não quero nenhum novo arquivo com ambos.

Existe uma maneira de fazer isso com a linha de comando?

    
por Atlus 08.12.2013 / 12:36

2 respostas

3

How to play a soundless video and add a audio file at the same time?
I want to play the video and add the sound.

Com o (experimental) --input-slave swtich.

Is there a way to get it done with the command line?

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 faixa de áudio, o VLC usará isso por padrão, portanto, é necessário especificar a faixa alternativa da seguinte forma:

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

Se o seu vídeo tiver duas faixas de áudio, você usaria --audio-track=2 e assim por diante (a primeira faixa é 0 , então o número que você usa para o áudio externo é igual ao número de faixas de áudio no vídeo) .

Além disso, você pode (atualmente) especificar apenas uma única faixa de áudio externa, então isso não funcionará:

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

Nesse caso, o VLC usa apenas o último especificado.

    
por 20.12.2013 / 20:23
1

Eu queria a mesma coisa que parece. Eu tenho um lançador de aplicativos que eu escrevi no powershell, e o que eu tenho feito é criar uma lista de 8 faixas aleatória da minha biblioteca de músicas 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++

    }
    
por 09.03.2016 / 21:35