Как повторно реализовать Avcodec с обновленным Avcodeccontext on FlyC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как повторно реализовать Avcodec с обновленным Avcodeccontext on Fly

Сообщение Anonymous »

Существует вопрос о старой (0,7) версии библиотеки FFMPEG (LIBAV), в том числе для моего проекта как < /p>

Код: Выделить всё

extern "C" {
#include 
#include 
#include 
#include 
#include 
#include 
}
У меня есть объект avcodec , который знает, как кодировать мои кадры (к кодеку H264). У меня есть объект типа avcodeccontext , инициализированный с необходимыми параметрами (битрейт, кадров и т. Д.).

Код: Выделить всё

    AVCodec *encoderVideoCodec = nullptr;
AVCodecContext *encoderVideoCodecContext = nullptr;
Затем я инициализации avcodec с его контекстом, установив некоторые важные параметры из декодера (до этого я проанализировал поток ввода RTSP из камеры).

Код: Выделить всё

    encoderVideoCodecContext = avcodec_alloc_context3(encoderVideoCodec);
if(!encoderVideoCodecContext) {
std::cerr priv_data, outStreamParams.codec_priv_key, outStreamParams.codec_priv_value, 0);

encoderVideoCodecContext->height = decoderVideoCodecContext->height;
encoderVideoCodecContext->width = decoderVideoCodecContext->width;
encoderVideoCodecContext->sample_aspect_ratio = decoderVideoCodecContext->sample_aspect_ratio;

if(encoderVideoCodec->pix_fmts)
encoderVideoCodecContext->pix_fmt = encoderVideoCodec->pix_fmts[0];
else
encoderVideoCodecContext->pix_fmt = decoderVideoCodecContext->pix_fmt;

encoderVideoCodecContext->bit_rate = bitrate;
encoderVideoCodecContext->rc_buffer_size = 4*1000*1000;
encoderVideoCodecContext->rc_max_rate = 2*1000*1000;
encoderVideoCodecContext->rc_min_rate = 2.5*1000*1000;
encoderVideoCodecContext->time_base = av_inv_q(frameRate);
encoderVideoStream->time_base = encoderVideoCodecContext->time_base;

int ret = 0;
ret = avcodec_open2(encoderVideoCodecContext, encoderVideoCodec, nullptr);
if(ret < 0 ) {
std::cerr  Метод выделяет некоторую память, которая не чистится. Или какую память мне следует убрать, и снова распределить, чтобы исправить утечку памяти?  

Подробнее здесь: [url]https://stackoverflow.com/questions/79436750/how-to-reinitialize-avcodec-with-updated-avcodeccontext-on-fly[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отсутствует jar Postgres Flyway в загрузчике классов при развертывании Fly.io
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Отсутствует jar Postgres Flyway в загрузчике классов при развертывании Fly.io
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Python Citeproc: ошибка с обновленным apa.csl, отлично работает со старым apa.csl
    Anonymous » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Запуск Cordova всегда дает ошибку со всем обновленным
    Anonymous » » в форуме JAVA
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как я могу перезаписать и существующий список с обновленным? [дублировать]
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»