Jak mam nagrywać wielokanałowy (quad) za pomocą ffmpeg?

0

Niedawno dostałem czterokanałowe urządzenie wejściowe USB (Behringer UMC404HD). Urządzenie działa i Linux je widzi; Wiem to, ponieważ mogę nagrywać cztery niezależne kanały za pomocą Audacity. Nie mogę jednak wymyślić, jak poprosić ffmpeg o zrobienie tego samego.

Jeśli skonfiguruję ALSA i wydam to polecenie:

ffmpeg -f alsa -i pulse  test.flac

Dostaję plik stereo zawierający dźwięk z urządzenia wielokanałowego, w którym wszystkie cztery kanały są zmiksowane do stereo (traktuje to jako przednie i tylne źródło kwadrofoniczne).

ffprobe na raportach tego pliku (wśród masy innych informacji):

Stream #0:0: Audio: flac, 48000 Hz, stereo, s16

Staram się, jak potrafię, nie jestem w stanie określić, jak ustawić tę rzecz w trybie quad zamiast stereo. Ta strona wyglądała obiecująco, ale nie mogłem sprawić, by żadna z nich działała w mojej (z pewnością znacznie prostszej !?) sprawie: https://trac.ffmpeg.org/wiki/AudioChannelManipulation

Czy ktoś wie jak to zrobić? Wydaje się, że powinno to być trywialne i prawdopodobnie używam niewłaściwych słów podczas wyszukiwania.

Toby Eggitt
źródło
Nie wiem na pewno, ale w dzisiejszych czasach quad audio jest tak rzadki, że lepiej byłoby sformatować go jako 5.1 z 2 pustymi kanałami.
Tetsujin
2
Problem musi zostać rozwiązany po stronie wejściowej; ponowne przesłanie danych wejściowych do 4 kanałów nie dostarczy Ci danych wejściowych, jeśli ffmpeg ich nie połknął. Zobacz dokumentację dla opcji alsa.
Gyan
Tetsujin, nie dbam o to, jaki to jest format, o ile ma cztery niezależne kanały (nie są one pozycyjne, ale w rzeczywistości są niezależnymi instrumentami / głosami). Więc jeśli możesz mi powiedzieć, jak zbudować linię poleceń, która robi to, co sugerujesz, byłoby to całkowicie przydatne.
Toby Eggitt
Gyan, dzięki, że w końcu doprowadziłem mnie do rozwiązania. Minęło kilka prób, aby dowiedzieć się, jak korzystać z funkcji kanałów i gdzie ją umieścić, a następnie odkryć, że kontener flac nie jest odpowiedni dla czterech kanałów (lub przynajmniej tak twierdzi ffmpeg) Ale w końcu to pracował: ffmpeg -f alsa -channels 4 -i puls test.wav Wydaje się ważne, że -kanały pojawiają się przed pulsem -i, a kontener wav wydaje się marnować miejsce na dysku, ale przynajmniej zawiera cztery kanały bez problem. Wielkie dzięki.
Toby Eggitt

Odpowiedzi:

1

Powinieneś zasygnalizować prawidłową liczbę kanałów po stronie wejściowej, a do przechowywania w FLAC, musisz ustawić obsługiwany układ kanałów. Więc,

ffmpeg -f alsa -channels 4 -i pulse -channel_layout quad test.flac
Gyan
źródło
Dzięki, jedną z rzeczy, które najtrudniej mi odkryć na temat ffmpeg, jest składnia poleceń. Wydaje się, że jest krytycznie wrażliwy na porządek, a jeszcze nie znalazłem (w ogromnym stosie dokumentów!) Części, w której jest to opisane ogólnie. W każdym razie twój wkład ładnie się wyjaśnił.
Toby Eggitt
Zobacz dwa ostatnie akapity
Gyan