QNVideoEncoderConfig.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // QNVideoEncoderConfig.h
  3. // QNRTCKit
  4. //
  5. // Created by 冯文秀 on 2022/5/16.
  6. // Copyright © 2022 Pili Engineering, Qiniu Inc. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "QNTypeDefines.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. @interface QNVideoEncoderConfig : NSObject
  13. /*!
  14. * @abstract Track 编码 bitrate (单位 kbps),默认码率为 600kbps
  15. *
  16. * @since v5.0.0
  17. */
  18. @property (nonatomic, assign, readonly) NSUInteger bitrate;
  19. /*!
  20. * @abstract Track 编码画面大小,默认 480x640
  21. *
  22. * @discussion 若视频编码分辨率无法达到设置值,则以实际采集分辨率为准
  23. *
  24. * @since v5.0.0
  25. */
  26. @property (nonatomic, assign, readonly) CGSize videoEncodeSize;
  27. /*!
  28. * @abstract Track 编码帧数,默认 24 帧
  29. *
  30. * @discussion 若视频输入帧数无法达到设置值,则以实际输入帧数为准
  31. *
  32. * @since v5.0.0
  33. */
  34. @property (nonatomic, assign, readonly) NSUInteger videoFrameRate;
  35. /*!
  36. * @abstract 视频质量降级模式,默认是 QNDegradationDefault
  37. *
  38. * @since v5.2.3
  39. */
  40. @property (nonatomic, assign, readonly) QNDegradationPreference preference;
  41. /*!
  42. * @abstract 视频编码预设
  43. *
  44. * @since v5.2.4
  45. */
  46. @property (nonatomic, assign, readonly) QNVideoFormatPreset formatPreset;
  47. /*!
  48. * @abstract 初始化默认编码配置。
  49. *
  50. * @discussion 默认码率为 600kbps。
  51. *
  52. * @since v5.0.0
  53. */
  54. + (instancetype)defaultVideoEncoderConfig;
  55. /*!
  56. * @abstract 初始化指定 bitrate (单位 kbps) 参数的编码配置。
  57. *
  58. * @discussion 默认编码分辨率 480x640、编码帧率 24 帧
  59. *
  60. * @param bitrate 编码码率,单位 kbps
  61. *
  62. * @since v5.0.0
  63. */
  64. - (instancetype)initWithBitrate:(NSUInteger)bitrate;
  65. /*!
  66. * @abstract 初始化指定 bitrate (单位 kbps) 、videoEncodeSize 参数的编码配置。
  67. *
  68. * @discussion 默认编码帧率 24 帧
  69. *
  70. * @param bitrate 编码码率,单位 kbps
  71. *
  72. * @param videoEncodeSize 编码分辨率
  73. *
  74. * @since v5.0.0
  75. */
  76. - (instancetype)initWithBitrate:(NSUInteger)bitrate
  77. videoEncodeSize:(CGSize)videoEncodeSize;
  78. /*!
  79. * @abstract 初始化指定 bitrate (单位 kbps) 、videoEncodeSize、videoFrameRate 参数的配置。
  80. *
  81. * @param bitrate 编码码率,单位 kbps
  82. *
  83. * @param videoEncodeSize 编码分辨率
  84. *
  85. * @param videoFrameRate 编码帧率
  86. *
  87. * @since v5.0.0
  88. */
  89. - (instancetype)initWithBitrate:(NSUInteger)bitrate
  90. videoEncodeSize:(CGSize)videoEncodeSize
  91. videoFrameRate:(NSUInteger)videoFrameRate;
  92. /*!
  93. * @abstract 初始化指定 bitrate (单位 kbps) 、videoEncodeSize、videoFrameRate 参数的配置。
  94. *
  95. * @param bitrate 编码码率,单位 kbps
  96. *
  97. * @param videoEncodeSize 编码分辨率
  98. *
  99. * @param videoFrameRate 编码帧率
  100. *
  101. * @param preference 视频质量降级模式
  102. *
  103. * @since v5.2.3
  104. */
  105. - (instancetype)initWithBitrate:(NSUInteger)bitrate
  106. videoEncodeSize:(CGSize)videoEncodeSize
  107. videoFrameRate:(NSUInteger)videoFrameRate
  108. preference:(QNDegradationPreference)preference;
  109. /*!
  110. * @abstract 初始化指定 preference、formatPreset 参数的编码配置。
  111. *
  112. * @param preference 视频质量降级模式
  113. *
  114. * @param formatPreset 视频编码预设
  115. *
  116. * @since v5.2.4
  117. */
  118. - (instancetype)initWithPreference:(QNDegradationPreference)preference
  119. formatPreset:(QNVideoFormatPreset)formatPreset;
  120. @end
  121. NS_ASSUME_NONNULL_END