빠른 시작: 브라이트코브 라이브 API를 사용하여 라이브 스트림 만들기
필요한 것
이 자습서를 완료하려면 다음이 필요합니다.
- Live API 용으로 설정된 계정
- Live API 용 API 키 (계정 설정시 제공됨)
- Video Cloud 계정 (라이브 스트림 작업을 생성하는 데 필요하지 않지만 Brightcove Player에서 재생을 설정하는 데 필요)
- 사용하는 경우CMS API Studio가 아닌 Video Cloud 비디오를 만들려면 비디오 / 읽기 및 비디오 / 쓰기 권한이있는 클라이언트 자격 증명이 필요합니다. 클라이언트 자격 증명을 얻는 프로세스에 익숙하지 않은 경우입증아래 섹션.
- 다음을 통해 REST API 요청을 수행하는 기능곱슬 곱슬하다또는 다음과 같은 REST 클라이언트잠 잘 수 없음또는우편 집배원 .
도움을 드리기 위해 실습에 사용할 수있는 Insomnia 및 Postman 가져 오기를 준비했습니다 (Brightcove Learning Services에서는 Insomnia를 선호하고 사용하지만 Postman도 사용할 수 있습니다).
각 zip 파일에는 도움이되는 readme 페이지가 있습니다.
- 실제 라이브 스트림을 생성하려면 라이브 스트리밍을위한 소프트웨어 또는 하드웨어 인코더가 필요합니다. 아래 지침에는 Wirecast를 사용하여 라이브 스트림을 설정하는 단계가 포함됩니다 ( 평가판 등록 ). 다른 인코더를 사용하는 경우 프로세스는 다르지만 Live API 응답에서 필요한 정보 측면에서 유사해야합니다.
CMS API에 대한 자격 증명 가져오기
라이브 작업 생성
먼저 라이브 작업을 생성합니다.
- 이 단계에서는
POST
요청 :https://api.bcovlive.io/v1/jobs
다음을 요청 본문으로 사용하십시오.
{ "live_stream": true, "region": "us-west-2", "reconnect_time": 1800, "outputs": [ { "label": "hls720p", "live_stream": true, "width": 1280, "height": 720, "video_codec": "h264", "h264_profile": "high", "video_bitrate": 2100, "segment_seconds": 4, "keyframe_interval": 60 }, { "label": "hls540p", "live_stream": true, "width": 960, "height": 540, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 1500, "segment_seconds": 4, "keyframe_interval": 60 }, { "label": "hls360p", "live_stream": true, "width": 640, "height": 360, "video_codec": "h264", "h264_profile": "main", "video_bitrate": 800, "segment_seconds": 4, "keyframe_interval": 60 } ] }
- 다음과 같은 REST 클라이언트를 사용하는 경우잠 잘 수 없음또는우편 집배원 , 요청에 대해 다음 헤더를 추가해야합니다.
키 값 X-API- 키 API 키 컨텐츠 타입 응용 프로그램/json 위의 1 단계에 표시된 요청 본문을 사용하고 POST 메서드를 사용하여 요청을 보내야합니다.
- API의 응답은 다음과 유사해야합니다.
{ "id": "15981d93877e490185e6ebc9af2c79a3", "outputs": [ { "id": "0-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_0/chunklist_vod.m3u8", "label": "hls720p" }, { "id": "1-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_1/chunklist_vod.m3u8", "label": "hls540p" }, { "id": "2-15981d93877e490185e6ebc9af2c79a3", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_dvr.m3u8", "playback_url_vod": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/profile_2/chunklist_vod.m3u8", "label": "hls360p" }, { "id": "3-15981d93877e490185e6ebc9af2c79a3", "playlist_type": "defaultS3", "type": "playlist", "filename": "playlist.m3u8", "dvr_filename": "playlist_dvr.m3u8", "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } } ], "stream_url": "rtmp://ep1-apse2.bcovlive.io:1935/15981d93877e490185e6ebc9af2c79a3", "stream_name": "alive", "encryption": {}, "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/playlist_dvr.m3u8", "ssai_playback_urls": { "685b239f582c42fca49da33be4f2328e": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/685b239f582c42fca49da33be4f2328e/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Ads - a95ac581551b4478b27910e5675db1f8", "type": "ads" }, "c96e2d00d6744c65a3eddb15425e4a51": { "playback_url": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_ssaiM.m3u8", "playback_url_dvr": "http://bcovlive-a.akamaihd.net/15981d93877e490185e6ebc9af2c79a3/us-west-2/counter/playlist_dvr_ssaiM.m3u8", "playback_added_cdns": [], "description": "House Counter - a95ac581551b4478b27910e5675db1f8", "type": "counter" } } }
- 우리의 목적을 위해 응답의 중요한 필드는 다음과 같습니다.
- stream_url (51 행)
- stream_name (52 행)
- playback_url (54 행)
이 필드의 값은 다음 단계에서 사용자의 응답에서 필요합니다.
Video Cloud 비디오 설정
이제 라이브 스트림 정보가 있으므로 Brightcove Player에서 재생할 수 있도록 Video Cloud에 원격 비디오를 설정합니다.
Insomnia 또는 Postman을 사용하는 경우 클라이언트 자격 증명을 사용하여 OAuth2 인증을 설정해야합니다. 도움이 필요하면 다음 가이드 중 하나를 참조하세요.
-
먼저 새로운 동영상을 만들어야합니다.
POST
요청 :https://cms.api.brightcove.com/v1/accounts/account_id/videos
-
요청 본문에는 여러 메타 데이터가 포함될 수 있습니다 ( API 참조자세한 내용은 참조), 그러나 필요한 유일한 것은
name
:{ "name": "some name for your live stream" }
-
응답에는 모든 동영상 메타 데이터가 포함되지만 중요한 필드는
id
, 원격 자산을 추가해야합니다. -
HLS 스트림을 추가하려면
POST
요청 :https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
-
이번에 요청 본문은 다음과 같습니다.
{ "remote_url": "playback_url for your live stream" }
플레이어에 비디오 추가
이제 간단한 HTML 페이지를 만들고 방금 만든 비디오로 플레이어를 추가합니다.
- 간단한 HTML 페이지를 만들어 라이브 스트림 플레이어를 테스트합니다. 원하는 다른 콘텐츠를 포함하거나 전혀 포함하지 않을 수 있습니다.
- Studio Media Module에서 이전 단계에서 만든 비디오를 선택하고게시 및 포함> 웹 플레이어 :
- 게시 대화 상자에서 플레이어를 선택합니다 (Brightcove 기본 플레이어는 괜찮습니다).
- 아래로 스크롤하여 플레이어의 크기를 원하는대로 설정 한 다음 코드 블록을 클릭하여 표준 플레이어 코드를 선택합니다.이 코드를 복사하여 html 페이지 본문에 붙여 넣습니다.
- html 페이지를 검색 할 수 있도록 원격 또는 로컬 웹 서버에 저장합니다.
- 웹 브라우저에서 페이지를 엽니 다. 스트리밍을 시작하지 않았으므로 미디어 오류가 표시됩니다.
cURL 명령
이 섹션에서는 Insomnia 또는 Postman과 같은 REST 클라이언트를 사용하지 않는 사용자를위한 대체 cURL 명령을 제공합니다.
라이브 작업 생성을위한 cURL
## Create Job - Simple
curl -X "POST" "https://api.bcovlive.io/v1/jobs" \
-H "X-API-KEY: YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d $'{
"outputs": [
{
"height": 720,
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 1280,
"video_codec": "h264",
"label": "hls720p",
"h264_profile": "high",
"live_stream": true
},
{
"height": 540,
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 960,
"video_codec": "h264",
"label": "hls540p",
"h264_profile": "main",
"live_stream": true
},
{
"height": 360,
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60,
"width": 640,
"video_codec": "h264",
"label": "hls360p",
"h264_profile": "main",
"live_stream": true
}
],
"region": "us-west-2",
"reconnect_time": 1800,
"live_stream": true
}'
이 코드를 텍스트 편집기에 복사하고YOUR_API_KEY_HERE
자신의 API 키로. 그런 다음 명령 줄에 코드를 복사하여 붙여넣고 실행합니다.
Studio를 사용하여 비디오 만들기
다음은 Studio에서 동영상을 만드는 대체 단계입니다.
- Video Cloud Studio에 로그인합니다.
- 미디어 모듈로 이동합니다.
- 왼쪽의 옵션에서원격 비디오 추가 :
- 에서원격 비디오 추가대화 상자에서 비디오 이름을 추가하고 값을 복사하여 붙여 넣습니다.
playback_url
Live API 응답에서 URL 필드로. 그런 다음변환 추가 , 및저장 :
Wirecast를 사용하여 이벤트 스트리밍
이 섹션에서는 라이브 스트리밍 이벤트를 지원하기 위해 Telestream Wirecast 인코더를 구성 및 사용합니다. Telestream Wirecast 소프트웨어는 카메라로부터 입력을 캡처하여 CDN에서 전달할 수 있는 스트림을 생성하는 데스크톱 애플리케이션입니다. 라이브 스트리밍 이벤트를 전달하는 데 더욱 적합할 수 있는 하드웨어 및 기타 소프트웨어 기반 인코딩 솔루션이 있을 수 있습니다. Telestream 웹사이트에서 Wirecast 소프트웨어 무료 평가판 버전을 다운로드할 수 있습니다.
참고: 계속하기 전에 컴퓨터에 Wirecast 소프트웨어가 설치되어 있고 카메라가 연결되어 있어야 합니다.
라이브 이벤트를 위해 Wirecast를 구성하려면 다음 단계를 따르십시오.
- Wirecast를 엽니다.
- 마우스를 +,딸깍 하는 소리캡처 장치그런 다음 카메라를 선택합니다.
- 화살표 버튼 ( ) 카메라가 라이브 샷으로 촬영되도록합니다.
- 스트림버튼 ( ) 을 클릭합니다. 출력 설정을 구성하라는 메시지가 표시됩니다.
- 대상을 RTMP 서버로 설정합니다. 확인을 클릭합니다.
- 에 대한주소 , 사용 stream_url Live API에서 반환됩니다 (3 단계).
- 에 대한흐름 , 살아 사용하십시오.
- (선택사항) 추가 출력 스트림을 생성하려면 추가...를 클릭합니다 추가 출력 스트림을 생성할 때 사용자는 고유한 사용자 정의 인코딩 프로파일을 생성하여 출력 비트레이트를 제어하려 할 수 있습니다. 스트림 이름에 새 비트레이트가 반영되었는지 확인합니다.
- 확인을 클릭하여 출력 설정을 저장합니다.
- 스트림버튼 ( ) 을 클릭합니다. 라이브 스트림이 시작되어야 합니다.
결론
이제 라이브 스트리밍 세션을 만들 준비가되었습니다. 인코더 구성에 다음을 추가해야합니다.
stream_url
: 추가stream_url
직장에서 (rtmp
주소)stream_name
: 스트림 이름은alive
라이브 스트림을 시작하면 이전 단계에서 만든 Brightcove 플레이어에 표시되어야합니다.