Posted by Андрей
on Апрель 27, 2009
Для истории, проблема один-в-один как описана в http://drupal.org/node/376012.
FFmpeg, собранный с libmp3lame (для кодирования mp3) версии 3.98, сообщает следующее:
lame: output buffer too small (buffer index: 9404, free bytes: 388)
Он считает это фатальной ошибкой, завершается:
Audio encoding failed
Лечится downgrade libmp3lame до версии 3.97.
Проверено на ArchLinux.
Posted by Андрей
on Июль 10, 2008
Может, это кому-то поможет сохранить пару часов отладки. Когда читаем видеопоток из файла, делаем что-то наподобие следующего:
AVPacket *m_pPacket = (AVPacket *)malloc(sizeof(AVPacket))
while(1)
{
int ret = av_read_frame(formatCtx, m_pPacket);
if (ret < 0)
// error
if (m_pPacket.stream_index == videoStreamIndex)
{
.... avcodec_decode_video ...
}
}
av_free_packet(m_pPacket);
free(m_pPacket);
Так вот, это неправильно, нужно вызывать av_free_packet после каждого av_read_packet:
Continue reading…