全部产品

会议直播和录制

更新时间:2020-09-24 09:26:58

本文将为您介绍如何将会议内容进行直播,云视频会议仅将会议中的内容合流后推送到直播中心,直播等功能由您选择的服务商来提供。通过本文,您可以快速了解会议直播的基本概念和功能说明。

合流

将正在进行会议的会议室画面同步到云端进行云端混流,并将混流后的会议室直播流推流给第三方CDN或者阿里云视频直播。

录制

阿里云视频直播服务可以将接收到的直播流进行录制,支持m3u8、mp4和flv格式的视频流,也支持周期录制时长的配置。您可以将视频直播的内容录制并保存到OSS或视频点播服务中。

说明 云视频会议暂时不提供直接录制功能,需要您合流后推到直播服务中,依赖视频直播产品的录制功能,具体配置请参见如何录制直播视频
• 如果您需要将视频直播内容录制并保存到OSS中,请参见直播录制存储至OSS
• 如果您需要将视频直播内容录制并保存到视频点播服务中,请参见直播录制存储至VOD

注:录制功能由直播服务支持,具体操作步骤请再视频直播服务中查询。

接入流程

前提条件

接入直播和录制之前,您需要完成以下工作:
• 成功搭建云视频会议服务,详情请参见接入说明
• 开通视频直播服务并生成推流地址(StreamURL),详情请参见直播服务开通推流地址与播流地址
• 完成录制前相关产品的开通配置操作。
         如果您选择将直播内容录制保存到OSS中,请参见直播录制至OSS
         如果您选择将直播内容录制保存到视频点播服务中,请参见开始使用视频点播

流程

流程

接口及功能

说明:云视频会议提供推流到直播中心的能力,其他直播播放、录制及点播等功能需要您在对应的服务产品中查阅使用方法。

功能 接口
会议转直播 ConferenceToLiveReuqest
创建直播 CreateLiveRequest
开始直播 StartLiveRequest
更新布局 CustomLayoutRequest
停止直播 EndLiveRequest
禁用主讲人切换 EnableLiveSpeakerRequest

直播流

目前最多支持推两路流,手机端及电脑端:resolutionType : hd720p(电脑) 、hdmobile(手机)

布局类型

支持宫格及画中画画中画:最多5个窗格宫格:最多25个窗格,仅支持 4(22) 、9(33)、 16(44)、 25(55)

关键时序关键时序

关键时序

接口代码示例

会议转直播

当您需要将正在进行的会议进行直播时您需要使用此接口:ConferenceToLiveReuqest来创建直播服务
接口参数:

  1. {
  2. "liveName":"1234", //直播名称
  3. "userId":"1234",//此用户id 必须是会议创建人id
  4. "password":"1", // 直播密码
  5. "openPasswordFlag":"true",// true开启则password不能为null,默认false 可以不传
  6. "meetingUUID":"1"//会议ID
  7. }

返回:

  1. {
  2. "Message": "successful!",
  3. "RequestId": "C58005D0-8BC1-4B0E-BD34-A337207A67B8",
  4. "ErrorCode": 0,
  5. "Success": true,
  6. "LiveInfo": {
  7. "LiveUUID": "hz-5c49f6b3-630f-4f5d-bb2e-b2df3bd4895e"
  8. }
  9. }

创建直播

当您在会议召开的同时就需要开启直播服务时,您需要使用接口:CreateLiveRequest
接口参数:

  1. {
  2. "liveName":"1234", //直播名称
  3. "userId":"1234",//创建人,直播的创建人
  4. "password":"1", // 直播密码
  5. "openPasswordFlag":"true",// true开启则password不能为null,默认false 可以不传
  6. "memo":"1"//此参数暂时可不传
  7. }

返回:

  1. {
  2. "Message": "successful!",
  3. "RequestId": "C58005D0-8BC1-4B0E-BD34-A337207A67B8",
  4. "ErrorCode": 0,
  5. "Success": true,
  6. "LiveInfo": {
  7. "LiveUUID": "hz-5c49f6b3-630f-4f5d-bb2e-b2df3bd4895e"
  8. }
  9. }

开始直播

