美文网首页
FFmpeg编码占用CPU高的问题

FFmpeg编码占用CPU高的问题

作者: 星星杨 | 来源:发表于2022-12-02 14:42 被阅读0次

    主要问题集中在编码过程中需要CPU大量的参与工作,因为压缩率的设置不同,使用ultrafast,编码器的工作量比medium的工作量少了,cpu就下去了,可以尝试下面设置:
    AVDictionary* param = nullptr;
    av_dict_set(&param, "preset", "ultrafast", 0);
    av_dict_set(&param, "tune", "zerolatency", 0);

    相应编码压缩的数据量小,要发送的数据量就大,码率如果无法支撑,画面就没那么清晰,可尝试增大码率;
    vcodecContext->bit_rate = 3000000 * 10;

    二、X264的preset和tune

    鉴于x264的参数众多,各种参数的配合复杂,为了使用者方便,x264建议如无特别需要可使用preset和tune设置。这套开发者推荐的参数较为合理,可在此基础上在调整一些具体参数以符合自己需要,手动设定的参数会覆盖preset和tune里的参数。

    --preset的参数主要调节编码速度和质量的平衡,有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢。

    --tune的参数主要配合视频类型和视觉优化的参数。如果视频的内容符合其中一个可用的调整值又或者有其中需要,则可以使用此选项,否则建议不使用(如tune grain是为高比特率的编码而设计的)。tune的值有:
    film:电影、真人类型;
    animation:动画;
    grain:需要保留大量的grain时用;
    stillimage:静态图像编码时使用;
    psnr:为提高psnr做了优化的参数;
    ssim:为提高ssim做了优化的参数;
    fastdecode:可以快速解码的参数;
    zerolatency:零延迟,用在需要非常低的延迟的情况下,比如电视电话会议的编码。

    未完待续...

    https://www.zhihu.com/question/27442034
    https://trac.ffmpeg.org/wiki/Encode/H.264#CBRConstantBitRate

    相关文章

      网友评论

          本文标题:FFmpeg编码占用CPU高的问题

          本文链接:https://www.haomeiwen.com/subject/qrtxfdtx.html