Записывайте видео из потока, аудио с USB-устройства и затем смешивайте
Мне нужно записать видеопоток и смешать его со звуком с внешнего устройства (звуковая карта USB). Мне удалось записать видео и аудио отдельно с помощью следующих команд.
видеоffmpeg -i rtsp://192.168.0.192 -acodec copy -vcodec copy ~/out.mp4
аудиоffmpeg -f alsa -i hw:1 -t 30 out.wav
Теперь мне нужно одновременно записать и создать файл mp4.
Я попробовал эту команду, но она выдает ошибку.
ffmpeg -f alsa -i hw:1 -i rtsp://192.168.0.192 -acodec copy -vcodec copy ~/out.mp4
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
РЕДАКТИРОВАТЬ: Использование контейнера MKV вместо MP4 работает. Как я должен кодировать видео, чтобы иметь возможность сохранить его в формате mp4?
1 ответ
MP4 не поддерживает аудио PCM (семейство форматов, обычно встречающееся в файлах WAV).
Вывод на консоль указывает это сразу над строкой, которую вы показали, но вы ее пропустили:
[mp4 @ 0x559e59ef2360] Could not find tag for codec pcm_s16le in stream #0, codec not currently supported in container
Вы варианты:
- Вывод в другой формат выходного контейнера, например.mov или Matroska (.mkv), как вы уже обнаружили, или
- Кодируйте аудио в формат, поддерживаемый MP4, такой как AAC, заменяя
-acodec copy
с-c:a aac
,