Записывайте видео из потока, аудио с 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,
Другие вопросы по тегам