libav кодирование видео ratecontrol.cpp:766

У меня возникли проблемы с кодированием видео с помощью libav.

Я получаю сообщение об ошибке подтверждения от ratecontrol.c : 766 о том, что q>0.0

Я понятия не имею, что происходит, я знаю, что буква q обычно означает качество, где 0 означает отсутствие потерь.

Но в данном случае я просто не могу понять, что может быть не так.

У меня много кода по этому поводу, и опубликовать его здесь невозможно. Я использую пакет ffmpeg 1.0 с gpl и libx264. Я пытаюсь кодировать с помощью кодировщика libx264 со значением crf, равным 1.

Я проверил входящие значения, и они кажутся разумными, я попытался сохранить данные изображения в отдельные файлы .bmp, и все вроде бы в порядке.

Редактировать:

Понял, битрейт не совместим с кодировщиком.

Странно, что он должен делать что-то подобное, чтобы указать на эту проблему.


person 0xbaadf00d    schedule 26.11.2012    source источник


Ответы (1)


Рассматриваемый файл выглядит как libav ratecontrol.c

Строки вокруг этого:

 763         q= modify_qscale(s, rce, q, picture_number);
 764 
 765         rcc->pass1_wanted_bits+= s->bit_rate/fps;
 766 
 767         assert(q>0.0);

Так что, похоже, вам придется погрузиться и понять modify_qscale.

Поскольку этот вопрос очень общий, я предлагаю вам попробовать разобраться в коде, пытаясь немного понять его.

person csl    schedule 26.11.2012
comment
Я в этом прямо сейчас. Это не простая вещь, хотя и требует некоторого времени, чтобы понять. Любые предложения о том, что может быть причиной этого? Спасибо за ссылку. - person 0xbaadf00d; 26.11.2012
comment
Я думаю, что я на что-то, я обновлю завтра (через 16 часов), если это окажется источником. - person 0xbaadf00d; 26.11.2012