이 페이지는 이동했습니다. 3초 후에 새 위치 로 이동합니다. 북마크를 업데이트하세요!

빠른 시작: 브라이트코브 라이브 API를 사용하여 라이브 스트림 만들기

이 튜토리얼은 Live 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에 대한 자격 증명 가져오기

CMS API를 사용하려면 적절한 자격 증명이 필요합니다.

대부분의 경우 자격 증명을 얻는 가장 쉬운 방법은 Studio 관리 API 인증 섹션 (계정에 대한 관리자 권한 필요) 을 사용하는 것입니다. 자세한 내용은API 인증 자격 증명 관리를참조하십시오. 이 경우 필요한 권한은관계 공유 -읽기 및 쓰기 권한이 모두 필요합니다.

관계 사용 권한 공유
관계 사용 권한 공유

필요한 권한을 Studio에서 사용할 수 없거나 OAuth API에서 직접 가져오려는 경우 아래에 나열된클라이언트 자격 증명 가져오기문서를 선택합니다. 어떤 옵션을 선택하든 올바른 작업 권한을 요청해야합니다. 다음은 cURL 또는 우편 배달부와 함께 사용하여 적절한 권한을 얻을 수 있습니다.

    "operations": [
    "video-cloud/videos/read",
    "video-cloud/videos/create",
    "video-cloud/videos/update"]

라이브 작업 생성

먼저 라이브 작업을 생성합니다.

  1. 이 단계에서는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
            }
        ]
    }
    
    
  2. 다음과 같은 REST 클라이언트를 사용하는 경우잠 잘 수 없음또는우편 집배원 , 요청에 대해 다음 헤더를 추가해야합니다.
    X-API- 키 API 키
    컨텐츠 타입 응용 프로그램/json

    위의 1 단계에 표시된 요청 본문을 사용하고 POST 메서드를 사용하여 요청을 보내야합니다.

  3. 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"
            }
        }
    }
    
    
  4. 우리의 목적을 위해 응답의 중요한 필드는 다음과 같습니다.
    • stream_url (51 행)
    • stream_name (52 행)
    • playback_url (54 행)

    이 필드의 값은 다음 단계에서 사용자의 응답에서 필요합니다.

Video Cloud 비디오 설정

이제 라이브 스트림 정보가 있으므로 Brightcove Player에서 재생할 수 있도록 Video Cloud에 원격 비디오를 설정합니다.

이 단계에서 우리는 CMS API ,하지만 원하는 경우 Video Cloud Studio에서도 수행 할 수 있습니다. 아래의 대체 단계 .

Insomnia 또는 Postman을 사용하는 경우 클라이언트 자격 증명을 사용하여 OAuth2 인증을 설정해야합니다. 도움이 필요하면 다음 가이드 중 하나를 참조하세요.

  1. 먼저 새로운 동영상을 만들어야합니다. POST요청 :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos
  2. 요청 본문에는 여러 메타 데이터가 포함될 수 있습니다 ( API 참조자세한 내용은 참조), 그러나 필요한 유일한 것은name :

    {
        "name": "some name for your live stream"
    }
  3. 응답에는 모든 동영상 메타 데이터가 포함되지만 중요한 필드는id , 원격 자산을 추가해야합니다.

  4. HLS 스트림을 추가하려면POST요청 :

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/hls_manifest
  5. 이번에 요청 본문은 다음과 같습니다.

    {
        "remote_url": "playback_url for your live stream"
    }

플레이어에 비디오 추가

