Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
liveAssistant_release
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
胡斌
2017-04-26 16:54:56 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a9e8f962fcb4741441e2ddc67c5de8b1e6bfd8ae
a9e8f962
1 parent
4718963a
add liveserv_help.txt
显示空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
499 行增加
和
0 行删除
doc/liveserv_help.txt
doc/liveserv_help.txt
0 → 100644
查看文件 @
a9e8f96
liveserv可以支持同时编码screen,windows,camera,mic,movie ,集成本地rtmp服务器,共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。
1. 客户端模拟
wsclient.exe,使用命令如下
connect <ws uri>
send <connection id> <message>
close <connection id> [<close code:default=1000>] [<close reason>]
show <connection id>
help: Display this help text
quit: Exit the program
connect ws://127.0.0.1:6080 这个端口可以在config.ini里[LiveServ] PORT=6080 配置
(1)获取liveserv的本地rtmp服务器端口
send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini中配置 [RTMP] Port=1935
(2) 媒体共享命令
send 0 mov_start //开始媒体共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ms
send 0 mov_start rtmp://127.0.0.1:1935/live/mytest //开始媒体共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest
send 0 mov_stop //停止媒体共享
send 0 mov_pause //暂停媒体共享,当前位置暂停
send 0 mov_pause 60 //暂停媒体共享,设置停止位置为60s,resume时,会从60s处继续
send 0 mov_resume //从暂停状态变成继续共享
send 0 mov_seek 120 //seek 到120秒
(2)屏幕共享命令(scr)
send 0 ss_start //开始屏幕共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ss
send 0 ss_stop
send 0 ss_start rtmp://127.0.0.1:1935/live/mytest //开始屏幕共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest
send 0 ss_stop
send 0 ss_start 100,100,400,200 //共享屏幕(100,100)位置,宽为400,高为200区域,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ss
send 0 ss_stop
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
send 0 ss_stop
如果使用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。
使用SmartSDK时,start_push,start_record里参数 video=scr 不起作用。
(3)文档共享(窗口共享)(doc)
;相应参数从ds_start.txt读取,ds_start是一个文本文件,第一行保存的是窗口标题,后面各行依次为x坐标,y坐标,宽度,高度
send 0 ds_start //开始文档共享(窗口共享),缺省本地推流地址为rtmp://127.0.0.1:1935/live/ds
send 0 ds_start rtmp://127.0.0.1:1935/live/mytest //开始文档共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest
send 0 ds_stop
(3) 音频共享(mic)
;如果先运行了send 0 get_mic,会使用get_mic返回的第一个mic名测试;否则使用 "麦克风 (Conexant SmartAudio HD)"
send 0 aud_start //开始音频,缺省本地推流地址为rtmp://127.0.0.1:1935/live/as
send 0 aud_start /开始音频,把共享流推向rtmp://127.0.0.1:1935/live/mytest
send 0 aud_stop
send 0 get_mic //获取mic列表
(4)摄像头共享
send 0 get_cam
;如果先运行了send 0 get_cam,会使用get_cam返回的第一个摄像头名字,否则使用"Integrated Camera"
send 0 cam_start //开始摄像头共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/cs
send 0 cam_stop
send 0 cam_start rtmp://127.0.0.1:1935/live/mytest //开始摄像头共享,把共享流推向rtmp://127.0.0.1:1935/live/mytest
send 0 cam_stop
(5)录制
录制时,要进行相应的共享,才可能有流。如果要录制camra和mic,需要先audio_start,cam_start,然后start_record
或者先start_record,也要audio_start之后才有对应的audio,cam_start之后才有对应video。如果已经开始了相应的共享,start_record后不指定音视频源,则自动选择已经共享的源,
选择顺序为视频:屏幕共享,窗口共享,摄像头共享,媒体共享; 音频:音频共享,媒体共享;如果不需要音频,可以指定audio=non;不需要视频 video=non
send 0 start_record 0 video=cam audio=mic //视频为摄像头,音频为MIC (start_record后面的0为录制序号,如果不写,缺省为0)
send 0 start_record 1 video=scr audio=mic //视频为屏幕共享,音频为MIC(start_record后面的0为录制序号,如果不写,缺省为0
send 0 start_record 2 audio=non video=scr //视频为屏幕共享,无音频 (start_record 后面的0为推流序号,如果不写,缺省为0)
send 0 stop_record 0
send 0 stop_record 1
send 0 stop_record 2
(6) 推流(向外部服务器推流)
向外部推流时,要进行相应的共享,才可能有流。如果要向外部推camra和mic,需要先audio_start,cam_start,然后start_push
或者先start_push,也要audio_start之后才有对应的audio,cam_start之后才有对应video。如果已经开始了相应的共享,start_push后不指定音视频源,则自动选择已经共享的源,
选择顺序为视频:屏幕共享,窗口共享,摄像头共享,媒体共享; 音频:音频共享,媒体共享;如果不需要音频,可以指定audio=non;不需要视频 video=non
send 0 start_push 0 audio=mic video=cam rtmp://myrtmpserver/live/mystream1 //视频为摄像头,音频为MIC (start_push 后面的0为推流序号,如果不写,缺省为0),
send 0 start_push 1 audio=mic video=scr rtmp://myrtmpserver/live/mystream2 //推第二路流,视频为屏幕共享,音频为MIC (start_push 后面的0为推流序号,如果不写,缺省为0)
send 0 start_push 2 audio=non video=scr rtmp://myrtmpserver/live/mystream3 //推第三路流,视频为屏幕共享,无音频 (start_push 后面的0为推流序号,如果不写,缺省为0)
send 0 stop_push 0 //停止第一路流
send 0 stop_push 1 //停止第二路流
send 0 stop_push 2 //停止第三路流
(7)设置编码参数
send 0 set_videoparam cam=640;480;15;45;1000;2000 //设置摄像头共享的编码参数:数字,分号分隔: width;height;fps;keyframe-interval;bit-rate;max-bitrate 如果某一项保留原设置,该项不填写数字
例如,只修改分辨率:send 0 set_videoparam 640;480;;;;
send 0 set_videoparam scr=640;480;15;45;1000;2000 //设置屏幕共享的编码参数
send 0 set_videoparam doc=640;480;15;45;1000;2000 //设置文档共享的编码参数
send 0 set_videoparam mov=640;480;15;45;1000;2000 //设置媒体共享的编码参数
(8)获取编码参数
send 0 get_videoparam cam //获取摄像头共享编码参数,其他类型形式相同(scr,mov,doc)返回的参数格式如设置参数: cam=640;480;15;45;1000;2000 //w;h;fps;keyframe-interval;bit-rate;max-bitrate
(9)设置MIC音量
send 0 set_mic_vol 100 ;0为静音,100为原始音量大小,(0,100)音量减小(100,200]音量提升
(10)获取MIC音量
send 0 get_mic_vol
(11)系统剪贴板,文件相关(保留之前插件功能)
send 0 clipboard_query image //查询剪贴板里是否有图片
send 0 clipboard_get image //获取剪贴板里的图片,返回文件格式缺省为jpg
send 0 clipboard_get image jpg //获取剪贴板里的图片,返回文件格式jpg
send 0 clipboard_get image png //获取剪贴板里的图片,返回文件格式png
send 0 file_get filename //获取插件目录下的文件内容
send 0 file_set filename //设置插件目录下的文件内容
(12)屏幕录制/QAV命令(保留之前插件功能)
send 0 get_mic
send 0 rec_start 麦克风 (Conexant High Definition S
send 0 rec_start 0 ;通过get_mic获取的mic列表的顺序号(0开始)
send 0 rec_stop
send 0 rec_version
send 0 qav_login
send 0 qav_logout
send 0 qav_enter_room
send 0 qav_leave_room
send 0 qav_open_mic
send 0 qav_close_mic
send 0 qav_open_player
send 0 qav_close_player
send 0 qav_mute_audio
send 0 qav_unmute_audio
2. 协议
详见libws\ws_data.h
typedef struct tagWSData_S
{
uint16_ws cmd;
uint8_ws byte_order; // 0: little endian, 1: bit endian
uint8_ws resv;
uint32_ws data_len;
uint8_ws *data;
}WSData_S;
(1)命令消息
看ws_data.h中WSCmd_E列举值
WS_CMD_MOV_START和WS_CMD_SS_START时data为rtmp的URI
WS_CMD_MOV_SEEK时data为seek的位置,4个字节int类型,单位秒
WS_CMD_REC_PUSH_AUDIO_DATA时data为音频PCM RAW数据
WS_CMD_REC_START时data为MIC名字,不传的话只录制speaker
WS_CMD_FILE_SET时data前256字节为文件名,后面data_len - 256 字节为文件内容
WS_CMD_FILE_GET时data为文件名
WS_CMD_KILL_PROCESS时,data前256字节为应用程序名(movserv.exe,ssserv.exe,recserv.exe)
(2)返回消息
看ws_data.h中WSResult_E列举值
a. WS_RES_MOV_PROPERTY时data为视频参数如下:
typedef struct tagMovProperty_S
{
int32_ws nWidth; //宽
int32_ws nHeight;//高
int32_ws nFrameRate;//帧率
int32_ws nDuration;// 时长
int32_ws nPos;//开始播放位置,秒
int64_ws nFileSize;//文件大小
int32_ws nFileNameLength;//sFileName字符串长度
int32_ws nResv;
int8_ws sFileName[MOV_FILENAME_MAX_LENGTH + 1]; // 播放视频文件名,MOV_FILENAME_MAX_LENGTH=255
} MovProperty_S;
b. 其他没有data值,看比如WS_RES_MOV_START_SUC是指播放成功
c. WS_RES_CBD_GET_SUC时,data为返回的文件信息
typedef struct tagCBD_FIlE_S
{
int32_ws type; //文件类型,
int32_ws nlen; //文件长度
int8_ws filecontent[0]; // 文件内容,长度为nlen
} CBDContent_S;
d. 对ds_start和ss_start,
返回的结构参见:WSDataWithRetCode_S,相对于,WSData_S,多了一个错误返回码。
错误返回值参见:tagSSRetCode_E。
enum tagSSRetCode_E
{
SS_RET_ERR_SUCCESS = 0,//没有错误
SS_RET_ERR_NULLPARAM, //传入的参数指针为空
SS_RET_ERR_NOPARAM, //没有指定输入参数
SS_RET_ERR_NO_MATCHED_WINDOW, //没有找到对应的窗口
SS_RET_ERR_CREATE_LIVEMGR, //创建LiveMgr失败
SS_RET_ERR_INIT_ENV, //初始环境错
SS_RET_ERR_INIT_CONTEXT, //初始换上下文失败
SS_RET_ERR_PARAM_REGION, // 参数区域错误
SS_RET_ERR_ADD_VIDEOSTREAM, //添加video stream失败
SS_RET_ERR_START_ENCODER, //启动encoder失败
SS_RET_ERR_START_OUTPUT, //开始输出失败
SS_RET_ERR_START_CAPTURE, //启动捕获失败
SS_RET_ERR_UNKNOWN //未知错误
};
对应于ret_code小于SS_RET_ERR_SUCCESS和大于SS_RET_ERR_UNKNOWN的都是未知错误
e.
WS_REC_FILE_GET_SUC时, data 前256字节为请求的文件名,后data_len - 256字节为文件内容
WS_RES_FILE_GET_FAIL, WS_RES_FILE_SET_SUC, WS_RES_FILE_SET_FAIL时,data为请求的文件名
3.命令类型定义:
ypedef enum tagWSCmd_E
{
WS_CMD_UNKNOWN = 0,
WS_CMD_MOV_START,
WS_CMD_MOV_STOP,
WS_CMD_MOV_PAUSE,
WS_CMD_MOV_RESUME,
WS_CMD_MOV_SEEK,
WS_CMD_SS_START,
WS_CMD_SS_STOP,
WS_CMD_REC_START,
WS_CMD_REC_STOP,
WS_CMD_REC_PAUSE,
WS_CMD_REC_RESUME,
WS_CMD_REC_PUSH_AUDIO_DATA,
WS_CMD_MOV_VERSION,
WS_CMD_SS_VERSION,
WS_CMD_REC_VERSION,
WS_CMD_QAV_LOGIN,
WS_CMD_QAV_LOGOUT,
WS_CMD_QAV_ENTER_ROOM,
WS_CMD_QAV_LEAVE_ROOM,
WS_CMD_QAV_OPEN_MIC,
WS_CMD_QAV_CLOSE_MIC,
WS_CMD_QAV_OPEN_PLAYER,
WS_CMD_QAV_CLOSE_PLAYER,
WS_CMD_QAV_MUTE_AUDIO,
WS_CMD_QAV_UNMUTE_AUDIO,
WS_CMD_GET_MIC,
WS_CMD_DS_START,
WS_CMD_DS_STOP,
WS_CMD_AUD_START,
WS_CMD_AUD_STOP,
WS_CMD_CONN_CLOSE,
WS_CMD_PEN_START,
WS_CMD_PEN_STOP,
WS_CMD_PEN_VERSION,
WS_CMD_QAV_DEVICE,
WS_CMD_CBD_QUERY,
WS_CMD_CBD_GET,
WS_CMD_FILE_GET,
WS_CMD_FILE_SET,
WS_CMD_RESTART,
WS_CMD_GET_CAM,
WS_CMD_CAM_START,
WS_CMD_CAM_STOP,
WS_CMD_SWITCH_SCENE,
WS_CMD_SHOW_UI,
WS_CMD_SET_VIDEO_PARAM,
WS_CMD_GET_VIDEO_PARAM,
WS_CMD_START_RECORD,
WS_CMD_STOP_RECORD,
WS_CMD_START_PUSH,
WS_CMD_STOP_PUSH,
WS_CMD_GET_RTMP_PORT,
WS_CMD_SET_MIC_VOL,
WS_CMD_GET_MIC_VOL,
}WSCmd_E;
typedef enum tagWSResult_E
{
WS_RES_MOV_START_SUC = 0,
WS_RES_MOV_START_FAIL,
WS_RES_MOV_STOP_SUC,
WS_RES_MOV_STOP_FAIL,
WS_RES_MOV_PAUSE_SUC,
WS_RES_MOV_PAUSE_FAIL,
WS_RES_MOV_RESUME_SUC,
WS_RES_MOV_RESUME_FAIL,
WS_RES_MOV_SEEK_SUC,
WS_RES_MOV_SEEK_FAIL,
WS_RES_MOV_PROPERTY,
WS_RES_SS_START_SUC,
WS_RES_SS_START_FAIL,
WS_RES_SS_STOP_SUC,
WS_RES_SS_STOP_FAIL,
WS_RES_REC_START_SUC,
WS_RES_REC_START_FAIL,
WS_RES_REC_STOP_SUC,
WS_RES_REC_STOP_FAIL,
WS_RES_REC_PAUSE_SUC,
WS_RES_REC_PAUSE_FAIL,
WS_RES_REC_RESUME_SUC,
WS_RES_REC_RESUME_FAIL,
WS_RES_MOV_PLAY_FINISH,
WS_RES_MOV_VERSION,
WS_RES_SS_VERSION,
WS_RES_REC_VERSION,
WS_RES_MOV_SELECT_FILE_CANCEL,
WS_RES_QAV_LOGIN_SUC,
WS_RES_QAV_LOGIN_FAIL,
WS_RES_QAV_LOGOUT_SUC,
WS_RES_QAV_LOGOUT_FAIL,
WS_RES_QAV_ENTERROOM_SUC,
WS_RES_QAV_ENTERROOM_FAIL,
WS_RES_QAV_LEAVEROOM_SUC,
WS_RES_QAV_LEAVEROOM_FAIL,
WS_RES_QAV_OPEN_MIC_SUC,
WS_RES_QAV_OPEN_MIC_FAIL,
WS_RES_QAV_OPEN_MIC_NODEV,
WS_RES_QAV_CLOSE_MIC_SUC,
WS_RES_QAV_CLOSE_MIC_FAIL,
WS_RES_QAV_CLOSE_MIC_NODEV,
WS_RES_QAV_OPEN_PLAYER_SUC,
WS_RES_QAV_OPEN_PLAYER_FAIL,
WS_RES_QAV_OPEN_PLAYER_NODEV,
WS_RES_QAV_CLOSE_PLAYER_SUC,
WS_RES_QAV_CLOSE_PLAYER_FAIL,
WS_RES_QAV_CLOSE_PLAYER_NODEV,
WS_RES_QAV_MUTE_AUDIO_SUC,
WS_RES_QAV_MUTE_AUDIO_FAIL,
WS_RES_QAV_UNMUTE_AUDIO_SUC,
WS_RES_QAV_UNMUTE_AUDIO_FAIL,
WS_RES_REC_SAVE_FILE_CANCEL,
WS_RES_GET_MIC_SUC,
WS_RES_GET_MIC_FAIL,
WS_RES_DS_START_SUC,
WS_RES_DS_START_FAIL,
WS_RES_DS_STOP_SUC,
WS_RES_DS_STOP_FAIL,
WS_RES_AUD_START_SUC,
WS_RES_AUD_START_FAIL,
WS_RES_AUD_STOP_SUC,
WS_RES_AUD_STOP_FAIL,
WS_RES_AUD_DATA,
WS_RES_SS_DATA,
WS_RES_MOV_DATA,
WS_RES_PEN_START_SUC,
WS_RES_PEN_START_FAIL,
WS_RES_PEN_STOP_SUC,
WS_RES_PEN_STOP_FAIL,
WS_RES_PEN_VERSION,
WS_RES_QAV_DEVICE_SUC,
WS_RES_QAV_DEVICE_FAIL,
WS_RES_CBD_QUERY_SUC,
WS_RES_CBD_QUERY_FAIL,
WS_RES_CBD_GET_SUC,
WS_RES_CBD_GET_FAIL,
WS_RES_FILE_GET_SUC,
WS_RES_FILE_GET_FAIL,
WS_RES_FILE_SET_SUC,
WS_RES_FILE_SET_FAIL,
WS_RES_RESTART_SUC,
WS_RES_RESTART_FAIL,
WS_RES_GET_CAM_SUC,
WS_RES_GET_CAM_FAIL,
WS_RES_CAM_START_SUC,
WS_RES_CAM_START_FAIL,
WS_RES_CAM_STOP_SUC,
WS_RES_CAM_STOP_FAIL,
WS_RES_SWITCH_SCENE_SUC,
WS_RES_SWITCH_SCENE_FAIL,
WS_RES_PUSH_STREAM_FAIL,
WS_RES_SHOW_UI_SUC,
WS_RES_SET_VIDEO_PARAM_SUC,
WS_RES_SET_VIDEO_PARAM_FAIL,
WS_RES_GET_VIDEO_PARAM_SUC,
WS_RES_GET_VIDEO_PARAM_FAIL,
WS_RES_START_RECORD_SUC,
WS_RES_START_RECORD_FAIL,
WS_RES_STOP_RECORD_SUC,
WS_RES_STOP_RECORD_FAIL,
WS_RES_START_PUSH_SUC,
WS_RES_START_PUSH_FAIL,
WS_RES_STOP_PUSH_SUC,
WS_RES_STOP_PUSH_FAIL,
WS_RES_GET_RTMP_PORT_SUC,
WS_RES_GET_RTMP_PORT_FAIL,
WS_RES_SET_MIC_VOL_SUC,
WS_RES_SET_MIC_VOL_FAIL,
WS_RES_GET_MIC_VOL_SUC,
WS_RES_GET_MIC_VOL_FAIL,
}WSResult_E;
config.ini说明
;livemgr服务配置项
[Service]
;服务名称
name=3mlive
;服务描述
desc=3mlive service
;服务管理的可执行文件名(与livemgr在同一目录,不带exe,由";"分隔)
modules=xuedianyun
[ConfigInfo]
;是否通过websocket发送编码后的flv数据到flash(为保持与之前的版本兼容)
data_to_websocket = 0
;LOG_LEVEL_ERROR:0 LOG_LEVEL_WARNING:1 LOG_LEVEL_INFO:2 LOG_LEVEL_DEBUG:3
log_level = 2
;是否使用SmartSDK,确省不使用。
;如果使用,目前只对 屏幕共享(ss_start有效),并且在使用SmartSDK时,其他命令,如start_record,start_push的 scr 源就不起作用
use_smart_streaming_sdk = 0
[MovShare] ;媒体共享
maxrate = 1000 ;;最大码率kps
framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率
tune =zerolatency
x264opts =
preset = fast
profile = baseline
level = 3.1
width = 720; ;如果为0,用原始视频的宽度
height = 576; ;如果为0,用原始视频高度
;编码声道数
channels = 2
;采用率
sample_rate = 22050
;采用大小
sample_size = 16
;采用音频缓冲区大小(ms)
audio_buffer_size = 60
;音频编码码率(bps)
audio_bitrate = 64000
[ScrShare] ;全屏共享
maxrate = 1000 ;最大码率kps
framerate = 10
tune =zerolatency
x264opts =
preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
[RegShare] ;区域共享
maxrate = 1000 ;;最大码率kps
framerate = 10 ;帧率fps
tune =zerolatency
x264opts =
preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
[CamShare] ;摄像头共享
maxrate = 1000 ;;最大码率kps
framerate = 10 ;帧率fps
tune =zerolatency
x264opts =
preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
[RecServ]
;修改用ffmpeg写flv的本地录像的编码参数
param= -framerate 10 -i desktop -acodec libvo_aacenc -ar 22050 -vcodec libx264 -pix_fmt yuv420p -level 3.1 -preset fast
;1,使用 ffmpeg写flv;0,上层应用写flv;下面的与视频编码相关配置,对上层应用写flv模式起作用;
;目前自己写flv,只录制了 MIC和视频(ffmpeg录制了MIC和playback的混音加视频)
UseFF = 1
maxrate = 2000 ;;最大码率kps
framerate = 10 ;帧率fps
tune =zerolatency
x264opts =
preset = fast
profile = main
level = 5.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
;编码声道数
channels = 2
;采用率
sample_rate = 22050
;采用大小
sample_size = 16
;采用音频缓冲区大小(ms)
audio_buffer_size = 60
;音频编码码率(bps)
audio_bitrate = 64000
;音频共享参数
[MicShare]
;音量,100为原始大小,0为静音
volume=100
;编码声道数
channels = 2
;采用率
sample_rate = 22050
;采用大小
sample_size = 16
;采用音频缓冲区大小(ms)
audio_buffer_size = 60
;音频编码码率(bps)
audio_bitrate = 64000
...
...
请
注册
或
登录
后发表评论