У меня возникли некоторые проблемы при попытке кодировать видео с использованием libav.
Я получаю ошибку подтверждения от ratecontrol.c : 766
говоря это q>0.0
Я понятия не имею, что происходит, я знаю, что буква q обычно обозначает качество, где 0 — без потерь.
Но в этом случае я просто не могу понять, что может быть не так.
У меня много кода по этому поводу, и разместить его здесь невозможно. Я использую пакет ffmpeg 1.0 с gpl и libx264. Я пытаюсь кодировать, используя кодировщик libx264 со значением crf 1.
Я проверил входящие значения, и они кажутся разумными, я попытался сохранить данные изображения в отдельных файлах .bmp, и все, кажется, в порядке.
Редактировать:
Понял, битрейт не был совместим с кодировщиком.
Странно, что он должен сделать что-то вроде этого, чтобы указать на эту проблему ..
Рассматриваемый файл, кажется, 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
.
Поскольку этот вопрос носит весьма общий характер, я предлагаю вам попытаться немного покопаться в коде, пытаясь немного его понять.
Других решений пока нет …