이제 간단한 HTML 페이지를 만들고 방금 만든 비디오로 플레이어를 추가합니다.

  1. 간단한 HTML 페이지를 만들어 라이브 스트림 플레이어를 테스트합니다. 원하는 다른 콘텐츠를 포함하거나 전혀 포함하지 않을 수 있습니다.
  2. Studio Media Module에서 이전 단계에서 만든 비디오를 선택하고게시 및 포함> 웹 플레이어 :
    비디오 게시
    비디오 게시
  3. 게시 대화 상자에서 플레이어를 선택합니다 (Brightcove 기본 플레이어는 괜찮습니다).
    플레이어 선택
    플레이어 선택
  4. 아래로 스크롤하여 플레이어의 크기를 원하는대로 설정 한 다음 코드 블록을 클릭하여 표준 플레이어 코드를 선택합니다.이 코드를 복사하여 html 페이지 본문에 붙여 넣습니다.
    게시 코드 받기
    게시 코드 받기
  5. html 페이지를 검색 할 수 있도록 원격 또는 로컬 웹 서버에 저장합니다.
  6. 웹 브라우저에서 페이지를 엽니 다. 스트리밍을 시작하지 않았으므로 미디어 오류가 표시됩니다.
    미디어 오류
    미디어 오류

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에서 동영상을 만드는 대체 단계입니다.

  1. Video Cloud Studio에 로그인합니다.
  2. 미디어 모듈로 이동합니다.
  3. 왼쪽의 옵션에서원격 비디오 추가 :
    원격 비디오 메뉴 항목 추가
    원격 비디오 메뉴 항목 추가
  4. 에서원격 비디오 추가대화 상자에서 비디오 이름을 추가하고 값을 복사하여 붙여 넣습니다. playback_url Live API 응답에서 URL 필드로. 그런 다음변환 추가 , 및저장 :
    변환 추가 대화 상자
    변환 추가 대화 상자

Wirecast를 사용하여 이벤트 스트리밍

이 섹션에서는 라이브 스트리밍 이벤트를 지원하기 위해 Telestream Wirecast 인코더를 구성 및 사용합니다. Telestream Wirecast 소프트웨어는 카메라로부터 입력을 캡처하여 CDN에서 전달할 수 있는 스트림을 생성하는 데스크톱 애플리케이션입니다. 라이브 스트리밍 이벤트를 전달하는 데 더욱 적합할 수 있는 하드웨어 및 기타 소프트웨어 기반 인코딩 솔루션이 있을 수 있습니다. Telestream 웹사이트에서 Wirecast 소프트웨어 무료 평가판 버전을 다운로드할 수 있습니다.

참고: 계속하기 전에 컴퓨터에 Wirecast 소프트웨어가 설치되어 있고 카메라가 연결되어 있어야 합니다.

라이브 이벤트를 위해 Wirecast를 구성하려면 다음 단계를 따르십시오.

  1. Wirecast를 엽니다.
  2. 마우스를 +,딸깍 하는 소리캡처 장치그런 다음 카메라를 선택합니다.
    카메라 선택
    카메라 선택
  3. 화살표 버튼 ( ) 카메라가 라이브 샷으로 촬영되도록합니다.
    카메라 설정
    Wirecast 카메라 구성
  4. 스트림버튼 ( ) 을 클릭합니다. 출력 설정을 구성하라는 메시지가 표시됩니다.
  5. 대상RTMP 서버로 설정합니다. 확인을 클릭합니다.
  6. 에 대한주소 , 사용 stream_url Live API에서 반환됩니다 (3 단계).
  7. 에 대한흐름 , 살아 사용하십시오.
    출력 설정
    Wirecast 출력 설정
  8. (선택사항) 추가 출력 스트림을 생성하려면 추가...를 클릭합니다 추가 출력 스트림을 생성할 때 사용자는 고유한 사용자 정의 인코딩 프로파일을 생성하여 출력 비트레이트를 제어하려 할 수 있습니다. 스트림 이름에 새 비트레이트가 반영되었는지 확인합니다.
  9. 확인을 클릭하여 출력 설정을 저장합니다.
  10. 스트림버튼 ( ) 을 클릭합니다. 라이브 스트림이 시작되어야 합니다.

결론

이제 라이브 스트리밍 세션을 만들 준비가되었습니다. 인코더 구성에 다음을 추가해야합니다.

  • stream_url : 추가stream_url직장에서 ( rtmp주소)
  • stream_name : 스트림 이름은alive

라이브 스트림을 시작하면 이전 단계에서 만든 Brightcove 플레이어에 표시되어야합니다.