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

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

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

Спасибо и с уважением, Радж Паван Г.


person Raj Pawan Gumdal    schedule 04.03.2010    source источник
comment
Привет, у вас есть какой-нибудь образец, связанный с OSX, я пытаюсь работать на том же   -  person Swati    schedule 20.10.2016
comment
К сожалению, у меня нет доступа к исходному коду!   -  person Raj Pawan Gumdal    schedule 21.10.2016


Ответы (1)


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

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

person Art Clarke    schedule 08.03.2010
comment
Я спасибо, я уже начал следовать в этом направлении. В основном я слежу за output_example.c и свяжусь с вами, если меня что-нибудь заденет. Я использую Cocoa, а не java. Но в любом случае язык реализации является абстракцией для вызовов FFMpeg! - person Raj Pawan Gumdal; 09.03.2010