Chciałem wiedzieć, czy istnieje sposób na podzielenie stereo na dwa pliki wav mono. Moje pierwsze przypuszczenie było
ffmpeg -threads "16" -i "$2" -map 0:1:1 "$3"
ponieważ mój przykładowy film wideo zawiera następujące informacje:
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 39mn 0s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Mam więc ten jeden strumień audio z dwoma kanałami i chcę dwa kanały mono. Na początku próbowałem z map_channel, ale to nie pomogło, zamiast tego pojawił się komunikat o błędzie:
Syntax error, mapchan usage: [file.stream.channel|-1][:syncfile:syncstream]
Więc spróbowałem ponownie z wyżej wymienionym kodem i przynajmniej ffmpeg coś zrobił, ale wynik nie był tym, czego się spodziewałem, zamiast rozbić go na dwa pliki wav mono, wynik był:
info.system.container = WAVE
info.system.size = 449413166 Bytes
info.system.size = 428.59 MiB
info.system.playtime = 2340.69 s
info.audio0.codec = PCM
info.audio0.desc =
info.audio0.format_endianness = Little
info.audio0.format_sign = Signed
info.audio0.format_resolution = 16 bits
info.audio0.samprate = 48000 Hz
info.audio0.channels = 2
znowu z dwoma kanałami audio, więc gdzie popełniłem błąd?
źródło
-map_channel
używałem, nie użyłem pojedynczych kropek, ale zamiast tego użyłem podwójnych kropek, więc nic dziwnego, że to nie zadziałało. Teraz działa!-layouts
ale nie ma przykładu, jak to działa. Próbowałem i komunikat, który otrzymuję, jestMissing argument for option 'layouts'
tym, czego oczekuje ffmpeg?Audio ID : 2 Channel(s) : 6 channels Channel positions : Front: L C R, Side: L R, LFE
ale myślę, że już znalazłem rozwiązanie za ten problem.W tym celu należy użyć filtru z podświetleniem kanału . -map nie może tego zrobić. Na przykład:
Sprawdź link do dostarczonej dokumentacji.
źródło