Добавление звукового канала с помощью ffmpeg

Я работаю над ffmpeg и пытаюсь добавить аудиопоток на лету. Я использую AudioQueues, и я получаю необработанный аудио буфер. Я кодирую аудио линейным PCM и следовательно аудио, которое я получаю, будет иметь формат .raw, который я знаю, что ffmpeg действительно принимает его. Но я не могу выяснить как. Я изучил AVStream, где в мы должны создать новый поток для этого звукового канала, но как я кодирую его к видео, которое уже инициализируется в другой структуре AVStream.

В целом, я хотел бы иметь идею архитектуры ffmpeg. Я нашел трудным работать, так как это меньше всего документируется. Любые указатели или детали ценятся.

Спасибо и наилучшие пожелания, Raj Pawan G.

6
задан Raj Pawan Gumdal 4 March 2010 в 09:33
поделиться

1 ответ

Если вы хотите использовать java, вы найдете гораздо лучше документированную обертку API для FFmpeg в Xuggler.

Тем не менее, FFmpeg может поддерживать Raw PCM, но не все контейнеры могут его содержать. Используйте кодеки PCM (см. avcodec.h) и найдите тот, который имеет нужный вам размер и атрибуты. Чтобы добавить аудио в тот же контейнер, найдите объект AVFormatContext, который вы используете для существующего видеопотока, и используйте av_new_stream(...) для добавления нового потока. Затем подключите PCM-кодер и "закодируйте" его и запишите результирующие пакеты. Примеры этого API в действии смотрите в файле output_example.c в FFmpeg.

2
ответ дан 17 December 2019 в 20:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: