当前位置: 首页 > news >正文

Qt+ffmpeg将录屏画面推流到RTSPServer遇到的画面花屏卡顿的问题及优化

项目地址:https://gitee.com/lizhi_zizi/screen-record
https://gitee.com/lizhi_zizi/rtspserver_test2

Qt程序调用的ffmpeg命令行进行录屏推流到RTSPServer,如下:
args << "-f" << "gdigrab"
<< "-framerate" << "30"
<< "-i" << "desktop"
<< "-c:v" << "libx264"
<< "-preset" << "ultrafast"
<< "-tune" << "zerolatency"
<< "-pix_fmt" << "yuv420p"
<< "-rtsp_transport" << "udp"
<< "-f" << "rtsp"
<< m_rtspUrl;
1.发现在RTSPSever接收推流数据保存的文件,打开画面有花屏、卡顿不流畅的问题。
单独调用ffmpeg命令测试保存的文件,其文件打开画面正常,调用如下:
ffmpeg -f gdigrab -i desktop -vcodec libx264 -pix_fmt yuv420p output.h264
确定是参数-preset ultrafast和-tune zerolatency导致的画面花屏卡顿。
前者通过降低压缩率提升编码速度,后者减少缓冲延迟,两者协同实现低延迟实时流传输。基础命令未指定这些参数,默认使用中等编码速度和延迟。

2.程序中去除参数-preset ultrafast和-tune zerolatency,如下:
args << "-f" << "gdigrab"
<< "-framerate" << "30"
<< "-i" << "desktop"
<< "-c:v" << "libx264"
<< "-pix_fmt" << "yuv420p"
<< "-rtsp_transport" << "udp"
<< "-f" << "rtsp"
<< m_rtspUrl;
验证结果,服务器接收到保存的文件打开没有花屏,但是还是有画面不流畅的问题。
其主要与H.264编码的延迟优化机制缺失有关。

编码效率与流畅性关系
‌默认编码模式‌
未指定-preset时,FFmpeg默认使用medium预设,该模式以编码效率优先,会增加帧处理延迟(约增加2-3倍编码时间),导致实时流传输时帧间隔不均匀
‌低延迟优化缺失‌
-tune zerolatency的作用是禁用帧重排序(B帧减少)和降低缓冲大小,移除后会导致编码器累积更多帧再处理,加剧网络传输的卡顿感

这里采用“平衡参数调整”方案,如下
-preset veryfast // 比medium快但保留部分压缩效率
-tune fastdecode // 替代zerolatency,减少B帧但不完全禁用
-x264-params ref=3:bframes=1 // 限制参考帧和B帧数量

3.采用“平衡参数调整”方案后,如下:
args << "-f" << "gdigrab"
<< "-framerate" << "30"
<< "-i" << "desktop"
<< "-c:v" << "libx264"
<< "-preset" << "veryfast"
<< "-tune" << "fastdecode"
<< "-x264-params" << "ref=3:bframes=1"
<< "-pix_fmt" << "yuv420p"
<< "-rtsp_transport" << "udp"
<< "-f" << "rtsp"
<< m_rtspUrl;

验证结果,推流保存的文件打开没有画面,对保存的.264文件进行nal分析发现,缺少IDR帧。
其原因是,使用-x264-params ref=3:bframes=1参数时,可能会因为B帧和参考帧的限制导致IDR帧间隔过长,影响视频流的可解码性和实时性。

“显式设置关键帧间隔”方案
使用keyint/min-keyint组合,例如keyint=30:min-keyint=15,确保低延迟下的定期关键帧。
-x264-params ref=3:bframes=1:keyint=60:min-keyint=30

3.采用“平衡参数调整”方案后,如下:
args << "-f" << "gdigrab"
<< "-framerate" << "30"
<< "-i" << "desktop"
<< "-c:v" << "libx264"
<< "-preset" << "veryfast"
<< "-tune" << "fastdecode"
<< "-x264-params" << "ref=3:bframes=1:keyint=60:min-keyint=30"
<< "-pix_fmt" << "yuv420p"
<< "-rtsp_transport" << "udp"
<< "-f" << "rtsp"
<< m_rtspUrl;

