zoukankan      html  css  js  c++  java
  • webrtc 记录tips

    1. 除特殊需求只有一个pc对象

    android出现了No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData 问题
    原因是安卓平台只支持一个音视频模块The reason is that only one audio device module supported on Android.,

    2. 如何使分辨率保持不变

    1. RTCConfiguration enableCpuOveruseDetection=false 关闭分辨率变换; 还可以调整源码来实现(包括但不限于固定帧率、定分辨率、自适应调整策略)

    关于webrtc中,会根据想要的传输码率来调整 视频分辨率,视频帧率,编码等级, 影响编码码率
    核心参数有

    • sdp中的
    1. x-google-max-bitrate 单位bps,下同, 视频码流最大值,当网络特别好时,码流最大能达到这个值,如果不设置这个值,网络好时码流会非常大
    2. x-google-min-bitrate 视频码流最小值,当网络不太好时,WebRTC的码流每次5%递减,直到这个最小值为,如果没有设置这个值,网络不好时,视频质量会非常差
    3. x-google-start-bitrate 视频编码初始值 ,当网络好时,码流会向最大值递增,当网络差时,码流会向最小值递减
    • CPU_OVERUSE_DETECTION_CONSTRANIT 这个参数为ture后webrtc会通过检测cpu进行分辨率或者是帧率的调节,同时会启动码率自适应动态调节分辨率策略。
    enum class DegradationPreference {
      DISABLED, //禁用
      // On over-use, request lower resolution, possibly causing down-scaling.
      MAINTAIN_FRAMERATE, //保持帧率,降低码率
      // On over-use, request lower frame rate, possibly causing frame drops.
      MAINTAIN_RESOLUTION, //保码率,降低帧率
      // Try to strike a "pleasing" balance between   or resolution.
      BALANCED,  //平衡
    }
    

    深入阅读 保帧率降分辨率 保帧率降码率

    3. 最小带宽需求

    最差需求 opus is 6kbit/s and for vp8 100kbits/s. 音频正常保持在40-200kbit/s之间,视频至少200kbit/s(最好500kbit/s)

    如何计算coturn服务器需要的带宽, 比如计算20M服务器可以几个人会议
    比如一般用户上传,一半用于下载, 10M用于下载
    //n人每人(n-1)个接收
    n(n-1) = 10M/0.5M , n=5, 所以最多支持5人视频会议

    4. 分辨率和比特率

    webrtc分辨率和比特率

  • 相关阅读:
    51nod 1179 最大的最大公约数 (数论)
    POJ 3685 二分套二分
    POJ 3045 贪心
    LIC
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    HDU 2389 Rain on your Parade
    HDU 2819 Swap
    HDU 1281 棋盘游戏
    HDU 1083 Courses
  • 原文地址:https://www.cnblogs.com/WillingCPP/p/14464685.html
Copyright © 2011-2022 走看看