延时测试
夏楚 edited this page 2022-08-08 10:20:13 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

注意

此测试时间比较早,部分内容已失效;其中ultraLowDelay配置项已经删除合并写延时改成0时(默认为0)即为最低延时模式; 大家测试延时时可以使用webrtc播放来测试。

网络环境

  • localhost

操作系统

  • macOS

服务器

  • MediaServer,启动参数 -t 1 ,单线程启动
  • 配置文件打开ultraLowDelay模式

推流器

  • obs rtmp推流到localhost
  • 速率控制CBR
  • 比特率: 2500
  • 自定义缓存大小: 100
  • 关键帧将2秒
  • CPU使用预设: ultrafast
  • profile: baseline
  • Tune: zerolatency
  • 分辨率: 1280x720
  • fps: 30 image

播放器

  • 内置test_player
  • localhost播放rtsp(udp、tcp模式都测试)或rtmp

测试方法

  • 打开浏览器,打开在线秒表网页 https://miaobiao.51240.com/
  • 设置OBS截取浏览器秒表部分图像开始推流给MediaServer
  • 打开test_player播放对应的rtsp或rtmp url
  • 使用截图工具定格画面并对比网页与test_player播放器画面在线秒表时间差

测试结果

  • 播放rtmp,延时200ms ~ 400ms image image

  • 播放rtsp(tcp模式),延时200ms ~ 400ms image image

  • 播放rtsp(udp模式),延时200ms ~ 400ms image image

测试结论

  • 在单线程下,播放器和推流器在同一个线程,没有跨线程切换问题,延时稍微稳定并低点
  • 开启TCP_NODELAY关闭MSG_MORE在本轮测试中对优化延时效果不大
  • 多次截图平均下来有300ms左右的延时最低200ms左右最高有400+ms
  • 17年我自己写推流器(很遗憾没保存下exe文件)的情况下最低延时能达到120ms左右目前根本达不到怀疑obs推流延时还是较高
  • 推流时建议关闭音频再测试像AAC这种编码格式编码延时能达到100ms以上
  • 本次测试都是再macOS下测试的理想情况下服务器是linux推流器windows播放器渲染自己做的话延时可能还能更低
  • 感兴趣的朋友们可以在windows下测试下17年我是在局域网中测试的推流器、服务器、播放器都不是同一台主机延时尚且低至120ms如果localhost应该能更低。