正在显示
1 个修改的文件
包含
499 行增加
和
0 行删除
doc/liveserv_help.txt
0 → 100644
| 1 | +liveserv可以支持同时编码screen,windows,camera,mic,movie ,集成本地rtmp服务器,共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。 | ||
| 2 | +1. 客户端模拟 | ||
| 3 | +wsclient.exe,使用命令如下 | ||
| 4 | +connect <ws uri> | ||
| 5 | +send <connection id> <message> | ||
| 6 | +close <connection id> [<close code:default=1000>] [<close reason>] | ||
| 7 | +show <connection id> | ||
| 8 | +help: Display this help text | ||
| 9 | +quit: Exit the program | ||
| 10 | + | ||
| 11 | +connect ws://127.0.0.1:6080 这个端口可以在config.ini里[LiveServ] PORT=6080 配置 | ||
| 12 | + | ||
| 13 | +(1)获取liveserv的本地rtmp服务器端口 | ||
| 14 | +send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini中配置 [RTMP] Port=1935 | ||
| 15 | + | ||
| 16 | +(2) 媒体共享命令 | ||
| 17 | +send 0 mov_start //开始媒体共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ms | ||
| 18 | +send 0 mov_start rtmp://127.0.0.1:1935/live/mytest //开始媒体共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 19 | +send 0 mov_stop //停止媒体共享 | ||
| 20 | +send 0 mov_pause //暂停媒体共享,当前位置暂停 | ||
| 21 | +send 0 mov_pause 60 //暂停媒体共享,设置停止位置为60s,resume时,会从60s处继续 | ||
| 22 | +send 0 mov_resume //从暂停状态变成继续共享 | ||
| 23 | +send 0 mov_seek 120 //seek 到120秒 | ||
| 24 | + | ||
| 25 | + | ||
| 26 | +(2)屏幕共享命令(scr) | ||
| 27 | +send 0 ss_start //开始屏幕共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ss | ||
| 28 | +send 0 ss_stop | ||
| 29 | + | ||
| 30 | +send 0 ss_start rtmp://127.0.0.1:1935/live/mytest //开始屏幕共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 31 | +send 0 ss_stop | ||
| 32 | + | ||
| 33 | +send 0 ss_start 100,100,400,200 //共享屏幕(100,100)位置,宽为400,高为200区域,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ss | ||
| 34 | +send 0 ss_stop | ||
| 35 | + | ||
| 36 | +send 0 ss_start rtmp://127.0.0.1:1935/live/mytest 100,100,400,200 //共享屏幕(100,100)位置,宽为400,高为200区域,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 37 | +send 0 ss_stop | ||
| 38 | + | ||
| 39 | +如果使用SmartSDK(配置方式为见后面config.ini说明里[ConfigInfo] use_smart_streaming_sdk=1),当推流地址不为rtmp://127.0.0.1:1935/live/ss时,自动添加一路推流到rtmp://127.0.0.1:1935/live/ss。 | ||
| 40 | +使用SmartSDK时,start_push,start_record里参数 video=scr 不起作用。 | ||
| 41 | + | ||
| 42 | + | ||
| 43 | +(3)文档共享(窗口共享)(doc) | ||
| 44 | +;相应参数从ds_start.txt读取,ds_start是一个文本文件,第一行保存的是窗口标题,后面各行依次为x坐标,y坐标,宽度,高度 | ||
| 45 | +send 0 ds_start //开始文档共享(窗口共享),缺省本地推流地址为rtmp://127.0.0.1:1935/live/ds | ||
| 46 | +send 0 ds_start rtmp://127.0.0.1:1935/live/mytest //开始文档共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 47 | +send 0 ds_stop | ||
| 48 | + | ||
| 49 | +(3) 音频共享(mic) | ||
| 50 | +;如果先运行了send 0 get_mic,会使用get_mic返回的第一个mic名测试;否则使用 "麦克风 (Conexant SmartAudio HD)" | ||
| 51 | +send 0 aud_start //开始音频,缺省本地推流地址为rtmp://127.0.0.1:1935/live/as | ||
| 52 | +send 0 aud_start /开始音频,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 53 | +send 0 aud_stop | ||
| 54 | +send 0 get_mic //获取mic列表 | ||
| 55 | + | ||
| 56 | +(4)摄像头共享 | ||
| 57 | +send 0 get_cam | ||
| 58 | +;如果先运行了send 0 get_cam,会使用get_cam返回的第一个摄像头名字,否则使用"Integrated Camera" | ||
| 59 | +send 0 cam_start //开始摄像头共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/cs | ||
| 60 | +send 0 cam_stop | ||
| 61 | + | ||
| 62 | +send 0 cam_start rtmp://127.0.0.1:1935/live/mytest //开始摄像头共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest | ||
| 63 | +send 0 cam_stop | ||
| 64 | + | ||
| 65 | + | ||
| 66 | +(5)录制 | ||
| 67 | +录制时,要进行相应的共享,才可能有流。如果要录制camra和mic,需要先audio_start,cam_start,然后start_record | ||
| 68 | +或者先start_record,也要audio_start之后才有对应的audio,cam_start之后才有对应video。如果已经开始了相应的共享,start_record后不指定音视频源,则自动选择已经共享的源, | ||
| 69 | +选择顺序为视频:屏幕共享,窗口共享,摄像头共享,媒体共享; 音频:音频共享,媒体共享;如果不需要音频,可以指定audio=non;不需要视频 video=non | ||
| 70 | + | ||
| 71 | +send 0 start_record 0 video=cam audio=mic //视频为摄像头,音频为MIC (start_record后面的0为录制序号,如果不写,缺省为0) | ||
| 72 | +send 0 start_record 1 video=scr audio=mic //视频为屏幕共享,音频为MIC(start_record后面的0为录制序号,如果不写,缺省为0 | ||
| 73 | +send 0 start_record 2 audio=non video=scr //视频为屏幕共享,无音频 (start_record 后面的0为推流序号,如果不写,缺省为0) | ||
| 74 | +send 0 stop_record 0 | ||
| 75 | +send 0 stop_record 1 | ||
| 76 | +send 0 stop_record 2 | ||
| 77 | + | ||
| 78 | +(6) 推流(向外部服务器推流) | ||
| 79 | +向外部推流时,要进行相应的共享,才可能有流。如果要向外部推camra和mic,需要先audio_start,cam_start,然后start_push | ||
| 80 | +或者先start_push,也要audio_start之后才有对应的audio,cam_start之后才有对应video。如果已经开始了相应的共享,start_push后不指定音视频源,则自动选择已经共享的源, | ||
| 81 | +选择顺序为视频:屏幕共享,窗口共享,摄像头共享,媒体共享; 音频:音频共享,媒体共享;如果不需要音频,可以指定audio=non;不需要视频 video=non | ||
| 82 | + | ||
| 83 | +send 0 start_push 0 audio=mic video=cam rtmp://myrtmpserver/live/mystream1 //视频为摄像头,音频为MIC (start_push 后面的0为推流序号,如果不写,缺省为0), | ||
| 84 | +send 0 start_push 1 audio=mic video=scr rtmp://myrtmpserver/live/mystream2 //推第二路流,视频为屏幕共享,音频为MIC (start_push 后面的0为推流序号,如果不写,缺省为0) | ||
| 85 | +send 0 start_push 2 audio=non video=scr rtmp://myrtmpserver/live/mystream3 //推第三路流,视频为屏幕共享,无音频 (start_push 后面的0为推流序号,如果不写,缺省为0) | ||
| 86 | +send 0 stop_push 0 //停止第一路流 | ||
| 87 | +send 0 stop_push 1 //停止第二路流 | ||
| 88 | +send 0 stop_push 2 //停止第三路流 | ||
| 89 | + | ||
| 90 | + | ||
| 91 | +(7)设置编码参数 | ||
| 92 | +send 0 set_videoparam cam=640;480;15;45;1000;2000 //设置摄像头共享的编码参数:数字,分号分隔: width;height;fps;keyframe-interval;bit-rate;max-bitrate 如果某一项保留原设置,该项不填写数字 | ||
| 93 | + 例如,只修改分辨率:send 0 set_videoparam 640;480;;;; | ||
| 94 | + | ||
| 95 | +send 0 set_videoparam scr=640;480;15;45;1000;2000 //设置屏幕共享的编码参数 | ||
| 96 | +send 0 set_videoparam doc=640;480;15;45;1000;2000 //设置文档共享的编码参数 | ||
| 97 | +send 0 set_videoparam mov=640;480;15;45;1000;2000 //设置媒体共享的编码参数 | ||
| 98 | +(8)获取编码参数 | ||
| 99 | +send 0 get_videoparam cam //获取摄像头共享编码参数,其他类型形式相同(scr,mov,doc)返回的参数格式如设置参数: cam=640;480;15;45;1000;2000 //w;h;fps;keyframe-interval;bit-rate;max-bitrate | ||
| 100 | + | ||
| 101 | +(9)设置MIC音量 | ||
| 102 | +send 0 set_mic_vol 100 ;0为静音,100为原始音量大小,(0,100)音量减小(100,200]音量提升 | ||
| 103 | + | ||
| 104 | +(10)获取MIC音量 | ||
| 105 | +send 0 get_mic_vol | ||
| 106 | + | ||
| 107 | +(11)系统剪贴板,文件相关(保留之前插件功能) | ||
| 108 | +send 0 clipboard_query image //查询剪贴板里是否有图片 | ||
| 109 | +send 0 clipboard_get image //获取剪贴板里的图片,返回文件格式缺省为jpg | ||
| 110 | +send 0 clipboard_get image jpg //获取剪贴板里的图片,返回文件格式jpg | ||
| 111 | +send 0 clipboard_get image png //获取剪贴板里的图片,返回文件格式png | ||
| 112 | +send 0 file_get filename //获取插件目录下的文件内容 | ||
| 113 | +send 0 file_set filename //设置插件目录下的文件内容 | ||
| 114 | + | ||
| 115 | +(12)屏幕录制/QAV命令(保留之前插件功能) | ||
| 116 | +send 0 get_mic | ||
| 117 | +send 0 rec_start 麦克风 (Conexant High Definition S | ||
| 118 | +send 0 rec_start 0 ;通过get_mic获取的mic列表的顺序号(0开始) | ||
| 119 | +send 0 rec_stop | ||
| 120 | +send 0 rec_version | ||
| 121 | + | ||
| 122 | +send 0 qav_login | ||
| 123 | +send 0 qav_logout | ||
| 124 | +send 0 qav_enter_room | ||
| 125 | +send 0 qav_leave_room | ||
| 126 | +send 0 qav_open_mic | ||
| 127 | +send 0 qav_close_mic | ||
| 128 | +send 0 qav_open_player | ||
| 129 | +send 0 qav_close_player | ||
| 130 | +send 0 qav_mute_audio | ||
| 131 | +send 0 qav_unmute_audio | ||
| 132 | + | ||
| 133 | + | ||
| 134 | +2. 协议 | ||
| 135 | +详见libws\ws_data.h | ||
| 136 | +typedef struct tagWSData_S | ||
| 137 | +{ | ||
| 138 | + uint16_ws cmd; | ||
| 139 | + uint8_ws byte_order; // 0: little endian, 1: bit endian | ||
| 140 | + uint8_ws resv; | ||
| 141 | + uint32_ws data_len; | ||
| 142 | + uint8_ws *data; | ||
| 143 | +}WSData_S; | ||
| 144 | +(1)命令消息 | ||
| 145 | + 看ws_data.h中WSCmd_E列举值 | ||
| 146 | + WS_CMD_MOV_START和WS_CMD_SS_START时data为rtmp的URI | ||
| 147 | + WS_CMD_MOV_SEEK时data为seek的位置,4个字节int类型,单位秒 | ||
| 148 | + WS_CMD_REC_PUSH_AUDIO_DATA时data为音频PCM RAW数据 | ||
| 149 | + WS_CMD_REC_START时data为MIC名字,不传的话只录制speaker | ||
| 150 | + WS_CMD_FILE_SET时data前256字节为文件名,后面data_len - 256 字节为文件内容 | ||
| 151 | + WS_CMD_FILE_GET时data为文件名 | ||
| 152 | + WS_CMD_KILL_PROCESS时,data前256字节为应用程序名(movserv.exe,ssserv.exe,recserv.exe) | ||
| 153 | + | ||
| 154 | +(2)返回消息 | ||
| 155 | + 看ws_data.h中WSResult_E列举值 | ||
| 156 | + a. WS_RES_MOV_PROPERTY时data为视频参数如下: | ||
| 157 | + typedef struct tagMovProperty_S | ||
| 158 | + { | ||
| 159 | + int32_ws nWidth; //宽 | ||
| 160 | + int32_ws nHeight;//高 | ||
| 161 | + int32_ws nFrameRate;//帧率 | ||
| 162 | + int32_ws nDuration;// 时长 | ||
| 163 | + int32_ws nPos;//开始播放位置,秒 | ||
| 164 | + int64_ws nFileSize;//文件大小 | ||
| 165 | + int32_ws nFileNameLength;//sFileName字符串长度 | ||
| 166 | + int32_ws nResv; | ||
| 167 | + int8_ws sFileName[MOV_FILENAME_MAX_LENGTH + 1]; // 播放视频文件名,MOV_FILENAME_MAX_LENGTH=255 | ||
| 168 | + } MovProperty_S; | ||
| 169 | + | ||
| 170 | + b. 其他没有data值,看比如WS_RES_MOV_START_SUC是指播放成功 | ||
| 171 | + | ||
| 172 | + c. WS_RES_CBD_GET_SUC时,data为返回的文件信息 | ||
| 173 | + typedef struct tagCBD_FIlE_S | ||
| 174 | + { | ||
| 175 | + int32_ws type; //文件类型, | ||
| 176 | + int32_ws nlen; //文件长度 | ||
| 177 | + int8_ws filecontent[0]; // 文件内容,长度为nlen | ||
| 178 | + } CBDContent_S; | ||
| 179 | + | ||
| 180 | + d. 对ds_start和ss_start, | ||
| 181 | + 返回的结构参见:WSDataWithRetCode_S,相对于,WSData_S,多了一个错误返回码。 | ||
| 182 | + 错误返回值参见:tagSSRetCode_E。 | ||
| 183 | + enum tagSSRetCode_E | ||
| 184 | + { | ||
| 185 | + SS_RET_ERR_SUCCESS = 0,//没有错误 | ||
| 186 | + SS_RET_ERR_NULLPARAM, //传入的参数指针为空 | ||
| 187 | + SS_RET_ERR_NOPARAM, //没有指定输入参数 | ||
| 188 | + SS_RET_ERR_NO_MATCHED_WINDOW, //没有找到对应的窗口 | ||
| 189 | + SS_RET_ERR_CREATE_LIVEMGR, //创建LiveMgr失败 | ||
| 190 | + SS_RET_ERR_INIT_ENV, //初始环境错 | ||
| 191 | + SS_RET_ERR_INIT_CONTEXT, //初始换上下文失败 | ||
| 192 | + SS_RET_ERR_PARAM_REGION, // 参数区域错误 | ||
| 193 | + SS_RET_ERR_ADD_VIDEOSTREAM, //添加video stream失败 | ||
| 194 | + SS_RET_ERR_START_ENCODER, //启动encoder失败 | ||
| 195 | + SS_RET_ERR_START_OUTPUT, //开始输出失败 | ||
| 196 | + SS_RET_ERR_START_CAPTURE, //启动捕获失败 | ||
| 197 | + SS_RET_ERR_UNKNOWN //未知错误 | ||
| 198 | + }; | ||
| 199 | + 对应于ret_code小于SS_RET_ERR_SUCCESS和大于SS_RET_ERR_UNKNOWN的都是未知错误 | ||
| 200 | + | ||
| 201 | + e. | ||
| 202 | + WS_REC_FILE_GET_SUC时, data 前256字节为请求的文件名,后data_len - 256字节为文件内容 | ||
| 203 | + WS_RES_FILE_GET_FAIL, WS_RES_FILE_SET_SUC, WS_RES_FILE_SET_FAIL时,data为请求的文件名 | ||
| 204 | + | ||
| 205 | + | ||
| 206 | +3.命令类型定义: | ||
| 207 | +ypedef enum tagWSCmd_E | ||
| 208 | +{ | ||
| 209 | + WS_CMD_UNKNOWN = 0, | ||
| 210 | + WS_CMD_MOV_START, | ||
| 211 | + WS_CMD_MOV_STOP, | ||
| 212 | + WS_CMD_MOV_PAUSE, | ||
| 213 | + WS_CMD_MOV_RESUME, | ||
| 214 | + WS_CMD_MOV_SEEK, | ||
| 215 | + WS_CMD_SS_START, | ||
| 216 | + WS_CMD_SS_STOP, | ||
| 217 | + WS_CMD_REC_START, | ||
| 218 | + WS_CMD_REC_STOP, | ||
| 219 | + WS_CMD_REC_PAUSE, | ||
| 220 | + WS_CMD_REC_RESUME, | ||
| 221 | + WS_CMD_REC_PUSH_AUDIO_DATA, | ||
| 222 | + WS_CMD_MOV_VERSION, | ||
| 223 | + WS_CMD_SS_VERSION, | ||
| 224 | + WS_CMD_REC_VERSION, | ||
| 225 | + WS_CMD_QAV_LOGIN, | ||
| 226 | + WS_CMD_QAV_LOGOUT, | ||
| 227 | + WS_CMD_QAV_ENTER_ROOM, | ||
| 228 | + WS_CMD_QAV_LEAVE_ROOM, | ||
| 229 | + WS_CMD_QAV_OPEN_MIC, | ||
| 230 | + WS_CMD_QAV_CLOSE_MIC, | ||
| 231 | + WS_CMD_QAV_OPEN_PLAYER, | ||
| 232 | + WS_CMD_QAV_CLOSE_PLAYER, | ||
| 233 | + WS_CMD_QAV_MUTE_AUDIO, | ||
| 234 | + WS_CMD_QAV_UNMUTE_AUDIO, | ||
| 235 | + WS_CMD_GET_MIC, | ||
| 236 | + WS_CMD_DS_START, | ||
| 237 | + WS_CMD_DS_STOP, | ||
| 238 | + WS_CMD_AUD_START, | ||
| 239 | + WS_CMD_AUD_STOP, | ||
| 240 | + WS_CMD_CONN_CLOSE, | ||
| 241 | + WS_CMD_PEN_START, | ||
| 242 | + WS_CMD_PEN_STOP, | ||
| 243 | + WS_CMD_PEN_VERSION, | ||
| 244 | + WS_CMD_QAV_DEVICE, | ||
| 245 | + WS_CMD_CBD_QUERY, | ||
| 246 | + WS_CMD_CBD_GET, | ||
| 247 | + WS_CMD_FILE_GET, | ||
| 248 | + WS_CMD_FILE_SET, | ||
| 249 | + WS_CMD_RESTART, | ||
| 250 | + WS_CMD_GET_CAM, | ||
| 251 | + WS_CMD_CAM_START, | ||
| 252 | + WS_CMD_CAM_STOP, | ||
| 253 | + WS_CMD_SWITCH_SCENE, | ||
| 254 | + WS_CMD_SHOW_UI, | ||
| 255 | + WS_CMD_SET_VIDEO_PARAM, | ||
| 256 | + WS_CMD_GET_VIDEO_PARAM, | ||
| 257 | + WS_CMD_START_RECORD, | ||
| 258 | + WS_CMD_STOP_RECORD, | ||
| 259 | + WS_CMD_START_PUSH, | ||
| 260 | + WS_CMD_STOP_PUSH, | ||
| 261 | + WS_CMD_GET_RTMP_PORT, | ||
| 262 | + WS_CMD_SET_MIC_VOL, | ||
| 263 | + WS_CMD_GET_MIC_VOL, | ||
| 264 | +}WSCmd_E; | ||
| 265 | + | ||
| 266 | +typedef enum tagWSResult_E | ||
| 267 | +{ | ||
| 268 | + WS_RES_MOV_START_SUC = 0, | ||
| 269 | + WS_RES_MOV_START_FAIL, | ||
| 270 | + WS_RES_MOV_STOP_SUC, | ||
| 271 | + WS_RES_MOV_STOP_FAIL, | ||
| 272 | + WS_RES_MOV_PAUSE_SUC, | ||
| 273 | + WS_RES_MOV_PAUSE_FAIL, | ||
| 274 | + WS_RES_MOV_RESUME_SUC, | ||
| 275 | + WS_RES_MOV_RESUME_FAIL, | ||
| 276 | + WS_RES_MOV_SEEK_SUC, | ||
| 277 | + WS_RES_MOV_SEEK_FAIL, | ||
| 278 | + WS_RES_MOV_PROPERTY, | ||
| 279 | + WS_RES_SS_START_SUC, | ||
| 280 | + WS_RES_SS_START_FAIL, | ||
| 281 | + WS_RES_SS_STOP_SUC, | ||
| 282 | + WS_RES_SS_STOP_FAIL, | ||
| 283 | + WS_RES_REC_START_SUC, | ||
| 284 | + WS_RES_REC_START_FAIL, | ||
| 285 | + WS_RES_REC_STOP_SUC, | ||
| 286 | + WS_RES_REC_STOP_FAIL, | ||
| 287 | + WS_RES_REC_PAUSE_SUC, | ||
| 288 | + WS_RES_REC_PAUSE_FAIL, | ||
| 289 | + WS_RES_REC_RESUME_SUC, | ||
| 290 | + WS_RES_REC_RESUME_FAIL, | ||
| 291 | + WS_RES_MOV_PLAY_FINISH, | ||
| 292 | + WS_RES_MOV_VERSION, | ||
| 293 | + WS_RES_SS_VERSION, | ||
| 294 | + WS_RES_REC_VERSION, | ||
| 295 | + WS_RES_MOV_SELECT_FILE_CANCEL, | ||
| 296 | + WS_RES_QAV_LOGIN_SUC, | ||
| 297 | + WS_RES_QAV_LOGIN_FAIL, | ||
| 298 | + WS_RES_QAV_LOGOUT_SUC, | ||
| 299 | + WS_RES_QAV_LOGOUT_FAIL, | ||
| 300 | + WS_RES_QAV_ENTERROOM_SUC, | ||
| 301 | + WS_RES_QAV_ENTERROOM_FAIL, | ||
| 302 | + WS_RES_QAV_LEAVEROOM_SUC, | ||
| 303 | + WS_RES_QAV_LEAVEROOM_FAIL, | ||
| 304 | + WS_RES_QAV_OPEN_MIC_SUC, | ||
| 305 | + WS_RES_QAV_OPEN_MIC_FAIL, | ||
| 306 | + WS_RES_QAV_OPEN_MIC_NODEV, | ||
| 307 | + WS_RES_QAV_CLOSE_MIC_SUC, | ||
| 308 | + WS_RES_QAV_CLOSE_MIC_FAIL, | ||
| 309 | + WS_RES_QAV_CLOSE_MIC_NODEV, | ||
| 310 | + WS_RES_QAV_OPEN_PLAYER_SUC, | ||
| 311 | + WS_RES_QAV_OPEN_PLAYER_FAIL, | ||
| 312 | + WS_RES_QAV_OPEN_PLAYER_NODEV, | ||
| 313 | + WS_RES_QAV_CLOSE_PLAYER_SUC, | ||
| 314 | + WS_RES_QAV_CLOSE_PLAYER_FAIL, | ||
| 315 | + WS_RES_QAV_CLOSE_PLAYER_NODEV, | ||
| 316 | + WS_RES_QAV_MUTE_AUDIO_SUC, | ||
| 317 | + WS_RES_QAV_MUTE_AUDIO_FAIL, | ||
| 318 | + WS_RES_QAV_UNMUTE_AUDIO_SUC, | ||
| 319 | + WS_RES_QAV_UNMUTE_AUDIO_FAIL, | ||
| 320 | + WS_RES_REC_SAVE_FILE_CANCEL, | ||
| 321 | + WS_RES_GET_MIC_SUC, | ||
| 322 | + WS_RES_GET_MIC_FAIL, | ||
| 323 | + WS_RES_DS_START_SUC, | ||
| 324 | + WS_RES_DS_START_FAIL, | ||
| 325 | + WS_RES_DS_STOP_SUC, | ||
| 326 | + WS_RES_DS_STOP_FAIL, | ||
| 327 | + WS_RES_AUD_START_SUC, | ||
| 328 | + WS_RES_AUD_START_FAIL, | ||
| 329 | + WS_RES_AUD_STOP_SUC, | ||
| 330 | + WS_RES_AUD_STOP_FAIL, | ||
| 331 | + WS_RES_AUD_DATA, | ||
| 332 | + WS_RES_SS_DATA, | ||
| 333 | + WS_RES_MOV_DATA, | ||
| 334 | + WS_RES_PEN_START_SUC, | ||
| 335 | + WS_RES_PEN_START_FAIL, | ||
| 336 | + WS_RES_PEN_STOP_SUC, | ||
| 337 | + WS_RES_PEN_STOP_FAIL, | ||
| 338 | + WS_RES_PEN_VERSION, | ||
| 339 | + WS_RES_QAV_DEVICE_SUC, | ||
| 340 | + WS_RES_QAV_DEVICE_FAIL, | ||
| 341 | + WS_RES_CBD_QUERY_SUC, | ||
| 342 | + WS_RES_CBD_QUERY_FAIL, | ||
| 343 | + WS_RES_CBD_GET_SUC, | ||
| 344 | + WS_RES_CBD_GET_FAIL, | ||
| 345 | + WS_RES_FILE_GET_SUC, | ||
| 346 | + WS_RES_FILE_GET_FAIL, | ||
| 347 | + WS_RES_FILE_SET_SUC, | ||
| 348 | + WS_RES_FILE_SET_FAIL, | ||
| 349 | + WS_RES_RESTART_SUC, | ||
| 350 | + WS_RES_RESTART_FAIL, | ||
| 351 | + WS_RES_GET_CAM_SUC, | ||
| 352 | + WS_RES_GET_CAM_FAIL, | ||
| 353 | + WS_RES_CAM_START_SUC, | ||
| 354 | + WS_RES_CAM_START_FAIL, | ||
| 355 | + WS_RES_CAM_STOP_SUC, | ||
| 356 | + WS_RES_CAM_STOP_FAIL, | ||
| 357 | + WS_RES_SWITCH_SCENE_SUC, | ||
| 358 | + WS_RES_SWITCH_SCENE_FAIL, | ||
| 359 | + WS_RES_PUSH_STREAM_FAIL, | ||
| 360 | + WS_RES_SHOW_UI_SUC, | ||
| 361 | + WS_RES_SET_VIDEO_PARAM_SUC, | ||
| 362 | + WS_RES_SET_VIDEO_PARAM_FAIL, | ||
| 363 | + WS_RES_GET_VIDEO_PARAM_SUC, | ||
| 364 | + WS_RES_GET_VIDEO_PARAM_FAIL, | ||
| 365 | + WS_RES_START_RECORD_SUC, | ||
| 366 | + WS_RES_START_RECORD_FAIL, | ||
| 367 | + WS_RES_STOP_RECORD_SUC, | ||
| 368 | + WS_RES_STOP_RECORD_FAIL, | ||
| 369 | + WS_RES_START_PUSH_SUC, | ||
| 370 | + WS_RES_START_PUSH_FAIL, | ||
| 371 | + WS_RES_STOP_PUSH_SUC, | ||
| 372 | + WS_RES_STOP_PUSH_FAIL, | ||
| 373 | + WS_RES_GET_RTMP_PORT_SUC, | ||
| 374 | + WS_RES_GET_RTMP_PORT_FAIL, | ||
| 375 | + WS_RES_SET_MIC_VOL_SUC, | ||
| 376 | + WS_RES_SET_MIC_VOL_FAIL, | ||
| 377 | + WS_RES_GET_MIC_VOL_SUC, | ||
| 378 | + WS_RES_GET_MIC_VOL_FAIL, | ||
| 379 | +}WSResult_E; | ||
| 380 | + | ||
| 381 | +config.ini说明 | ||
| 382 | +;livemgr服务配置项 | ||
| 383 | +[Service] | ||
| 384 | +;服务名称 | ||
| 385 | +name=3mlive | ||
| 386 | +;服务描述 | ||
| 387 | +desc=3mlive service | ||
| 388 | +;服务管理的可执行文件名(与livemgr在同一目录,不带exe,由";"分隔) | ||
| 389 | +modules=xuedianyun | ||
| 390 | + | ||
| 391 | +[ConfigInfo] | ||
| 392 | +;是否通过websocket发送编码后的flv数据到flash(为保持与之前的版本兼容) | ||
| 393 | +data_to_websocket = 0 | ||
| 394 | +;LOG_LEVEL_ERROR:0 LOG_LEVEL_WARNING:1 LOG_LEVEL_INFO:2 LOG_LEVEL_DEBUG:3 | ||
| 395 | +log_level = 2 | ||
| 396 | +;是否使用SmartSDK,确省不使用。 | ||
| 397 | +;如果使用,目前只对 屏幕共享(ss_start有效),并且在使用SmartSDK时,其他命令,如start_record,start_push的 scr 源就不起作用 | ||
| 398 | +use_smart_streaming_sdk = 0 | ||
| 399 | + | ||
| 400 | +[MovShare] ;媒体共享 | ||
| 401 | +maxrate = 1000 ;;最大码率kps | ||
| 402 | +framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率 | ||
| 403 | +tune =zerolatency | ||
| 404 | +x264opts = | ||
| 405 | +preset = fast | ||
| 406 | +profile = baseline | ||
| 407 | +level = 3.1 | ||
| 408 | +width = 720; ;如果为0,用原始视频的宽度 | ||
| 409 | +height = 576; ;如果为0,用原始视频高度 | ||
| 410 | +;编码声道数 | ||
| 411 | +channels = 2 | ||
| 412 | +;采用率 | ||
| 413 | +sample_rate = 22050 | ||
| 414 | +;采用大小 | ||
| 415 | +sample_size = 16 | ||
| 416 | +;采用音频缓冲区大小(ms) | ||
| 417 | +audio_buffer_size = 60 | ||
| 418 | +;音频编码码率(bps) | ||
| 419 | +audio_bitrate = 64000 | ||
| 420 | + | ||
| 421 | +[ScrShare] ;全屏共享 | ||
| 422 | +maxrate = 1000 ;最大码率kps | ||
| 423 | +framerate = 10 | ||
| 424 | +tune =zerolatency | ||
| 425 | +x264opts = | ||
| 426 | +preset = fast | ||
| 427 | +profile = baseline | ||
| 428 | +level = 3.1 | ||
| 429 | +width = 720 ;如果为0,用原始视频的宽度 | ||
| 430 | +height = 576 ;如果为0,用原始视频的宽度 | ||
| 431 | +keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 | ||
| 432 | + | ||
| 433 | +[RegShare] ;区域共享 | ||
| 434 | +maxrate = 1000 ;;最大码率kps | ||
| 435 | +framerate = 10 ;帧率fps | ||
| 436 | +tune =zerolatency | ||
| 437 | +x264opts = | ||
| 438 | +preset = fast | ||
| 439 | +profile = baseline | ||
| 440 | +level = 3.1 | ||
| 441 | +width = 720 ;如果为0,用原始视频的宽度 | ||
| 442 | +height = 576 ;如果为0,用原始视频的宽度 | ||
| 443 | +keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 | ||
| 444 | + | ||
| 445 | +[CamShare] ;摄像头共享 | ||
| 446 | +maxrate = 1000 ;;最大码率kps | ||
| 447 | +framerate = 10 ;帧率fps | ||
| 448 | +tune =zerolatency | ||
| 449 | +x264opts = | ||
| 450 | +preset = fast | ||
| 451 | +profile = baseline | ||
| 452 | +level = 3.1 | ||
| 453 | +width = 720 ;如果为0,用原始视频的宽度 | ||
| 454 | +height = 576 ;如果为0,用原始视频的宽度 | ||
| 455 | +keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 | ||
| 456 | + | ||
| 457 | +[RecServ] | ||
| 458 | +;修改用ffmpeg写flv的本地录像的编码参数 | ||
| 459 | +param= -framerate 10 -i desktop -acodec libvo_aacenc -ar 22050 -vcodec libx264 -pix_fmt yuv420p -level 3.1 -preset fast | ||
| 460 | +;1,使用 ffmpeg写flv;0,上层应用写flv;下面的与视频编码相关配置,对上层应用写flv模式起作用; | ||
| 461 | +;目前自己写flv,只录制了 MIC和视频(ffmpeg录制了MIC和playback的混音加视频) | ||
| 462 | +UseFF = 1 | ||
| 463 | +maxrate = 2000 ;;最大码率kps | ||
| 464 | +framerate = 10 ;帧率fps | ||
| 465 | +tune =zerolatency | ||
| 466 | +x264opts = | ||
| 467 | +preset = fast | ||
| 468 | +profile = main | ||
| 469 | +level = 5.1 | ||
| 470 | +width = 720 ;如果为0,用原始视频的宽度 | ||
| 471 | +height = 576 ;如果为0,用原始视频的宽度 | ||
| 472 | +keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 | ||
| 473 | +;编码声道数 | ||
| 474 | +channels = 2 | ||
| 475 | +;采用率 | ||
| 476 | +sample_rate = 22050 | ||
| 477 | +;采用大小 | ||
| 478 | +sample_size = 16 | ||
| 479 | +;采用音频缓冲区大小(ms) | ||
| 480 | +audio_buffer_size = 60 | ||
| 481 | +;音频编码码率(bps) | ||
| 482 | +audio_bitrate = 64000 | ||
| 483 | + | ||
| 484 | +;音频共享参数 | ||
| 485 | +[MicShare] | ||
| 486 | +;音量,100为原始大小,0为静音 | ||
| 487 | +volume=100 | ||
| 488 | +;编码声道数 | ||
| 489 | +channels = 2 | ||
| 490 | +;采用率 | ||
| 491 | +sample_rate = 22050 | ||
| 492 | +;采用大小 | ||
| 493 | +sample_size = 16 | ||
| 494 | +;采用音频缓冲区大小(ms) | ||
| 495 | +audio_buffer_size = 60 | ||
| 496 | +;音频编码码率(bps) | ||
| 497 | +audio_bitrate = 64000 | ||
| 498 | + | ||
| 499 | + |
-
请 注册 或 登录 后发表评论