비디오 API를 사용하는 HLS/RMTP 브로드캐스트의 동적 레이아웃
Want to try it out? You can view an example application using the broadcast feature on GitHub. You can also deploy it to Heroku to try out.
내장 레이아웃 유형
방송을 위해 가장 좋은 구조를 선택할 때 몇 가지 요소를 고려해야 한다.누가 말하고 있습니까?누가 그들의 스크린을 공유하고 있습니까?대화는 그룹 토론입니까?다행히도 Vonage 비디오 API는 몇 가지 미리 정의된 레이아웃을 제공하여 최상의 환경을 만들 수 있습니다.
당신의 관중들에게는
기본적으로 브로드캐스트 사용
bestFit
레이아웃은 다음과 같습니다.이러한 레이아웃은 참여자의 수에 따라 달라지며 각 출판사에 동일한 화면 공간을 제공합니다.기타 옵션은 그림 그리기(
pip
, 세로 디스플레이(verticalPresentation
및 수평 디스플레이(horizontalPresentation
를 포함합니다.레이아웃 초기화 및 변경
브로드캐스트를 시작할 때 초기 레이아웃을 지정할 수 있습니다.이를 위해
layout
속성을 포함하는 type
속성을 요청 본문에 추가하십시오.이 속성은 원하는 미리 정의된 레이아웃과 일치해야 합니다.{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "bestFit"
}
}
스트리밍 생방송 중에 레이아웃을 변경하려면 OpenTok 서버 SDK 중 하나를 사용하거나 OpenTok/broadcast/layout REST API endpoint에 전화하십시오.요청본문에 필요한 레이아웃을 나타내는 속성을 가진 JSON 객체를 보냅니다.
{
"type": "pip"
}
그러나 레이아웃을 사용하는 것은 흐름을 좋게 보이는 첫걸음일 뿐이다.다음은 흐르는 클래스 목록을 업데이트하는 것입니다.우리는 수직 디스플레이 type
레이아웃을 예로 들 수 있습니다.위 그림에서 단어 "focus"를 대량으로 포함하는 것을 발견할 수 있습니다초점은 이 영역에 표시할 흐름에 적용해야 하는 클래스의 이름입니다.스크린, 행사 강연자를 공유하든지, 발표자로 표시된 발표자든지, 당신이 보여주고 싶은 흐름은 다른 종류가 아니라 초점 클래스를 분배해야 합니다.양식과 어떻게 응용하고 수정하는지 토론해 봅시다.
브로드캐스트 및 스트림 스타일
브로드캐스트 레이아웃은 다음과 같은 구조를 가진 가상 DOM에서 생성됩니다.
<broadcast>
<stream class="{layoutClassList}" />
<stream class="{layoutClassList}" />
<stream class="{layoutClassList}" />
...
</broadcast>
미리 정의된 레이아웃을 사용하거나 사용자 정의 레이아웃을 만들 때 이 구조를 기억해야 합니다.기본적으로 브로드캐스트 비디오는 640x480 픽셀이지만 브로드캐스트를 시작할 때 1280x720을 사용하도록 지정할 수 있습니다.이 경우 미리 정의된 레이아웃을 16:9의 종횡비로 조정합니다.Important: Only 9 streams can ever be displayed in a broadcast at one time.
스타일 변경
미리 정의된 레이아웃은 브로드캐스트의 모양을 제어하는 CSS를 제공합니다.그것들을 이용하기 위해서, 어떤 종류가 어떤 흐름에 적용되어야 하는지를 지정해야 합니다.우리의 모든 서버 SDK를 사용하거나 OpenTok REST API/session/{sessionId}/stream를 통해 흐름의 클래스 목록을 변경할 수 있습니다
끝점.끝점에 대한 요청은 다음과 같은 JSON 바디를 포함합니다.
객체:
{
"items": [
{
"id": "8b732909-0a06-46a2-8ea8-074e64d43422", // stream id
"layoutClassList": ["focus"] // array of classes to apply to the specified stream
}
]
}
주의해야 할 것은 type
속성은 하나의 수조로 한 요청에 여러 개의 흐름에 대한 상세한 정보를 제공할 수 있다는 것이다.따라서 수직 표시를 사용하는 예시에서 위의 유효 부하를 보내고 관심 있는 흐름의 id를 지정해야 합니다.다른 흐름이 이전에 초점 클래스가 있다면, 초점 클래스를 삭제하기 위해 빈 클래스 목록과 함께 보내야 합니다.사용자 정의 레이아웃 만들기
사전 정의된 레이아웃 중 하나가 사용자의 요구에 맞지 않으면 유형과 CSS가 있는
verticalPresentation
속성으로 전송하여 사용자 정의 레이아웃을 만들 수 있습니다.{
"sessionId": "2_MX44NTQ1MTF--bm1kTGQ0RjVHeGNQZE51VG5scGNzdVl0flB-",
"layout": {
"type": "custom",
"stylesheet": "stream.instructor {position: absolute; width: 100%; height:50%;}"
}
}
사용자 정의 레이아웃을 작성할 때는 다음 사항을 고려해야 합니다.items
요소기본 스타일
custom
및 stylesheet
요소에는 기본 규칙이 적용됩니다.사용자 정의 CSS에서 이러한 스타일을 덮어쓸 수 있습니다.기본 규칙은 다음과 같습니다.broadcast {
position: relative;
margin:0;
width: 640px;
height:480px;
overflow: hidden;
}
stream {
display: block;
margin: 0;
}
Note: The container resolution is fixed and cannot be overridden by CSS.
허용되는 CSS 선택기
유형 선택기는 흐름 요소만 지원합니다.브로드캐스트 요소를 선택할 수 없습니다.클래스 선택기 지원(예:.focus)그것들은 어떤 흐름 그룹이나 단일 흐름을 선택하는 데 사용할 수 있다.이웃 동포와 일반 동포 조합을 지지하다.또한
broadcast
, stream
, broadcast
및 stream
위조 선택기를 지원합니다.다음 선택기는 지원되지 않습니다.
허용되는 CSS 속성
다음 표에서는 현재 지원되는 CSS 속성과 가능한 값에 대해 설명합니다.
이름
가치
너비
양수 (px/%)
최소 너비, 최소 높이
양수 (px/%)
최대 너비, 최대 높이
양수 (px/%)
왼쪽, 오른쪽, 위, 아래
수량(px/%)
페이지 여백, 왼쪽 여백, 오른쪽 여백, 맨 위 여백, 맨 아래 여백
수량(px/%)
지수
정수
위치
"상대적", "절대적"
진열하다
인라인 블록, 블록
떠다니다
없음, 왼쪽, 오른쪽
객체 일치
"contain"(기본값), "cover"
넘치다
숨기기
분명하다
“none”、“left”、“right”、“both”、“inherit”、“inherit”
계속 공부하다
맞춤형 방송 외관에 대한 더 많은 정보를 알고 싶으세요?다음 링크를 봅니다.
Reference
이 문제에 관하여(비디오 API를 사용하는 HLS/RMTP 브로드캐스트의 동적 레이아웃), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vonagedev/dynamic-layouts-in-hls-rmtp-broadcasts-with-the-video-api-22lb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)