Як записувати з двох джерел звуку одночасно у ffmpeg?


1

Я записую Давайте граємо за допомогою ffmpeg в Arch Linux. Я хотів би, щоб він записував як аудіо гри, так і мій мікрофон. Я використовую PulseAudio для звуку. Я можу отримати його для запису мікрофона або аудіо гри, але не те і інше. Мені потрібно, щоб вихід був у форматі, придатному для YouTube (Відео: h264, Audio: AAC).

Як я можу записати обидва джерела одночасно? Я шукаю рішення, яке або поєднує їх у одну аудіодоріжку у вихідному файлі, або ж надає мені два аудіовихідні файли та іншу програму для їх поєднання.

Мій поточний хак полягає в тому, щоб використовувати gst-start для передачі всіх мікрофонних входів на вихід динаміків, і оскільки це насправді відволікає, зменшуйте гучність ні до чого в моїх навушниках.

Відповіді:


2

Перший варіант

Оскільки ви вже можете записати ігровий аудіо та мікрофон, я б спробував просто вивести їх у два файли:

parec --format=s16le --rate=44100 -d ... | ffmpeg -ac 2 -f s16le -ar 44100  -i - mic.mp3
parec --format=s16le --rate=44100 -d ... | ffmpeg -ac 2 -f s16le -ar 44100  -i - game.mp3

а потім скористайтеся Audacity, щоб синхронізувати їх та об'єднати їх в єдиний аудіофайл.

Другий варіант

З тут я хотів би спробувати:

Спочатку завантажте нульову раковину:

pactl module-module module-null-sink sink_name = 'foo'

Потім завантажте дві спинки модульних петель:

pactl-модуль завантаження модуля-петля

pactl-модуль завантаження модуля-петля

За допомогою pavucontrol підключіть висновок двох циклів до нульової раковини. Підключіть вхід двох циклів зворотного зв'язку до: alsa_output.pci-0000_00_14.2.analog-stereo.monitor та alsa_input.pci-0000_00_14.2.analog-stereo

Це означає, що ви будете ефективно записувати як мікрофон, так і вихід звукової карти та відтворювати обидва потоки на нульовій раковині. Оскільки це нульова раковина, ви не зможете її почути, але ви повинні мати змогу побачити метр VU на вкладці відтворення pavucontrol.

Тоді для того, щоб записати комбінований результат, ви просто виберете foo.monitor.

pacat -r -d foo.monitor


Вибачте - я не повинен був би дати баунті закінчитися - я забув, що встановив його.
Macha
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.