继续操作前请注册或者登录。
胡斌

版本 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
1 -liveserv可以支持同时编码screen,window,camera,mic,movie ,集成本地rtmp服务器,共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。 1 +liveserv可以支持同时编码screen,window,camera,mic,movie ,集成本地rtmp服务器,支持共享时缺省推流到本地rtmp服务器,同时支持单独命令进行多路rmtp流推送和多路录制。
2 1. 客户端模拟 2 1. 客户端模拟
3 wsclient.exe,使用命令如下 3 wsclient.exe,使用命令如下
4 connect <ws uri> 4 connect <ws uri>
@@ -9,10 +9,11 @@ help: Display this help text @@ -9,10 +9,11 @@ help: Display this help text
9 quit: Exit the program 9 quit: Exit the program
10 10
11 connect ws://127.0.0.1:6080 这个端口可以在config.ini里[LiveServ] PORT=6080 配置 11 connect ws://127.0.0.1:6080 这个端口可以在config.ini里[LiveServ] PORT=6080 配置
12 - 12 +wssclient.exe 如果测试 secure websocket,使用wssclient.exe,命令与wsclient相同
  13 +connect wss://localhost.xuedianyun.com:6081 这个端口可以在config.ini里[LiveServ] PORT=6081 配置,如果为0,则不启动secure websocket服务
13 14
14 (1)获取liveserv的本地rtmp服务器端口 15 (1)获取liveserv的本地rtmp服务器端口
15 -send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini中配置 [RTMP] Port=1935 16 +send 0 get_rtmp_port ;缺省返回值为1935,可以在liveserv.ini(应用程序名+ini)中配置 RTMP.Port=1935
16 17
17 (2) 媒体共享命令 18 (2) 媒体共享命令
18 send 0 mov_start //开始媒体共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ms 19 send 0 mov_start //开始媒体共享,缺省本地推流地址为rtmp://127.0.0.1:1935/live/ms
@@ -37,8 +38,8 @@ send 0 ss_stop @@ -37,8 +38,8 @@ send 0 ss_stop
37 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 38 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
38 send 0 ss_stop 39 send 0 ss_stop
39 40
40 -如果使用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。  
41 -使用SmartSDK时,start_push,start_record里参数 video=scr 不起作用。 41 +如果使用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。
  42 +使用SmartStreamingSDK时,start_push,start_record里参数 video=scr 不起作用。使用SmartStreamingSDK做屏幕共享时,如果要推音频,需要先aud_start,再ss_start。如果要静音,设置send 0 set_mic_vol 0,取消静音,则send 0 set_mic_vol 100。
42 43
43 44
44 (3)文档共享(窗口共享)(doc) 45 (3)文档共享(窗口共享)(doc)
@@ -138,6 +139,16 @@ send 0 ss_version @@ -138,6 +139,16 @@ send 0 ss_version
138 send 0 mov_version 139 send 0 mov_version
139 send 0 rec_version 140 send 0 rec_version
140 141
  142 +(14)获取配置信息get_config(根据config.ini中配置项名称,直接访问)
  143 +send 0 get_config ConfigInfo.use_smart_streaming_sdk //是否使用SmartSDK
  144 +send 0 get_config ScrShare.width //获取屏幕共享宽度信息
  145 +
  146 +
  147 +(15)设置配置信息set_config(根据config.ini中配置项名称,直接访问)
  148 +send 0 set_config ConfigInfo.use_smart_streaming_sdk=1 //设置使用SmartSDK
  149 +send 0 get_config ScrShare.width=1920 //设置屏幕共享宽度为1920
  150 +
  151 +
