当前位置: 首页 > 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.jsqmd.com/news/55761/

相关文章:

  • 2025年质量好的在线硬度计用户好评厂家排行
  • QT+OpenGL渲染YUV数据
  • 靠谱的铝塑门窗厂家排行榜?铝塑门窗公司 铝塑门窗厂家 铝塑门窗工厂 铝塑门窗生产厂家 铝塑门窗供应商 铝塑门窗生产商 铝塑门窗加工厂 铝塑门窗源头厂家 铝塑门窗直销厂家
  • 口碑好的户外地板品牌推荐榜单?户外地板品牌 户外地板公司 户外地板工厂 户外地板厂家 户外地板厂商 户外地板生产厂家
  • 市面上低温速冻冷库品牌推荐? 低温速冻冷库公司 低温速冻冷库产品 低温速冻冷库供应厂家 低温速冻冷库工厂 低温速冻冷库厂家 低温速冻冷库生产厂家 低温速冻冷库制造商
  • Room Arranger for Mac v9.8.3.645.dmg 安装教程详细步骤(附安装包)
  • AFOed on 2025/11/29.
  • 详细介绍:Jenkins
  • 2025年工业冷风机能效等级TOP5对比,铁皮房车间降温/陶瓷车间降温/注塑车间通风降温/家具厂车间通风降温工业冷风机供应商哪家好
  • 2025年11月副业平台推荐榜单:五家高性价比平台助你安全增收
  • 口碑好的博山电机公司推荐榜单?博山电机品牌 博山电机公司 博山电机工厂 博山电机厂家 博山电机厂商 博山电机生产厂家
  • 定州市农村自建房口碑推荐排行榜,2026年自建房公司权威测评优选
  • 行业内靠谱的广州到珠海网约车公司推荐排行榜单? 广州到珠海网约车品牌 广州到珠海网约车公司 广州到珠海网约车服务商 广州到珠海网约车渠道
  • 河北保定安国市农村自建房机构权威测评,2026年河北保定安国市地区靠谱自建房公司全维度对比排行榜
  • 2025年工业冷风机智能控制排名TOP6,汽配车间通风降温/汽车制造车间通风降温/敞开式车间通风降温/铁皮车间降温工业冷风机品牌找哪家
  • werr
  • CMake-HelloWorld
  • 广州专业的中巴包车公司推荐排行榜单?中巴包车品牌 中巴包车公司 中巴包车服务商 中巴包车平台 中巴包车渠道
  • 高碑店市农村自建房机构哪家好?河北保定高碑店市自建房机构深度测评推荐排行榜
  • 可靠的城际出行网约车公司推荐排行榜单? 城际出行网约车品牌 城际出行网约车公司 城际出行网约车服务商 城际出行网约车渠道
  • 安国市农村自建房找谁好?2026年靠谱公司TOP6实用选择指南
  • 深入解析:TCP 明明有重传机制,为何还会丢包?
  • jQuery 入门学习教程,从入门到精通, jQuery选择器详解 —— 全面知识点与实战案例(2) - 实践
  • 2025北京装修改造公司TOP5权威推荐:佳时特装修改造
  • 2025年十大多功能电表实力厂家排行榜,多功能电表优质生产商
  • 2025年中国十大冷却塔专业制造商推荐:冷却塔生产企业及品牌
  • 2025年度长三角地区碳纤维定制加工厂家排行榜,推荐碳纤维定
  • 正规的泡沫消防车厂家推荐排行榜?泡沫消防车厂家 泡沫消防车产品 泡沫消防车供应厂家 泡沫消防车工厂 泡沫消防车生产厂家 泡沫消防车源头厂家
  • 云智计划_数据结构_并查集
  • 市面上垃圾车厂家推荐排行榜?垃圾车厂家 垃圾车产品 垃圾车供应厂家 垃圾车工厂 垃圾车生产厂家 垃圾车源头厂家