소리 없는 비디오를 재생하는 동시에 오디오 파일을 추가하는 방법은 무엇입니까?

소리 없는 비디오를 재생하는 동시에 오디오 파일을 추가하는 방법은 무엇입니까?

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++

    }

관련 정보