141 2. 协议 152 2. 协议
142 详见libws\ws_data.h 153 详见libws\ws_data.h
143 typedef struct tagWSData_S 154 typedef struct tagWSData_S
@@ -275,6 +286,8 @@ typedef enum tagWSCmd_E @@ -275,6 +286,8 @@ typedef enum tagWSCmd_E
275 WS_CMD_GET_RTMP_PORT, 286 WS_CMD_GET_RTMP_PORT,
276 WS_CMD_SET_MIC_VOL, 287 WS_CMD_SET_MIC_VOL,
277 WS_CMD_GET_MIC_VOL, 288 WS_CMD_GET_MIC_VOL,
  289 + WS_CMD_SET_CONFIG,
  290 + WS_CMD_GET_CONFIG,
278 }WSCmd_E;//客户端发送给liveserv的命令 291 }WSCmd_E;//客户端发送给liveserv的命令
279 292
280 typedef enum tagWSResult_E 293 typedef enum tagWSResult_E
@@ -394,6 +407,10 @@ typedef enum tagWSResult_E @@ -394,6 +407,10 @@ typedef enum tagWSResult_E
394 WS_RES_RTMP_CONNECT_SUC, 407 WS_RES_RTMP_CONNECT_SUC,
395 WS_RES_RTMP_CONNECT_FAIL, 408 WS_RES_RTMP_CONNECT_FAIL,
396 WS_RES_RTMP_CONNECT_CLOSED, 409 WS_RES_RTMP_CONNECT_CLOSED,
  410 + WS_RES_SET_CONFIG_SUC,
  411 + WS_RES_SET_CONFIG_FAIL,
  412 + WS_RES_GET_CONFIG_SUC,
  413 + WS_RES_GET_CONFIG_FAIL,
397 }WSResult_E;//liveserv返回客户端的结果,状态 414 }WSResult_E;//liveserv返回客户端的结果,状态
398 415
399 config.ini说明 416 config.ini说明
@@ -414,12 +431,14 @@ data_to_websocket = 0 @@ -414,12 +431,14 @@ data_to_websocket = 0
414 ;LOG_LEVEL_ERROR:0 LOG_LEVEL_WARNING:1 LOG_LEVEL_INFO:2 LOG_LEVEL_DEBUG:3 431 ;LOG_LEVEL_ERROR:0 LOG_LEVEL_WARNING:1 LOG_LEVEL_INFO:2 LOG_LEVEL_DEBUG:3
415 log_level = 2 432 log_level = 2
416 ;是否使用SmartSDK,确省不使用。 433 ;是否使用SmartSDK,确省不使用。
417 -;如果使用,目前只对 屏幕共享(ss_start有效),并且在使用SmartSDK时,其他命令,如start_record,start_push的 scr 源就不起作用  
418 -use_smart_streaming_sdk = 0 434 +;如果使用,目前只对 屏幕共享(ss_start有效),并且在使用SmartSDK时,其他命令,如start_record,start_push的 scr 源就不起作用
  435 +use_smart_streaming_sdk = 0
  436 +;是否推送缺省的本地流,缺省值为不推送
  437 +push_default_local_stream = 0
419 438
420 [MovShare] ;媒体共享 439 [MovShare] ;媒体共享
421 -maxrate = 1000 ;;最大码率kps  
422 -framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率 440 +maxrate = 1000 ;最大码率kps
  441 +framerate = 10 ;帧率fps,如果framerate=0,用原始视频的平均帧率
423 tune =zerolatency 442 tune =zerolatency
424 x264opts = 443 x264opts =
425 preset = fast 444 preset = fast
@@ -447,8 +466,8 @@ preset = fast @@ -447,8 +466,8 @@ preset = fast
447 profile = baseline 466 profile = baseline
448 level = 3.1 467 level = 3.1
449 width = 720 ;如果为0,用原始视频的宽度 468 width = 720 ;如果为0,用原始视频的宽度
450 -height = 576 ;如果为0,用原始视频的宽度  
451 -keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 469 +height = 576 ;如果为0,用原始视频的高度
  470 +keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