验证结果,推流保存的文件打开画面正常

http://www.gsyq.cn/news/65880.html

相关文章:

  • 2025年热门的反弹加缓冲防摆动滑轨厂家选购指南与推荐
  • QT+OpenGL渲染YUV数据
  • werr
  • 可靠的城际出行网约车公司推荐排行榜单? 城际出行网约车品牌 城际出行网约车公司 城际出行网约车服务商 城际出行网约车渠道
  • 高碑店市农村自建房机构哪家好?河北保定高碑店市自建房机构深度测评推荐排行榜
  • 深入解析:TCP 明明有重传机制,为何还会丢包?
  • 2025年中国十大冷却塔专业制造商推荐:冷却塔生产企业及品牌
  • 行业内可靠的共享办公室公司推荐排行榜单?共享办公室品牌 共享办公室公司 共享办公室推荐 共享办公室出租 共享办公室租赁
  • 比较好的灵活办公工位公司推荐排行榜单?灵活办公工位品牌 灵活办公工位公司 灵活办公工位推荐 灵活办公工位出租 灵活办公工位租赁
  • 比较好的联合办公空间公司推荐排行榜单?联合办公空间品牌 联合办公空间公司 联合办公空间推荐 联合办公空间出租 联合办公空间租赁
  • 2025年中国公园雾森设备设计TOP5公司推荐:梦幻雾森设备
  • 2025年防尘雾森设备技术与智能雾森设备方案十大服务商排行榜
  • 2025年十大上海起重设备品牌排行榜,凯力起重设备质量可靠吗
  • NOIP2025 总结
  • 可靠的工业铝型材供应厂家推荐排行榜?工业铝型材供应厂家 工业铝型材工厂 工业铝型材厂家 工业铝型材生产厂家 工业铝型材源头厂家 工业铝型材供应商
  • 2025年哈尔滨家居设备服务公司排名:盛通MALL旗舰店的用
  • 专业的遮阳蓬品牌哪家靠谱?遮阳蓬品牌 遮阳蓬公司 遮阳蓬产品 遮阳蓬供应厂家 遮阳蓬工厂 遮阳蓬厂家 遮阳蓬生产厂家 遮阳蓬源头厂家
  • 《考研408数据结构》第七章(6.1~6.3图的概念、存储方式、深/广度遍历)复习笔记 - 教程
  • 国内AI公司估值排行:行业技术实力与发展潜力观察
  • 正规的推拉雨棚品牌哪家靠谱?推拉雨棚品牌 推拉雨棚公司 推拉雨棚产品 推拉雨棚供应厂家 推拉雨棚工厂 推拉雨棚厂家 推拉雨棚生产厂家 推拉雨棚源头厂家
  • 靠谱的AI公司有哪些?行业深耕者实力盘点
  • 适合长期吃的助眠益生菌品牌推荐
  • BEHAVIOR-1K:面向日常活动的具身AI仿真基准
  • 睡眠不好吃的益生菌选哪家好?几款热门产品特点解析
  • 国内AI直播工具有哪些?2025年主流平台功能解析
  • 市面上可靠的AI营销品牌推荐排行榜单?AI营销公司 AI营销品牌 AI营销产品 AI营销服务商 AI营销渠道 AI营销机构
  • 江苏省刑事律所推荐:聚焦专业能力与服务品质的选择
  • 比较好的高科技数控车床供应商口碑推荐榜单?高科技数控车床供应商 高科技数控车床销售厂家 高科技数控车床制造商 高科技数控车床加工厂 高科技数控车床优质厂家 高科技数控车床实力厂家
  • 苏州靠谱的律师事务所推荐及选择参考
  • 外观检测设备有哪些?行业主流方案解析