• iOS深入探索直播推拉流实现流程(四:LFLiveKit之LFLiveVideoConfiguration,LFLiveAudioConfiguration )


    LFLiveVideoConfiguration视频配置主要是三个方面分别是:
        1.分辨率videoSize:视频画面大小,分辨率越高画面越清晰。分辨率控制着画面的清晰度。
        2.采样帧数(也称帧率)videoFrameRate:每秒的画面数,视频是由很多帧画面连贯起来的,帧数越高越流畅。人眼识别16帧(别人统计的数字我也不清楚)以上就很难感觉出来画面的卡顿。帧率控制画面的流畅度。
        3.码率videoBitRate:每秒显示的图片压缩后的数据量。码率控制着画面的清晰度。

    这里有几个公式顺便扫一下盲:
        1.体积=码率*时间
        2.压缩前每秒的数据量 = 帧率 * 分辨率 = 码率 * 压缩比
    注意:
        1.分辨率是被AVCaptureSession控制的,它有长宽固定比例的值提供选择,不能自定义比例。例:AVCaptureSessionPreset640x480
        2.帧率和码率虽然能自定义设置,但是不建议自定义设置,可以通过直接设置LFLiveVideoQuality来配套的配置这些属性的值。
        3.LFLiveVideoConfiguration还包含了最大最小帧率、最大最小码率和最大关键帧的设置。

    对外部提供三个方法区别是:
        1.是否自定义视频质量
        2.是否是横屏
    内部方法重难点:
        1.通过重写了set方法控制了最大最小帧率和最小码率,容错。
        2.通过supportSessionPreset:方法检测了当前手机支持的输入设备的分辨率,并控制适配了手机分辨率。
        3.添加了图像等比例输出的兼容方法aspectRatioVideoSize。
        4.重写了isEqual:方法和hash方法。重写这些方法的目的还不清楚,等后续看有没有处理。
        5.重写了encodeWithCoder和initWithCoder,数据持久化存储。
        6.重写了copyWithZone,卡住了一些别的实例化操作,将其实例化操作定义为默认配置。

    LFLiveAudioConfiguration视频配置主要是三个方面分别是:
        1.LFLiveAudioSampleRate  音频采样率:一分钟对声音信号的采样次数,采样率越高声音的还原就越真实。采样率决定着音频的质量。
        2.LFLiveAudioBitRate 音频码率: 每秒声音信号压缩后的数据量。码率也能决定音频的质量。
        3.numberOfChannels 声道数:一个音频放音系统可以处理多个声道的声音。简单来说就是声音录制时候的音源数量或回放是相应的扬声器的数量
        4.缓存区的长度:这个也是SDK自己定义的,用于声音在视频编码的时候判断,内存过大的时候暂缓编码的作用,保证内存的稳定性的作用。

    同样这里扫盲一下:
        码率和采样率虽然可以配置,但是不建议自己配置,还是用SDK里面选项的配置一下就好。其中的倍数关系很复杂啊~~~~~

    对外部提供二个方法区别是:
        1.默认配置和默认加上自定义音频质量(音频质量当然是SDK自己配置的),好处当然是防止随便修改引起的不同步问题。
        2.提供了声道数对外开放,码率和采样率虽然对外开放设置,但是不建议设置,在实例化方法里面已经进行了设置了。
        3.缓存区长度和声道数相关,这个在SDK里面是定位1024*2* numberOfChannels

    内部方法重难点:
        1.通过重写了set方法控制了最大最小采样率和最大最小声道数,并通声道数的set方法设置了flv编码音频头,当然是为了增加容错。
        2.重写了isEqual:方法和hash方法。重写这些方法的目的还不清楚,等后续看有没有处理。
        3.重写了encodeWithCoder和initWithCoder,数据持久化存储。
        4.重写了copyWithZone,卡住了一些别的实例化操作,将其实例化操作定义为默认配置。

    -----------------------------分割线-------------------------------------

      原创转载请注明出处,谢谢合作!!!

      新手上路,共同进步群号:240970537


       

  • 相关阅读:
    算法导论第三版第二章第三节习题答案
    算法导论第三版第二章第二节习题答案
    Android各版本 内外卡真实路径
    Go语言 爬虫2编码转换
    gotour的安装
    算法导论第三版第二章思考题答案
    Go语言的日志记录功能
    算法导论 中 lg 的底数是2的原因相关文章
    Go语言 爬虫1网络请求
    SharePoint 2013 母版页修改后,无法添加应用程序
  • 原文地址:https://www.cnblogs.com/fusheng-it/p/6078623.html
Copyright © 2020-2023  润新知