452 471
453 [RegShare] ;区域共享 472 [RegShare] ;区域共享
454 maxrate = 1000 ;;最大码率kps 473 maxrate = 1000 ;;最大码率kps
@@ -459,8 +478,8 @@ preset = fast @@ -459,8 +478,8 @@ preset = fast
459 profile = baseline 478 profile = baseline
460 level = 3.1 479 level = 3.1
461 width = 720 ;如果为0,用原始视频的宽度 480 width = 720 ;如果为0,用原始视频的宽度
462 -height = 576 ;如果为0,用原始视频的宽度  
463 -keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 481 +height = 576 ;如果为0,用原始视频的高度
  482 +keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
464 483
465 [CamShare] ;摄像头共享 484 [CamShare] ;摄像头共享
466 maxrate = 1000 ;;最大码率kps 485 maxrate = 1000 ;;最大码率kps
@@ -471,8 +490,8 @@ preset = fast @@ -471,8 +490,8 @@ preset = fast
471 profile = baseline 490 profile = baseline
472 level = 3.1 491 level = 3.1
473 width = 720 ;如果为0,用原始视频的宽度 492 width = 720 ;如果为0,用原始视频的宽度
474 -height = 576 ;如果为0,用原始视频的宽度  
475 -keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 493 +height = 576 ;如果为0,用原始视频的高度
  494 +keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
476 495
477 [RecServ] 496 [RecServ]
478 ;修改用ffmpeg写flv的本地录像的编码参数 497 ;修改用ffmpeg写flv的本地录像的编码参数
@@ -488,8 +507,8 @@ preset = fast @@ -488,8 +507,8 @@ preset = fast
488 profile = main 507 profile = main
489 level = 5.1 508 level = 5.1
490 width = 720 ;如果为0,用原始视频的宽度 509 width = 720 ;如果为0,用原始视频的宽度
491 -height = 576 ;如果为0,用原始视频的宽度  
492 -keep_aspect_ratio = 1; 是否保存宽高比,如果保存宽高比,可能在输出视频上下或左右加黑边 510 +height = 576 ;如果为0,用原始视频的高度
  511 +keep_aspect_ratio = 1; 是否保存宽高比,如果保持宽高比,可能在输出视频上下或左右加黑边
493 ;编码声道数 512 ;编码声道数
494 channels = 2 513 channels = 2
495 ;采用率 514 ;采用率
@@ -517,11 +536,13 @@ audio_buffer_size = 60 @@ -517,11 +536,13 @@ audio_buffer_size = 60
517 audio_bitrate = 64000 536 audio_bitrate = 64000
518 537
519 [LiveServ] 538 [LiveServ]
520 -;websocket监听端口 539 +;websocket监听端口,0为不监听
521 PORT=6080 540 PORT=6080
  541 +;scure websocket监听端口,0为不监听
  542 +WSS_PORT=6081
522 543
523 [Security] 544 [Security]
524 -;flash 安全服务器端口 545 +;flash 安全服务器端口,0为不监听
525 PORT=843 546 PORT=843
526 547
527 548
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 6
7 版本 1.0.1 7 版本 1.0.1
8 1.修改媒体共享完成和seek时可能出现异常崩溃的问题(整合movserv过程带来的bug) 8 1.修改媒体共享完成和seek时可能出现异常崩溃的问题(整合movserv过程带来的bug)
9 -2.修改获取大于2GB的媒体文件文件大小出错问题 9 +2.修改获取大于2GB的媒体文件大小出错问题
10 3.完善媒体共享,支持共享纯音频和纯视频文件 10 3.完善媒体共享,支持共享纯音频和纯视频文件
11 4.修改RTMP端口固定为1935,ini文件配置的RTMP端口不起作用的问题 11 4.修改RTMP端口固定为1935,ini文件配置的RTMP端口不起作用的问题
12 5.对start_push命令启动的rtmp推流,添加rtmp连接状态通知 12 5.对start_push命令启动的rtmp推流,添加rtmp连接状态通知
@@ -15,3 +15,14 @@ @@ -15,3 +15,14 @@
15 版本 1.0.2 15 版本 1.0.2
16 1.集成flash跨域安全策略服务器功能, 16 1.集成flash跨域安全策略服务器功能,
17 通过config.ini里Security.PORT配置是否启动flash跨域安全策略服务器的监听端口,缺省值为843,如果配置为0,则不启动flash跨域安全策略服务 17 通过config.ini里Security.PORT配置是否启动flash跨域安全策略服务器的监听端口,缺省值为843,如果配置为0,则不启动flash跨域安全策略服务
  18 +
  19 +
  20 +版本 1.0.3
  21 +
  22 +1.支持SmartPublisherSDK在共享屏幕时,采集音频
  23 +
  24 +2.支持wss连接,通过LiveServ.WSS_PORT配置
  25 +
  26 +3.取消共享时推送缺省流到本地rtmp服务器(可配置)
  27 +
  28 +4.添加get_config,set_config,用于获取和修改配置项