当您开启直播服务后,您可调用此接口:StartLiveRequest开启直播服务,此接口中同时包含混流的布局信息。
接口参数:

  1. {
  2. "liveUUID":"1234", //直播UUID
  3. "userId":"1234",//主播ID
  4. "pushInfo":[{
  5. "urlIndex": 0, //目前最多支持同时推两路流
  6. "url": "rtmp://url1",//推流地址,请在直播服务中心获取
  7. "resolutionType":"hd720p", //电脑端
  8. "layoutType": 1,// 布局类型 0代表画中画 1代表宫格
  9. "videoCount": 25//如果是画中画 videoCount 最大是5,如果是宫格 最大是25,宫格仅支持 4(2*2) 9(3*3) 16(4*4) 25(5*5)
  10. },{
  11. "urlIndex": 1, //目前最多支持同时推两路流
  12. "url": "rtmp://url2",//推流地址,请在直播服务中心获取
  13. "resolutionType":"hdmobile", //移动端
  14. "layoutType": 0,// 布局类型 0代表画中画 1代表宫格
  15. "videoCount": 5//如果是画中画 videoCount 最大是5,如果是宫格 最大是25,宫格仅支持 4(2*2) 9(3*3) 16(4*4) 25(5*5)
  16. }],
  17. "layoutInfo":[{
  18. "urlIndex":"0",
  19. "layoutParam":{
  20. "namePosition":"leftTop",
  21. //台标显示位置,共四个:leftTop、leftBottom、rightBottom、rightTop
  22. "showTime":false,//固定false,
  23. "showMute":false,//固定false,
  24. },
  25. "layoutSolution": [
  26. {
  27. "sharing": false,//固定false,
  28. "active": false,//固定false,
  29. "participant": "",//memberUUID 入会成员Id 通过JoinMeeting获取
  30. "top": 0,//坐标系, 原点:左上角
  31. "left": 0,//坐标系, 原点:左上角
  32. "width": 3,//widthDenominator,所占用的宽高,此例子表示width=3/3即全屏宽
  33. "height": 2,//heightDenominator,所占用的宽高,此例子height=2/3即高度为2/3
  34. "widthDenominator": 3,//表示横向纵向几等分,是分母。目前要求横向纵向
  35. "heightDenominator": 3//表示横向纵向几等分,是分母。目前要求纵向
  36. },
  37. {
  38. "sharing": false,
  39. "active": false,
  40. "participant": "",
  41. "top": 2,
  42. "left": 0,
  43. "width": 1,
  44. "height": 1,
  45. "widthDenominator": 3,
  46. "heightDenominator": 4
  47. },
  48. {
  49. "sharing": false,
  50. "active": false,
  51. "participant": "",
  52. "top": 2,
  53. "left": 1,
  54. "width": 1,
  55. "height": 1,
  56. "widthDenominator": 3,
  57. "heightDenominator": 4
  58. },
  59. {
  60. "sharing": false,
  61. "active": false,
  62. "participant": "",
  63. "top": 2,
  64. "left": 2,
  65. "width": 1,
  66. "height": 1,
  67. "widthDenominator": 3,
  68. "heightDenominator": 4
  69. }
  70. ]},{
  71. "urlIndex":"1",
  72. "layoutParam":{
  73. "namePosition":"leftTop",
  74. //台标显示位置,共四个:leftTop、leftBottom、rightBottom、rightTop
  75. "showTime":false,
  76. "showMute":false,
  77. },
  78. "layoutSolution": [
  79. {
  80. "sharing": false,//固定false
  81. "active": false,//固定false
  82. "participant": "",//memberUUID 入会成员ID,通过JoinMeeting获取
  83. "top": 0,//坐标系, 原点:左上角
  84. "left": 0,//坐标系, 原点:左上角
  85. "width": 3,//widthDenominator,所占用的宽高,此例子表示width=3/3即全屏宽
  86. "height": 2,//heightDenominator,所占用的宽高,此例子height=2/3即高度为2/3
  87. "widthDenominator": 3,//表示横向纵向几等分,是分母。目前要求横向纵向
  88. "heightDenominator": 3//表示横向纵向几等分,是分母。目前要求纵向
  89. },
  90. {
  91. "sharing": false,
  92. "active": false,
  93. "participant": "",
  94. "top": 2,
  95. "left": 0,
  96. "width": 1,
  97. "height": 1,
  98. "widthDenominator": 3,
  99. "heightDenominator": 4
  100. },
  101. {
  102. "sharing": false,
  103. "active": false,
  104. "participant": "",
  105. "top": 2,
  106. "left": 1,
  107. "width": 1,
  108. "height": 1,
  109. "widthDenominator": 3,
  110. "heightDenominator": 4
  111. },
  112. {
  113. "sharing": false,
  114. "active": false,
  115. "participant": "",
  116. "top": 2,
  117. "left": 2,
  118. "width": 1,
  119. "height": 1,
  120. "widthDenominator": 3,
  121. "heightDenominator": 4
  122. }
  123. ]}
  124. ]
  125. }

布局问题

我们提供了两种布局模式:画中画及宫格,通过本段您将了解两种布局如何通过接口来实现功能1.我们将整个窗口按照参数的配置进行均等分,例如4x4;均分后每个窗格的位置就确定了。

布局问题1

2.同时使用(width,height)参数来选择您某一个参会人需要占据的窗格大小。布局2

注:当您选择画中画模式的时候,视频源的窗格可以存在重叠,但当您选择宫格模式时视频源占据的窗格不可出现重叠,运行会产生错误。

返回:

  1. {
  2. "RequestId": "12345678",
  3. "Message": "successful!",
  4. "Success": true,
  5. "ErrorCode": 0
  6. }

更新布局

