ffmpeg, ошибка вида lame: output buffer too small 4

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.

ffmpeg: «утечка» памяти (av_read_packet) 6

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…