不能预览此文件类型
@@ -4,7 +4,7 @@ desc=3mlive service @@ -4,7 +4,7 @@ desc=3mlive service
4 modules=xuedianyun 4 modules=xuedianyun
5 5
6 [ConfigInfo] 6 [ConfigInfo]
7 -version=24 7 +version=25
8 log_level=2 8 log_level=2
9 data_to_websocket = 0 9 data_to_websocket = 0
10 use_smart_streaming_sdk = 0 10 use_smart_streaming_sdk = 0
@@ -15,17 +15,17 @@ AppIdAt3rd=1400005917 @@ -15,17 +15,17 @@ AppIdAt3rd=1400005917
15 SdkAppId=1400005917 15 SdkAppId=1400005917
16 16
17 [MovShare] 17 [MovShare]
18 -bitrate =600 18 +bitrate = 600
19 maxrate =1000 19 maxrate =1000
20 -framerate =10  
21 -keyint =10 20 +framerate = 5
  21 +keyint = 15
22 tune =zerolatency 22 tune =zerolatency
23 x264opts = 23 x264opts =
24 preset =medium 24 preset =medium
25 profile =baseline 25 profile =baseline
26 level = 4 26 level = 4
27 -width=640  
28 -height=360 27 +width=1024
  28 +height=640
29 channels = 2 29 channels = 2
30 sample_rate = 22050 30 sample_rate = 22050
31 sample_size = 16 31 sample_size = 16
@@ -33,17 +33,17 @@ audio_buffer_size = 60 @@ -33,17 +33,17 @@ audio_buffer_size = 60
33 audio_bitrate = 64000 33 audio_bitrate = 64000
34 34
35 [ScrShare] 35 [ScrShare]
36 -bitrate =560  
37 -maxrate =1100 36 +bitrate =800
  37 +maxrate =1000
38 framerate =5 38 framerate =5
39 keyint =15 39 keyint =15
40 tune =zerolatency 40 tune =zerolatency
41 x264opts = 41 x264opts =
42 -preset =medium 42 +preset =fast
43 profile =baseline 43 profile =baseline
44 level = 4 44 level = 4
45 -width =  
46 -height= 45 +width =1024
  46 +height=640
47 47
48 [RegShare] 48 [RegShare]
49 bitrate = 600 49 bitrate = 600
@@ -90,8 +90,8 @@ audio_buffer_size = 60 @@ -90,8 +90,8 @@ audio_buffer_size = 60
90 audio_bitrate = 64000 90 audio_bitrate = 64000
91 91
92 [LiveServ] 92 [LiveServ]
93 -;PORT=8090  
94 - 93 +PORT=605
  94 +WSS_PORT=606
