TXLivePushConfig.h
6.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#import <Foundation/NSObject.h>
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#endif
#import "TXLiveSDKTypeDef.h"
#define CUSTOM_MODE_AUDIO_CAPTURE 0X001 //客户自定义音频采集
#define CUSTOM_MODE_VIDEO_CAPTURE 0X002 //客户自定义视频采集
#define CUSTOM_MODE_AUDIO_PREPROCESS 0X004 //客户自定义音频预处理逻辑
#define CUSTOM_MODE_VIDEO_PREPROCESS 0X008 //客户自定义视频预处理逻辑
#define TXRTMPSDK_LINKMIC_STREAMTYPE_MAIN 1 //连麦模式下主播的流
#define TXRTMPSDK_LINKMIC_STREAMTYPE_SUB 2 //连麦模式下连麦观众的流
@interface TXLivePushConfig : NSObject
/// 客户自定义模式
@property(nonatomic, assign) int customModeType;
/// 美颜强度 0 ~ 9, 默认值为0
@property(nonatomic, assign) float beautyFilterDepth;
/// 美白强度:0 ~ 9, 默认值为0
@property(nonatomic, assign) float whiteningFilterDepth;
/// 开启硬件加速, iOS系统版本>8.0 默认开启
@property(nonatomic, assign) BOOL enableHWAcceleration;
/**
home键所在方向,用来切换横竖屏推流, 默认值为HOME_ORIENTATION_DOWN
1. homeOrientation=HOME_ORIENTATION_RIGHT Home键在下竖屏推流
2. homeOrientation=HOME_ORIENTATION_RIGHT Home键在右横屏推流
3. homeOrientation=HOME_ORIENTATION_LEFT Home键在左横屏推流
@note 此参数的设置可能会改变推流端本地视频流方向,此参数设置后,请调用TXLivePush 里的setRenderRotation 来修正推流端本地视频流方向,具体请参考demo设置
@see TX_Enum_Type_HomeOrientation
*/
@property(nonatomic, assign) int homeOrientation;
/// 视频采集帧率, 默认值为15
@property(nonatomic, assign) int videoFPS;
/// 视频分辨率, 默认值为VIDEO_RESOLUTION_TYPE_360_640
/// @see TX_Enum_Type_VideoResolution
@property(nonatomic, assign) int videoResolution;
/// 视频固定码率,默认值为700
@property(nonatomic, assign) int videoBitratePIN;
/// 视频编码GOP,单位second 秒, 默认值为3
@property(nonatomic, assign) int videoEncodeGop;
/// 音频采样率 , 取值设置为 枚举值 TX_Enum_Type_AudioSampleRate,也可直接设置为对应的采样率 ,比如 audioSampleRate = AUDIO_SAMPLE_RATE_48000 或 audioSampleRate = 48000, 默认值为AUDIO_SAMPLE_RATE_48000
///@see TX_Enum_Type_AudioSampleRate
@property(nonatomic, assign) int audioSampleRate;
/// 音频声道数, 默认值为1
@property(nonatomic, assign) int audioChannels;
/// 码率自适应: SDK会根据网络情况自动调节视频码率, 调节范围在 (videoBitrateMin - videoBitrateMax), 默认值为NO
@property(nonatomic, assign) BOOL enableAutoBitrate;
/// 码率自适应: SDK会根据网络情况自动调节视频码率,同时自动调整分辨率, 默认值为AUTO_ADJUST_BITRATE_STRATEGY_1
///@see TX_Enum_Type_AutoAdjustStrategy
@property(nonatomic, assign) int autoAdjustStrategy;
/// 视频最大码率,仅当enableAutoBitrate = YES时有效, 默认值为1000
@property(nonatomic, assign) int videoBitrateMax;
/// 视频最小码率,仅当enableAutoBitrate = YES时有效, 默认值为400
@property(nonatomic, assign) int videoBitrateMin;
/// 噪音抑制, 默认值为YES
@property(nonatomic, assign) BOOL enableNAS;
/// 是否前置camera, 默认值为YES
@property(nonatomic, assign) BOOL frontCamera;
/// 是否允许点击曝光聚焦, 默认为YES
@property(nonatomic, assign) BOOL touchFocus;
/// 是否允许双指手势放大预览画面,默认为NO
@property(nonatomic, assign) BOOL enableZoom;
///推流器连接重试次数 : 最小值为 1, 最大值为 10, 默认值为 3
@property(nonatomic, assign) int connectRetryCount;
///推流器连接重试间隔 : 单位秒,最小值为 3, 最大值为 30, 默认值为 3
@property(nonatomic, assign) int connectRetryInterval;
///设置水印图片. 设为nil等同于关闭水印
@property(nonatomic, retain) TXImage *watermark;
///设置水印图片位置,水印大小为图片实际大小
@property(nonatomic, assign) CGPoint watermarkPos;
/**
水印相对于推流分辨率的归一化坐标,x,y,width,height 取值范围 0~1;height不用设置,sdk内部会根据水印宽高比自动计算height
eg: 推流分辨率为(540,960) watermarkNormalization设置为(0.1,0.1,0.1,0),水印的实际像素坐标为(540 * 0.1,960 * 0.1,540 * 0.1 ,540 *
0.1 * waterMark.size.height / waterMark.size.width)
@note watermarkNormalization坐标与watermarkPos坐标只能设置一种,如果设置了watermarkNormalization则优先使用归一化坐标
*/
@property(nonatomic, assign) CGRect watermarkNormalization;
/**
发送自定义CMSampleBuffer的输出分辨率 当设置此属性时,videoResolution自动失效
@warn 此值设置需与源SampleBuffer的画面比例一致,否则会引起画面变形
@warn 调用sendVideoSampleBuffer才会使用此值,或者设置autoSampleBufferSize=YES
*/
@property(assign) CGSize sampleBufferSize;
/// 设置YES时,调用sendVideoSampleBuffer输出分辨率等于输入分辨率, 默认值为NO
@property BOOL autoSampleBufferSize;
/// 开启音频硬件加速, 默认值为YES
@property(nonatomic, assign) BOOL enableAudioAcceleration;
/// 后台推流时长,单位秒,默认300秒
@property(nonatomic, assign) int pauseTime;
/// 后台推流帧率,最小值为3,最大值为8,默认5
@property(nonatomic, assign) int pauseFps;
/// 后台推流图片,图片最大尺寸不能超过1920*1920
@property(nonatomic, retain) TXImage *pauseImg;
/// 是否开启回声消除, 默认值为YES
@property(nonatomic, assign) BOOL enableAEC;
/// 是否开启耳返, 默认值为NO
@property(nonatomic, assign) BOOL enableAudioPreview;
/// 是否纯音频推流, 默认值为NO
@property(nonatomic, assign) BOOL enablePureAudioPush;
/// 是否就近选路, 默认值为YES. 注: 内部有自动处理,可不需要关注此值
@property(nonatomic, assign) BOOL enableNearestIP;
/**
RTMP传输通道的类型,取值为枚举值:TX_Enum_Type_RTMPChannel, 默认值为RTMP_CHANNEL_TYPE_AUTO
@see TX_Enum_Type_RTMPChannel
RTMP_CHANNEL_TYPE_AUTO = 0, //自动
RTMP_CHANNEL_TYPE_STANDARD = 1, //标准的RTMP协议,网络层采用TCP协议
RTMP_CHANNEL_TYPE_PRIVATE = 2, //标准的RTMP协议,网络层采用私有通道传输(在UDP上封装的一套可靠快速的传输通道),能够更好地抵抗网络抖动
*/
@property (nonatomic, assign) int rtmpChannelType;
@end