MC, 09:09 wtorek, 21.02.2023 r.
Ilustracja do artykułu: Podmieniamy ścieżkę dźwiękową w pliku wideo - ffmpeg

Podmieniamy ścieżkę dźwiękową w pliku wideo - ffmpeg

Podmieniamy ścieżkę dźwiękową w pliku wideo - ffmpeg

Ponad trzy godziny renderowania długiego nagrania wideo i przy pierwszym oglądaniu kontrolnym znalazłem błąd w ścieżce dźwiękowej. Renderować od nowa? Nie - stwierdziłem, że szybciej będzie wygenerować wyłącznie poprawioną ścieżkę dźwiękową i ją podmienić.

Jak zmienić dźwięk w pliku wideo?

Okazuje się, że problem nie jest specjalnie trudny do rozwiązania. Właściwie to trudno znaleźć zagadnienie, którego nie da się rozwiązać przy pomocy ffmpeg. Wystarczy wybrać pliki źródłowe (w naszym przypadku dwa) a następnie wskazać, które informacje, z którego źródła chcemy mieć w pliku wynikowym.

W praktyce wygląda to następująco:

ffmpeg -i zrodlo_wideo.mp4 -i zrodlo_audio.wav -c:v copy -map 0:v:0 -map 1:a:0 poprawione.mp4

Jak to działa? Cała magia dzieje się w tej części polecenia: -map 0:v:0 -map 1:a:0. Pamiętając, że kolejność, a właściwie indeksy, liczymy od zera a nie od jednego, definiujemy tu, że chcemy użyć z zerowego pliku źródłowego ścieżkę wideo, jako zerową ścieżkę wideo pliku wynikowego oraz, że z pierwszego pliku źródłowego chcemy wziąć ścieżkę audio, jako zerową ścieżkę audio w pliku wynikowym.

Ścieżka wideo pozostanie skopiowania (-c:v copy).

Jeżeli ścieżka audio w obydwu plikach używa tego samego kodeka, możemy poprosić ffmpeg o czyste skopiowanie bez kodowania również ścieżki dźwiękowej, wtedy flagę -c zmieniamy na: -c copy.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść:
Wersja angielska: Replacing the audio track in the video file - ffmpeg