降低FFmpeg的编码延时 您所在的位置:网站首页 云游戏怎么提高码率 降低FFmpeg的编码延时

降低FFmpeg的编码延时

2024-07-06 18:31| 来源: 网络整理| 查看: 265

   之前用FFmpeg的H264编码器发现编码出来的视频延时很大,在解码器一端优化各种可能产生延时的地方之后,延时还是有一秒,上网一查发现很多人遇到相同的问题,不过好在看到一个帖子给出了这个问题的解决方法。

   原来,FFmpeg的H264编码器为了提高编码的图像质量,默认会缓冲多帧图像,这个缓冲帧数跟GOP大小有关。我程序设置GOP等于100,结果缓冲了20多帧。为了降低编码延时,可以添加-preset:v ultrafast和-tune:v zerolatency两个选项,例如下面的   FFmpeg命令行采集摄像头的图像用H264编码并推流到一个服务器地址:

ffmpeg -f dshow -i video="USB Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://233.233.233.223:6666>test.sdp

preset可设置的等级可分为:

ultrafast,superfast, veryfast, faster, fast, medium, slow, slower, veryslow

其中ultrafast编码速度最快。

一般发送网络流都需要增加这两个参数,否则播放图像的延时很大。

 如果用代码,可以这样设置:

 /**  * ultrafast,superfast, veryfast, faster, fast, medium  * slow, slower, veryslow, placebo.   */ AVDictionary *param = 0; av_dict_set(¶m, "preset", "fast", 0); // av_opt_set(pCodecCtx->priv_data,"preset","fast",0); av_dict_set(¶m, "tune", "zerolatency", 0);



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有