胡斌

add liveserv_help.txt

  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 +