gpt4 book ai didi

c++ - 如何使用 avcodec 和 libx264 设置固定 (const) fps

转载 作者:行者123 更新时间:2023-12-04 23:01:37 24 4
gpt4 key购买 nike

我正在使用这个项目https://github.com/apc-llc/moviemaker-cpp
我想知道如何在我的视频上设置固定帧率
现在,当我输入 30FPS 作为 c->framerate 时,它​​的结果类似于 33.6 38.1 35.3
我尝试了在网上找到的所有东西,但没有机会。
我尝试了什么:
https://github.com/apc-llc/moviemaker-cpp/blob/319be27849fc3d55a9dc3b0180a5d4ac84e24121/src/writer.cpp#L54

#define FRAMERATE  20
#define FRAME_TIME AVRational{ 1 , FRAMERATE }
#define FRAME_RATE AVRational{ FRAMERATE , 1 }
...

// Setting up the codec.
AVCodec* codec = avcodec_find_encoder_by_name("libx264"); //libx264 works too!
AVDictionary* opt = NULL;
av_dict_set(&opt, "preset", "slow", 0);
av_dict_set(&opt, "cfr", "30", 0);
stream = avformat_new_stream(fc, codec);
c = stream->codec;
c->width = width;
c->height = height;
c->pix_fmt = AV_PIX_FMT_YUV420P;
c->time_base = FRAME_TIME;
c->framerate = FRAME_RATE;
stream->avg_frame_rate = FRAME_RATE;

最佳答案

感谢𝕳𝖊𝖎𝖘𝖊𝖓𝖇𝖊𝖗𝖌
解决办法是:

What you're looking for is fixed gop and fps! to achieve that just set stream avg_frame_rate and tune to zerolatency, that's all.


有用!

关于c++ - 如何使用 avcodec 和 libx264 设置固定 (const) fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67133169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com