Я использую LibAV для мультиплексирования аудио и видео в реальном времени. Для этого вопроса я имею в виду файл output.c из примеров LibAV. Если я запишу 250 кадров со скоростью 25 кадров в секунду, используя AV_CODEC_ID_MPEG4
, то выходной видеофайл будет иметь длину ровно 10 секунд. Но если я использую AV_CODEC_ID_H264
для 250 кадров со скоростью 25 кадров в секунду, то выходной видеофайл будет иметь длину примерно 8,86 секунды.
У меня есть рабочий код, который использует PortAudio и LibAV для мультиплексирования в реальном времени. В настоящее время я использую MPEG-4, но качество видео уступает H264. Если это возможно, я бы предпочел использовать H264.
У меня вопрос: как заставить H264 записывать 10 секунд видео для 250 кадров со скоростью 25 кадров в секунду?
Спасибо.