胡斌

版本 1.0.3

1.支持SmartPublisherSDK在共享屏幕时,采集音频
2.支持wss连接,通过LiveServ.WSS_PORT配置
3.取消共享时推送缺省流到本地rtmp服务器(可配置)
4.添加get_config,set_config,用于获取和修改配置项
 source git: http://123.56.226.173/hubin/liveAssistant.git
 branch: liveserv
 commit a5d1f56abe71fd66c86bc43f7b439d8c9ec30fcd
liveserv可以支持同时编码screen,window,camera,mic,movie ,集成本地rtmp服务器,共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。
liveserv可以支持同时编码screen,window,camera,mic,movie ,集成本地rtmp服务器,支持共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。
1. 客户端模拟
wsclient.exe,使用命令如下
connect <ws uri>
... ... @@ -9,10 +9,11 @@ help: Display this help text
quit: Exit the program
connect ws://127.0.0.1:6080 这个端口可以在config.ini里[LiveServ] PORT=6080 配置
wssclient.exe 如果测试 secure websocket,使用wssclient.exe,命令与wsclient相同
connect wss://localhost.xuedianyun.com:6081 这个端口可以在config.ini里[LiveServ] PORT=6081 配置,如果为0,则不启动secure websocket服务
(1)获取liveserv的本地rtmp服务器端口
send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini中配置 [RTMP] Port=1935
send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini(应用程序名+ini)中配置 RTMP.Port=1935
(2) 媒体共享命令
send 0 mov_start //开始媒体共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ms
... ... @@ -37,8 +38,8 @@ 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 不起作用。
如果使用SmartStreamingSDK(配置方式为见后面config.ini说明里[ConfigInfo] use_smart_streaming_sdk=1),当推流地址不为rtmp://127.0.0.1:1935/live/ss时,自动添加一路推流到rtmp://127.0.0.1:1935/live/ss。
使用SmartStreamingSDK时,start_push,start_record里参数 video=scr 不起作用。使用SmartStreamingSDK做屏幕共享时,如果要推音频,需要先aud_start,再ss_start。如果要静音,设置send 0 set_mic_vol 0,取消静音,则send 0 set_mic_vol 100。
(3)文档共享(窗口共享)(doc)
... ... @@ -138,6 +139,16 @@ send 0 ss_version
send 0 mov_version
send 0 rec_version
(14)获取配置信息get_config(根据config.ini中配置项名称,直接访问)
send 0 get_config ConfigInfo.use_smart_streaming_sdk //是否使用SmartSDK
send 0 get_config ScrShare.width //获取屏幕共享宽度信息
(15)设置配置信息set_config(根据config.ini中配置项名称,直接访问)
send 0 set_config ConfigInfo.use_smart_streaming_sdk=1 //设置使用SmartSDK
send 0 get_config ScrShare.width=1920 //设置屏幕共享宽度为1920
2. 协议
详见libws\ws_data.h
typedef struct tagWSData_S
... ... @@ -275,6 +286,8 @@ typedef enum tagWSCmd_E
WS_CMD_GET_RTMP_PORT,
WS_CMD_SET_MIC_VOL,
WS_CMD_GET_MIC_VOL,
WS_CMD_SET_CONFIG,
WS_CMD_GET_CONFIG,
}WSCmd_E;//客户端发送给liveserv的命令
typedef enum tagWSResult_E
... ... @@ -394,6 +407,10 @@ typedef enum tagWSResult_E
WS_RES_RTMP_CONNECT_SUC,
WS_RES_RTMP_CONNECT_FAIL,
WS_RES_RTMP_CONNECT_CLOSED,
WS_RES_SET_CONFIG_SUC,
WS_RES_SET_CONFIG_FAIL,
WS_RES_GET_CONFIG_SUC,
WS_RES_GET_CONFIG_FAIL,
}WSResult_E;//liveserv返回客户端的结果,状态
config.ini说明
... ... @@ -414,12 +431,14 @@ 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
;如果使用,目前只对 屏幕共享(ss_start有效),并且在使用SmartSDK时,其他命令,如start_record,start_push的 scr 源就不起作用
use_smart_streaming_sdk = 0
;是否推送缺省的本地流,缺省值为不推送
push_default_local_stream = 0
[MovShare] ;媒体共享
maxrate = 1000 ;;最大码率kps
framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率
maxrate = 1000 ;最大码率kps
framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率
tune =zerolatency
x264opts =
preset = fast
... ... @@ -447,8 +466,8 @@ preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
height = 576 ;如果为0,用原始视频的高度
keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
[RegShare] ;区域共享
maxrate = 1000 ;;最大码率kps
... ... @@ -459,8 +478,8 @@ preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
height = 576 ;如果为0,用原始视频的高度
keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
[CamShare] ;摄像头共享
maxrate = 1000 ;;最大码率kps
... ... @@ -471,8 +490,8 @@ preset = fast
profile = baseline
level = 3.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
height = 576 ;如果为0,用原始视频的高度
keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
[RecServ]
;修改用ffmpeg写flv的本地录像的编码参数
... ... @@ -488,8 +507,8 @@ preset = fast
profile = main
level = 5.1
width = 720 ;如果为0,用原始视频的宽度
height = 576 ;如果为0,用原始视频的宽度
keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边
height = 576 ;如果为0,用原始视频的高度
keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
;编码声道数
channels = 2
;采用率
... ... @@ -517,11 +536,13 @@ audio_buffer_size = 60
audio_bitrate = 64000
[LiveServ]
;websocket监听端口
;websocket监听端口,0为不监听
PORT=6080
;scure websocket监听端口,0为不监听
WSS_PORT=6081
[Security]
;flash 安全服务器端口
;flash 安全服务器端口,0为不监听
PORT=843
... ...
... ... @@ -6,7 +6,7 @@
版本 1.0.1
1.修改媒体共享完成和seek时可能出现异常崩溃的问题(整合movserv过程带来的bug)
2.修改获取大于2GB的媒体文件文件大小出错问题
2.修改获取大于2GB的媒体文件大小出错问题
3.完善媒体共享,支持共享纯音频和纯视频文件
4.修改RTMP端口固定为1935,ini文件配置的RTMP端口不起作用的问题
5.对start_push命令启动的rtmp推流,添加rtmp连接状态通知
... ... @@ -15,3 +15,14 @@
版本 1.0.2
1.集成flash跨域安全策略服务器功能,
通过config.ini里Security.PORT配置是否启动flash跨域安全策略服务器的监听端口,缺省值为843,如果配置为0,则不启动flash跨域安全策略服务
版本 1.0.3
1.支持SmartPublisherSDK在共享屏幕时,采集音频
2.支持wss连接,通过LiveServ.WSS_PORT配置
3.取消共享时推送缺省流到本地rtmp服务器(可配置)
4.添加get_config,set_config,用于获取和修改配置项
... ...
不能预览此文件类型
... ... @@ -4,7 +4,7 @@ desc=3mlive service
modules=xuedianyun
[ConfigInfo]
version=24
version=25
log_level=2
data_to_websocket = 0
use_smart_streaming_sdk = 0
... ... @@ -15,17 +15,17 @@ AppIdAt3rd=1400005917
SdkAppId=1400005917
[MovShare]
bitrate =600
bitrate = 600
maxrate =1000
framerate =10
keyint =10
framerate = 5
keyint = 15
tune =zerolatency
x264opts =
preset =medium
profile =baseline
level = 4
width=640
height=360
width=1024
height=640
channels = 2
sample_rate = 22050
sample_size = 16
... ... @@ -33,17 +33,17 @@ audio_buffer_size = 60
audio_bitrate = 64000
[ScrShare]
bitrate =560
maxrate =1100
bitrate =800
maxrate =1000
framerate =5
keyint =15
tune =zerolatency
x264opts =
preset =medium
preset =fast
profile =baseline
level = 4
width =
height=
width =1024
height=640
[RegShare]
bitrate = 600
... ... @@ -90,8 +90,8 @@ audio_buffer_size = 60
audio_bitrate = 64000
[LiveServ]
;PORT=8090
PORT=605
WSS_PORT=606
[Security]
PORT=843
... ...
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAiT3oX0D/4ItMgLok+drVqOA1a0i9C46qH2jz6qhkNpVETLED
cABjQ0if6H3MSMEpx445qgTy6V43eeSXpNRtUwB1u5O//E4H4FmfwMtRrS2yypGH
nGG+C/5eOzC0rxjxyh/1fVXUh6p9IQIVNU0iC36i5yYywrH2/78Xz8SgwU8WOkuH
R6yUvPb/2Tvtm8f1ssCO14hw/WMmlolOldvhlC+NWKFNOELfBS/DQsrtTXYyqMGs
ulE/LkrZODR6hdcWyStI7YbFrQ6IpweJAXg3VygDzMDzFdbMRs3XDzLdCq9P/Sv9
/R/c6SYrDCavvz82mnEwYJC4AoATHm/x+00hSwIDAQABAoIBAEvZRx+90KzMz88l
EWJ1KzhWEa/lV3WXtzX8zzGVNy1jeYfZHMk9rZ51+MqJG+npt6luVTg92/JV+9sG
FzklnfYNfwPYOHa8uWWoor3uoIlRhEqn+4bWDi6auoGD/Zf39Ul8ODS4xujjtJwV
hpsasgIgTu/pEIzBxny5o/NT/HRY6fLbfIcCV7D4KMPNoNLmam5dU9QM/CxN7w5C
BNrCyTrj6JNG8uWygJS63fG2pOEc33z/u2QFtrIqmgJ5Ie23/tK/uhJXPL0w5Rhj
ywK10S+izsBqCHMDlN/+PNI39QtqhNlpYWpft3zQvlZzRr8tEXgobpddQBspx+p4
v+hQg4ECgYEA5HHYASWcSywPUV2xZm06ckRpFVcR0IBTLyJ+uBoqN16o7YqBOGpi
NzS9BlOpGv+C5J6+wRXHlZL4/0dxXgkqgCrZXfEkr6WKQJIpTQEv2pI1fFU1X1B0
2jCBlXs/loPFU3qQDfZXPZrMhaYq/diI9edG0mIycrbTwmZnbH6tIFsCgYEAmcvO
MhBRJtpw0LEK4IQ/5fPJI7c/hhoYvEBEsUA9wEcEm0mXUNlC2u9TI8ELjamfgNu8
dvee0Zyq5+YqlS/YsDaSvTMNItyWuhBWnpEVllH3bnr15qC+BvudncTFHPGdSI+9
XO5DnoK8Z6/fuczJwXC97QV+a1iqLFTZ/2o+1dECgYEAvdcViC53KckdmaJg0Bup
XFgZc5B9z2U0u5DQ+bFUr9rMS0q0g+t0XyhGhUF04GjBn7eEEfVFfLk8jvgR7/Fy
DjyNkpHYyNaqg2pzQ/jeiabDJ+WvitvTn5Z7uXtIpo4up2bM262BZkKD//TM+VK+
zos5wY+1GLtyUrTC8dh7is0CgYAilfSOyaCWTjVkmQvLJbKA8evfvkvoymGZpBJO
khXQ8aeVjF0c717bgUp/FeCVQPn/rmqZjmIG3WaJs/cLibD/H6asKZjgqB61RQtV
qWbjYRd1nu1BqhBR3a+6VQ/GzIcEVF7PUT2fneLkpmZ3kBgnCkWL0dp2JYBPa92C
VNBAoQKBgDdCU5JQCbreADJC41IPS0wnNcTeWxUn3S+6SJzHPPz4ipJSuH9lxUwO
vFH7vm5nKLXTpYeJyA8hrqY7JImrRhuuAzGDrbJ+H+2mtEiAI4fMPPeCIClCEpOb
yx977qSp6gF4V31PJZsS6wzFRQ1PoZ4yzql/5ZV47HHC2NGaXfQH
-----END RSA PRIVATE KEY-----
... ...
-----BEGIN CERTIFICATE-----
MIIG/jCCBeagAwIBAgIMFZWjIIj6tjFXK4FdMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
bG9iYWxTaWduIERvbWFpbiBWYWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwHhcN
MTcwODExMDk1MzI4WhcNMTgwODEyMDk1MzI4WjA+MSEwHwYDVQQLExhEb21haW4g
Q29udHJvbCBWYWxpZGF0ZWQxGTAXBgNVBAMMECoueHVlZGlhbnl1bi5jb20wggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJPehfQP/gi0yAuiT52tWo4DVr
SL0LjqofaPPqqGQ2lURMsQNwAGNDSJ/ofcxIwSnHjjmqBPLpXjd55Jek1G1TAHW7
k7/8TgfgWZ/Ay1GtLbLKkYecYb4L/l47MLSvGPHKH/V9VdSHqn0hAhU1TSILfqLn
JjLCsfb/vxfPxKDBTxY6S4dHrJS89v/ZO+2bx/WywI7XiHD9YyaWiU6V2+GUL41Y
oU04Qt8FL8NCyu1NdjKoway6UT8uStk4NHqF1xbJK0jthsWtDoinB4kBeDdXKAPM
wPMV1sxGzdcPMt0Kr0/9K/39H9zpJisMJq+/PzaacTBgkLgCgBMeb/H7TSFLAgMB
AAGjggPYMIID1DAOBgNVHQ8BAf8EBAMCBaAwgZQGCCsGAQUFBwEBBIGHMIGEMEcG
CCsGAQUFBzAChjtodHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2NhY2VydC9n
c2RvbWFpbnZhbHNoYTJnMnIxLmNydDA5BggrBgEFBQcwAYYtaHR0cDovL29jc3Ay
Lmdsb2JhbHNpZ24uY29tL2dzZG9tYWludmFsc2hhMmcyMFYGA1UdIARPME0wQQYJ
KwYBBAGgMgEKMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24u
Y29tL3JlcG9zaXRvcnkvMAgGBmeBDAECATAJBgNVHRMEAjAAMEMGA1UdHwQ8MDow
OKA2oDSGMmh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3MvZ3Nkb21haW52YWxz
aGEyZzIuY3JsMCsGA1UdEQQkMCKCECoueHVlZGlhbnl1bi5jb22CDnh1ZWRpYW55
dW4uY29tMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU
QRSahXhPoEq2HdQTzjP+hhRAte4wHwYDVR0jBBgwFoAU6k581IAt5RWBhiaMgm3A
mKTPlw8wggH1BgorBgEEAdZ5AgQCBIIB5QSCAeEB3wB1AFYUBpov18Ls0/XhvUSy
PsdGdrm8mRFcwO+UmFXWidDdAAABXdC2iCUAAAQDAEYwRAIgZkYZWywmxi6XOrD4
GR+lgBjI1stPXbyHveQtoJIpzFcCIG5+7XLgzgsyyiUdQ8chvZiR7wS/Y7TC0ZLS
UKGHQSxTAHUApLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFd0LaL
EQAABAMARjBEAiBPi4Cxa3cIUn7SYlpEIW2dhvD3WeDNfvslz8dn/cQG3QIgftDh
mtLpwznQD6UuZAnt2MAqjMXP/W8XpiQ+j6or41YAdgC72d+8H4pxtZOUI5eqkntH
OFeVCqtS6BqQlmQ2jh7RhQAAAV3Qto11AAAEAwBHMEUCIQDzX7y1QDf9ZmMt8Mgu
p+r1e8UCm5+hhT37fpUtlv0//gIgBcPa3CohP60dDRi3krRsniDTVG5UVn4tiaou
Khsy+TwAdwDuS723dc5guuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAV3QtpDZ
AAAEAwBIMEYCIQCtgSB/8JBYBEBqlLy4Z66M+G/3Xh77HpF8vn3GUDf/vwIhAKoE
VpInQbODhvkCRH7anUGIFrQitAhbwWm4gVLFBRFlMA0GCSqGSIb3DQEBCwUAA4IB
AQCpgBKZOIuqhDlQns37h96I/KVqeHkzNLk5TIOV3TGXwHTOagyqM/XyW46eitu1
vJ7hp43LZN/lE13G3dgQ0CGkP8QABIwvzlLXgO0iD4FMckp4nSrUvvbW7luZfBaT
jurpKUYw6D9vJETBdfnkw5Sh7nfjuk7HDdOSl/NeSwiw2ejtoiWXfH2dDYyouIN3
cKgtylTY44Sgf7U1O7ES0nxa2HD7cGt+S6ctryIzVA3EkPCsRJOouzIkqUmFX8sG
cgs6v0Df//D8Jtbb3PzsWgfo0wbMHX4erHn4ym0b1/OjIySzgfiA06ZLgLYWgqPL
F/aiB8M6m0zbbz+c1mjs9LO5
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
\ No newline at end of file
... ...
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型