当您在您的会议直播中有更换布局样式的需求时,您可以调用此接口:CustomLayoutRequest来完成布局更新。
接口参数:

  1. {
  2. "liveUUID":"0",//直播UUID
  3. "layoutInfo":[{
  4. "urlIndex":"0",
  5. "layoutParam":{
  6. "namePosition":"leftTop",
  7. "showTime":false,
  8. "showMute":false,
  9. },
  10. "layoutSolution": [
  11. {
  12. "sharing": false,//固定false,
  13. "active": false,//固定false,
  14. "participant": "",//memberUUID 入会成员ID,通过JoinMeeting获取
  15. "top": 0,//坐标系, 原点:左上角
  16. "left": 0,//坐标系, 原点:左上角
  17. "width": 3,//widthDenominator,所占用的宽高,此例子表示width=3/3即全屏宽
  18. "height": 2,//heightDenominator,所占用的宽高,此例子height=2/3即高度为2/3
  19. "widthDenominator": 3,//表示横向纵向几等分,是分母。目前要求横向纵向
  20. "heightDenominator": 3//表示横向纵向几等分,是分母。目前要求纵向
  21. },
  22. {
  23. "sharing": false,
  24. "active": false,
  25. "participant": "",
  26. "top": 2,
  27. "left": 0,
  28. "width": 1,
  29. "height": 1,
  30. "widthDenominator": 3,
  31. "heightDenominator": 4
  32. },
  33. {
  34. "sharing": false,
  35. "active": false,
  36. "participant": "",
  37. "top": 2,
  38. "left": 1,
  39. "width": 1,
  40. "height": 1,
  41. "widthDenominator": 3,
  42. "heightDenominator": 4
  43. },
  44. {
  45. "sharing": false,
  46. "active": false,
  47. "participant": "",
  48. "top": 2,
  49. "left": 2,
  50. "width": 1,
  51. "height": 1,
  52. "widthDenominator": 3,
  53. "heightDenominator": 4
  54. }
  55. ]},{
  56. "urlIndex":"1",
  57. "layoutParam":{
  58. "namePosition":"leftTop",
  59. "showTime":false,
  60. "showMute":false,
  61. },
  62. "layoutSolution": [
  63. {
  64. "sharing": false,//固定false,后续扩展共享屏幕
  65. "active": false,//固定false,后续扩展宫格主讲人切换
  66. "participant": "",//memberUUID 入会成员ID,通过JoinMeeting获取
  67. "top": 0,//坐标系, 原点:左上角
  68. "left": 0,//坐标系, 原点:左上角
  69. "width": 3,//widthDenominator,所占用的宽高,此例子表示width=3/3即全屏宽
  70. "height": 2,//heightDenominator,所占用的宽高,此例子height=2/3即高度为2/3
  71. "widthDenominator": 3,//表示横向纵向几等分,是分母。目前要求横向纵向
  72. "heightDenominator": 3//表示横向纵向几等分,是分母。目前要求纵向
  73. },
  74. {
  75. "sharing": false,
  76. "active": false,
  77. "participant": "",
  78. "top": 2,
  79. "left": 0,
  80. "width": 1,
  81. "height": 1,
  82. "widthDenominator": 3,
  83. "heightDenominator": 4
  84. },
  85. {
  86. "sharing": false,
  87. "active": false,
  88. "participant": "",
  89. "top": 2,
  90. "left": 1,
  91. "width": 1,
  92. "height": 1,
  93. "widthDenominator": 3,
  94. "heightDenominator": 4
  95. },
  96. {
  97. "sharing": false,
  98. "active": false,
  99. "participant": "",
  100. "top": 2,
  101. "left": 2,
  102. "width": 1,
  103. "height": 1,
  104. "widthDenominator": 3,
  105. "heightDenominator": 4
  106. }
  107. ]}
  108. ]
  109. }

返回:

  1. {
  2. "RequestId": "12345678",
  3. "Message": "successful!",
  4. "Success": true,
  5. "ErrorCode": 0
  6. }

停止直播

当您需要停止会议直播时,您可以使用此接口:EndLiveRequest
接口参数:

  1. {
  2. "liveUUID":"123",//直播UUID
  3. "userId":"123"//创建人主播Id
  4. }

返回:

  1. {
  2. "RequestId": "12345678",
  3. "Message": "successful!",
  4. "Success": true,
  5. "ErrorCode": 0
  6. }

禁用主讲人切换

我们会认为会议中正在说话的人员为此时的主讲人,如果您的布局信息中没有填写窗格的指定参会人员ID,我们会将此窗格分配给主讲人,如果您开启了禁用主讲人切换,我们将不会改动您窗格中显示的参会人员视频,如果此参会人离开会议室,此窗格将不显示任何参会人视频。
接口参数:

  1. {
  2. "liveUUID":"123",//直播UUID
  3. "value":"true"//true开启 false禁用
  4. }

返回:

  1. {
  2. "RequestId": "12345678",
  3. "Message": "successful!",
  4. "Success": true,
  5. "ErrorCode": 0
  6. }