ultra_low_latency_config.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef ULTRA_LOW_LATENCY_CONFIG_H
  2. #define ULTRA_LOW_LATENCY_CONFIG_H
  3. // 超低延迟模式配置参数(针对RTMP/WebRTC优化)
  4. namespace UltraLowLatencyConfig {
  5. // 缓冲区大小优化(激进模式)
  6. constexpr int ULTRA_FRAME_QUEUE_SIZE = 1; // 减少到1帧 ≈ 33ms@30fps
  7. constexpr int ULTRA_PACKET_QUEUE_SIZE = 2; // 减少到2包 ≈ 67ms
  8. constexpr int MAX_FRAME_QUEUE_SIZE = 2; // 最大帧队列大小
  9. constexpr int MIN_FRAME_QUEUE_SIZE = 1; // 最小帧队列大小
  10. // 音频缓冲区优化(激进模式)
  11. constexpr int ULTRA_AUDIO_SAMPLES = 128; // 减少到128样本 ≈ 2.9ms@44.1kHz
  12. constexpr int MAX_AUDIO_SAMPLES = 256; // 最大音频样本数
  13. constexpr int MIN_AUDIO_SAMPLES = 64; // 最小音频样本数
  14. // 同步阈值优化(激进模式)
  15. constexpr double ULTRA_SYNC_THRESHOLD_MIN = 0.005; // 减少到5ms
  16. constexpr double ULTRA_SYNC_THRESHOLD_MAX = 0.020; // 减少到20ms
  17. constexpr double ULTRA_NOSYNC_THRESHOLD = 1.0; // 减少到1秒放弃同步
  18. constexpr double ULTRA_SYNC_FRAMEDUP_THRESHOLD = 0.040; // 减少到40ms
  19. constexpr double ULTRA_SYNC_REJUDGE_THRESHOLD = 0.002; // 减少到2ms
  20. // 高精度时间常量(int64类型,微秒单位)
  21. constexpr int64_t ULTRA_SYNC_THRESHOLD_MIN_US = 5000LL; // 5ms
  22. constexpr int64_t ULTRA_SYNC_THRESHOLD_MAX_US = 20000LL; // 20ms
  23. constexpr int64_t ULTRA_SYNC_REJUDGE_THRESHOLD_US = 2000LL; // 2ms
  24. // 网络优化参数(RTMP专用)
  25. constexpr const char* RTMP_LIVE = "1"; // 启用RTMP直播模式
  26. constexpr int PROBE_SIZE = 16; // 极小探测大小
  27. constexpr int ANALYZE_DURATION = 0; // 关闭分析
  28. constexpr int MAX_DELAY = 100000; // 100ms最大延迟
  29. constexpr const char* FFLAGS = "nobuffer+fastseek+flush_packets"; // 无缓冲+快速定位+立即刷新
  30. constexpr int BUFFER_SIZE = 65536; // 64KB接收缓冲区
  31. // 字符串版本的配置参数
  32. constexpr const char* PROBE_SIZE_STR = "16";
  33. constexpr const char* ANALYZE_DURATION_STR = "0";
  34. constexpr const char* MAX_DELAY_STR = "100000"; // 100ms
  35. constexpr const char* BUFFER_SIZE_STR = "65536"; // 64KB
  36. constexpr const char* RTMP_LIVE_STR = "1";
  37. // RTMP流优化参数
  38. constexpr const char* RTMP_BUFFER = "0"; // 禁用RTMP缓冲
  39. constexpr int STIMEOUT = 3000000; // 3秒连接超时
  40. constexpr const char* STIMEOUT_STR = "3000000";
  41. // 解码器优化(超低延迟配置)
  42. constexpr int DECODER_THREAD_COUNT = 1; // 单线程减少延迟
  43. constexpr const char* CODEC_PRESET = "ultrafast"; // 最快预设
  44. constexpr const char* CODEC_TUNE = "zerolatency"; // 零延迟调优
  45. constexpr bool ENABLE_FRAME_DROP = true; // 启用丢帧
  46. constexpr double FRAME_DROP_THRESHOLD = 0.020; // 20ms丢帧阈值
  47. // 渲染优化
  48. constexpr bool ENABLE_VSYNC = false; // 禁用垂直同步
  49. constexpr int RENDER_AHEAD_FRAMES = 0; // 不提前渲染
  50. }
  51. #endif // ULTRA_LOW_LATENCY_CONFIG_H