95 [Security] 95 [Security]
96 PORT=843 96 PORT=843
97 97
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
  1 +-----BEGIN RSA PRIVATE KEY-----
  2 +MIIEowIBAAKCAQEAiT3oX0D/4ItMgLok+drVqOA1a0i9C46qH2jz6qhkNpVETLED
  3 +cABjQ0if6H3MSMEpx445qgTy6V43eeSXpNRtUwB1u5O//E4H4FmfwMtRrS2yypGH
  4 +nGG+C/5eOzC0rxjxyh/1fVXUh6p9IQIVNU0iC36i5yYywrH2/78Xz8SgwU8WOkuH
  5 +R6yUvPb/2Tvtm8f1ssCO14hw/WMmlolOldvhlC+NWKFNOELfBS/DQsrtTXYyqMGs
  6 +ulE/LkrZODR6hdcWyStI7YbFrQ6IpweJAXg3VygDzMDzFdbMRs3XDzLdCq9P/Sv9
  7 +/R/c6SYrDCavvz82mnEwYJC4AoATHm/x+00hSwIDAQABAoIBAEvZRx+90KzMz88l
  8 +EWJ1KzhWEa/lV3WXtzX8zzGVNy1jeYfZHMk9rZ51+MqJG+npt6luVTg92/JV+9sG
  9 +FzklnfYNfwPYOHa8uWWoor3uoIlRhEqn+4bWDi6auoGD/Zf39Ul8ODS4xujjtJwV
  10 +hpsasgIgTu/pEIzBxny5o/NT/HRY6fLbfIcCV7D4KMPNoNLmam5dU9QM/CxN7w5C
  11 +BNrCyTrj6JNG8uWygJS63fG2pOEc33z/u2QFtrIqmgJ5Ie23/tK/uhJXPL0w5Rhj
  12 +ywK10S+izsBqCHMDlN/+PNI39QtqhNlpYWpft3zQvlZzRr8tEXgobpddQBspx+p4
  13 +v+hQg4ECgYEA5HHYASWcSywPUV2xZm06ckRpFVcR0IBTLyJ+uBoqN16o7YqBOGpi
  14 +NzS9BlOpGv+C5J6+wRXHlZL4/0dxXgkqgCrZXfEkr6WKQJIpTQEv2pI1fFU1X1B0
  15 +2jCBlXs/loPFU3qQDfZXPZrMhaYq/diI9edG0mIycrbTwmZnbH6tIFsCgYEAmcvO
  16 +MhBRJtpw0LEK4IQ/5fPJI7c/hhoYvEBEsUA9wEcEm0mXUNlC2u9TI8ELjamfgNu8
  17 +dvee0Zyq5+YqlS/YsDaSvTMNItyWuhBWnpEVllH3bnr15qC+BvudncTFHPGdSI+9
  18 +XO5DnoK8Z6/fuczJwXC97QV+a1iqLFTZ/2o+1dECgYEAvdcViC53KckdmaJg0Bup
  19 +XFgZc5B9z2U0u5DQ+bFUr9rMS0q0g+t0XyhGhUF04GjBn7eEEfVFfLk8jvgR7/Fy
  20 +DjyNkpHYyNaqg2pzQ/jeiabDJ+WvitvTn5Z7uXtIpo4up2bM262BZkKD//TM+VK+
  21 +zos5wY+1GLtyUrTC8dh7is0CgYAilfSOyaCWTjVkmQvLJbKA8evfvkvoymGZpBJO
  22 +khXQ8aeVjF0c717bgUp/FeCVQPn/rmqZjmIG3WaJs/cLibD/H6asKZjgqB61RQtV
  23 +qWbjYRd1nu1BqhBR3a+6VQ/GzIcEVF7PUT2fneLkpmZ3kBgnCkWL0dp2JYBPa92C
  24 +VNBAoQKBgDdCU5JQCbreADJC41IPS0wnNcTeWxUn3S+6SJzHPPz4ipJSuH9lxUwO
  25 +vFH7vm5nKLXTpYeJyA8hrqY7JImrRhuuAzGDrbJ+H+2mtEiAI4fMPPeCIClCEpOb
  26 +yx977qSp6gF4V31PJZsS6wzFRQ1PoZ4yzql/5ZV47HHC2NGaXfQH
  27 +-----END RSA PRIVATE KEY-----
  1 +-----BEGIN CERTIFICATE-----
  2 +MIIG/jCCBeagAwIBAgIMFZWjIIj6tjFXK4FdMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
  3 +BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
  4 +bG9iYWxTaWduIERvbWFpbiBWYWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwHhcN
  5 +MTcwODExMDk1MzI4WhcNMTgwODEyMDk1MzI4WjA+MSEwHwYDVQQLExhEb21haW4g
  6 +Q29udHJvbCBWYWxpZGF0ZWQxGTAXBgNVBAMMECoueHVlZGlhbnl1bi5jb20wggEi
  7 +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCJPehfQP/gi0yAuiT52tWo4DVr
  8 +SL0LjqofaPPqqGQ2lURMsQNwAGNDSJ/ofcxIwSnHjjmqBPLpXjd55Jek1G1TAHW7
  9 +k7/8TgfgWZ/Ay1GtLbLKkYecYb4L/l47MLSvGPHKH/V9VdSHqn0hAhU1TSILfqLn
  10 +JjLCsfb/vxfPxKDBTxY6S4dHrJS89v/ZO+2bx/WywI7XiHD9YyaWiU6V2+GUL41Y
  11 +oU04Qt8FL8NCyu1NdjKoway6UT8uStk4NHqF1xbJK0jthsWtDoinB4kBeDdXKAPM
  12 +wPMV1sxGzdcPMt0Kr0/9K/39H9zpJisMJq+/PzaacTBgkLgCgBMeb/H7TSFLAgMB
  13 +AAGjggPYMIID1DAOBgNVHQ8BAf8EBAMCBaAwgZQGCCsGAQUFBwEBBIGHMIGEMEcG
  14 +CCsGAQUFBzAChjtodHRwOi8vc2VjdXJlLmdsb2JhbHNpZ24uY29tL2NhY2VydC9n
  15 +c2RvbWFpbnZhbHNoYTJnMnIxLmNydDA5BggrBgEFBQcwAYYtaHR0cDovL29jc3Ay
  16 +Lmdsb2JhbHNpZ24uY29tL2dzZG9tYWludmFsc2hhMmcyMFYGA1UdIARPME0wQQYJ
  17 +KwYBBAGgMgEKMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24u
  18 +Y29tL3JlcG9zaXRvcnkvMAgGBmeBDAECATAJBgNVHRMEAjAAMEMGA1UdHwQ8MDow
  19 +OKA2oDSGMmh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3MvZ3Nkb21haW52YWxz
  20 +aGEyZzIuY3JsMCsGA1UdEQQkMCKCECoueHVlZGlhbnl1bi5jb22CDnh1ZWRpYW55
  21 +dW4uY29tMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQU
  22 +QRSahXhPoEq2HdQTzjP+hhRAte4wHwYDVR0jBBgwFoAU6k581IAt5RWBhiaMgm3A
  23 +mKTPlw8wggH1BgorBgEEAdZ5AgQCBIIB5QSCAeEB3wB1AFYUBpov18Ls0/XhvUSy
  24 +PsdGdrm8mRFcwO+UmFXWidDdAAABXdC2iCUAAAQDAEYwRAIgZkYZWywmxi6XOrD4
  25 +GR+lgBjI1stPXbyHveQtoJIpzFcCIG5+7XLgzgsyyiUdQ8chvZiR7wS/Y7TC0ZLS
  26 +UKGHQSxTAHUApLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BAAAAFd0LaL
  27 +EQAABAMARjBEAiBPi4Cxa3cIUn7SYlpEIW2dhvD3WeDNfvslz8dn/cQG3QIgftDh
  28 +mtLpwznQD6UuZAnt2MAqjMXP/W8XpiQ+j6or41YAdgC72d+8H4pxtZOUI5eqkntH
  29 +OFeVCqtS6BqQlmQ2jh7RhQAAAV3Qto11AAAEAwBHMEUCIQDzX7y1QDf9ZmMt8Mgu
  30 +p+r1e8UCm5+hhT37fpUtlv0//gIgBcPa3CohP60dDRi3krRsniDTVG5UVn4tiaou
  31 +Khsy+TwAdwDuS723dc5guuFCaR+r4Z5mow9+X7By2IMAxHuJeqj9ywAAAV3QtpDZ
  32 +AAAEAwBIMEYCIQCtgSB/8JBYBEBqlLy4Z66M+G/3Xh77HpF8vn3GUDf/vwIhAKoE
  33 +VpInQbODhvkCRH7anUGIFrQitAhbwWm4gVLFBRFlMA0GCSqGSIb3DQEBCwUAA4IB
  34 +AQCpgBKZOIuqhDlQns37h96I/KVqeHkzNLk5TIOV3TGXwHTOagyqM/XyW46eitu1
  35 +vJ7hp43LZN/lE13G3dgQ0CGkP8QABIwvzlLXgO0iD4FMckp4nSrUvvbW7luZfBaT
  36 +jurpKUYw6D9vJETBdfnkw5Sh7nfjuk7HDdOSl/NeSwiw2ejtoiWXfH2dDYyouIN3
  37 +cKgtylTY44Sgf7U1O7ES0nxa2HD7cGt+S6ctryIzVA3EkPCsRJOouzIkqUmFX8sG
  38 +cgs6v0Df//D8Jtbb3PzsWgfo0wbMHX4erHn4ym0b1/OjIySzgfiA06ZLgLYWgqPL
  39 +F/aiB8M6m0zbbz+c1mjs9LO5
  40 +-----END CERTIFICATE-----
  41 +-----BEGIN CERTIFICATE-----
  42 +MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
  43 +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
  44 +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw
  45 +MDBaFw0yNDAyMjAxMDAwMDBaMGAxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
  46 +YWxTaWduIG52LXNhMTYwNAYDVQQDEy1HbG9iYWxTaWduIERvbWFpbiBWYWxpZGF0
  47 +aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
  48 +AoIBAQCp3cwOs+IyOd1JIqgTaZOHiOEM7nF9vZCHll1Z8syz0lhXV/lG72wm2DZC
  49 +jn4wsy+aPlN7H262okxFHzzTFZMcie089Ffeyr3sBppqKqAZUn9R0XQ5CJ+r69eG
  50 +ExWXrjbDVGYOWvKgc4Ux47JkFGr/paKOJLu9hVIVonnu8LXuPbj0fYC82ZA1ZbgX
  51 +qa2zmJ+gfn1u+z+tfMIbWTaW2jcyS0tdNQJjjtunz2LuzC7Ujcm9PGqRcqIip3It
  52 +INH6yjfaGJjmFiRxJUvE5XuJUgkC/VkrBG7KB4HUs9ra2+PMgKhWBwZ8lgg3nds4
  53 +tmI0kWIHdAE42HIw4uuQcSZiwFfzAgMBAAGjggElMIIBITAOBgNVHQ8BAf8EBAMC
  54 +AQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU6k581IAt5RWBhiaMgm3A
  55 +mKTPlw8wRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8v
  56 +d3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCowKKAmoCSG
  57 +Imh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYBBQUHAQEE
  58 +MTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290
  59 +cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZIhvcNAQEL
  60 +BQADggEBANdFnqDc4ONhWgt9d4QXLWVagpqNoycqhffJ7+mG/dRHzQFSlsVDvTex
  61 +4bjyqdKKEYRxkRWJ3AKdC8tsM4U0KJ4gsrGX3G0LEME8zV/qXdeYMcU0mVwAYVXE
  62 +GwJbxeOJyLS4bx448lYm6UHvPc2smU9ZSlctS32ux4j71pg79eXw6ImJuYsDy1oj
  63 +H6T9uOr7Lp2uanMJvPzVoLVEgqtEkS5QLlfBQ9iRBIvpES5ftD953x77PzAAi1Pj
  64 +tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
  65 +EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
  66 +-----END CERTIFICATE-----
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型