Jak odtwarzać bezdźwięczne wideo i jednocześnie dodawać plik audio?

4

Mam folder z plikiem audio MP3 i plikiem wideo. Obie nazwane tak samo.

  • Przykład.mp3
  • Przykład.mp4

Chcę odtworzyć wideo i dodać dźwięk.
Oba pliki powinny pozostać niezmienione i nie chcę żadnego nowego pliku z obydwoma.

Czy można to zrobić za pomocą wiersza polecenia?

Atlus
źródło
Tylko początek dla innych, którzy chcą pomóc: teoretycznie VLC może to zrobić za pomocą GUI . Następnym krokiem byłoby znalezienie poprawnej składni wiersza poleceń
nixda
1
OK, udało mi się znaleźć wiersz polecenia Składnia jego:% vlc audiofile - plik-wideo-slave
Atlus
Prześlij swoje rozwiązanie jako odpowiedź. Możesz i powinieneś również zaakceptować własną odpowiedź
nixda,

Odpowiedzi:

3

Jak odtwarzać bezdźwięczne wideo i jednocześnie dodawać plik audio?
Chcę odtworzyć wideo i dodać dźwięk.

Z (eksperymentalnym) --input-slaveswtich.

Czy można to zrobić za pomocą wiersza polecenia?

Jeśli Twój film nie ma ścieżek audio, możesz po prostu użyć czegoś takiego:

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

Jeśli Twój film wideo ma ścieżkę audio, VLC użyje jej domyślnie, więc musisz określić alternatywną ścieżkę w następujący sposób:

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

Jeśli wideo zawiera dwie ścieżki audio, należy użyć --audio-track=2itd. (Pierwsza ścieżka to 0, więc liczba użyta dla zewnętrznego dźwięku jest równa liczbie ścieżek audio w filmie).

Ponadto możesz (obecnie) określić tylko jedną zewnętrzną ścieżkę audio, więc to nie zadziała:

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

W tym przypadku VLC używa tylko ostatniego określonego.

Synetech
źródło
1

Wydaje mi się, że chciałem tego samego. Mam program uruchamiający aplikacje, który napisałem w PowerShell, i mam do zrobienia losową 8-ścieżkową playlistę z mojej biblioteki muzycznej, która w trybie pełnoekranowym podlewa losowe wideo z wizualizacją.

Wygląda mniej więcej tak: 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++

    }
użytkownik3067533
źródło
Uwaga: wejście slave wciąż jest dość wybrednym imo. Opuściłem pętlę w nadziei, że w przyszłości będziesz mógł tp slave więcej niż jeden plik.
user3067533,
Uwaga: wejście slave jest podrzędne do ścieżki, a nie do kolejki. Twój film powinien więc być krótki i słodki z pełną wdzięku pętlą początkową, ponieważ może być wstrząsający, gdy wideo nagle resetuje każdą ścieżkę. Wymieszałem kilka z nich razem w różnych zamówieniach i wydaje się, że rozwiązuje to
problem
Obecnie używam: youtube.com/watch?v=oM_Ibhqx35s
user3067533