無音ビデオを再生しながら同時にオーディオファイルを追加するにはどうすればいいですか?

無音ビデオを再生しながら同時にオーディオファイルを追加するにはどうすればいいですか?

MP3 オーディオ ファイルとビデオ ファイルを含むフォルダーがあります。両方とも同じ名前です。

  • 例.mp3
  • 例.mp4

ビデオを再生してサウンドを追加したいのですが、
両方のファイルは同じままにしておく必要があり、両方が含まれる新しいファイルは不要です。

コマンドラインで実行する方法はありますか?

答え1

音のないビデオを再生しながら同時にオーディオファイルを追加するにはどうすればいいですか?
ビデオを再生しながらサウンドを追加したいです。

(実験的な)--input-slaveスイッチ付き。

コマンドラインで実行する方法はありますか?

ビデオにオーディオ トラックがない場合は、次のようなものを使用できます。

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

ビデオにオーディオ トラックがある場合、VLC はデフォルトでそれを使用するため、次のように代替トラックを指定する必要があります。

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

ビデオに 2 つのオーディオ トラックがある場合は、--audio-track=2などを使用します (最初のトラックは なので0、外部オーディオに使用する番号は、ビデオ内のオーディオ トラックの数と同じになります)。

また、(現時点では)外部オーディオ トラックを 1 つしか指定できないため、これは機能しません。

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

この場合、VLC は最後に指定されたものだけを使用します。

答え2

私も同じことを望んでいたようです。PowerShell で作成したアプリ ランチャーがあり、その機能の 1 つとして、音楽ライブラリからランダムに 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++

    }

関連情報