在运行ffmpeg编码过程中更新参数

时间:2019-04-24 16:03:46

标签: c++ linux video ffmpeg video-encoding

我想更新诸如fps,比特率,视频编码器的gop之类的参数,这些参数以前已经传递给了AVCodecContext结构。每当我更新任何参数时,我都希望同时反映它。

可以做的一件事是,需要使用av编解码器关闭并再次打开它。

但是我认为这不是好方法。

这是我ffmpeg的视频编码源代码:

        int got_output = 0, ret = 0;
        //av_init_packet(&pkt);
        pkt.data = NULL;    // packet data will be allocated by the encoder
        pkt.size = 0;
        ret = avcodec_encode_video2(c, &pkt, frame, &got_output);
        if (ret < 0)
        {
                cerr << "Error sending a frame for encoding\n";
                exit(1);
        }

是否有可用于重新加载编码参数的FFMPEG API?

1 个答案:

答案 0 :(得分:0)

否,FFmpeg没有正在运行的进程的API。这是您自己需要发展的东西。