서문
여러 오디오 트랙을 단일 제목과 연결하는 기능은 다음 두 가지 주요 시나리오에서 유용 할 수 있습니다.
- 전 세계적으로 더 광범위한 도달을 위해 동일한 비디오를 다른 언어로 재생
- 시각 장애인을위한 설명과 함께 오디오 제공
오디오 트랙 추가는 Studio에서도 수행 할 수 있습니다. 미디어 모듈을 사용하여 비디오에 오디오 트랙 추가상세 사항은.
지원되는 비디오 형식
여러 오디오 트랙이 지원됩니다. HLS V4+
과DASH
-유무에 관계없이DRM
보호.
샘플
다음은 여러 오디오 트랙이있는 비디오의 간단한 예입니다.
설정
설정Dynamic Ingest요청은 비디오, 이미지, 오디오 트랙, WebVTT파일 또는 다음 모두 :
- 요청 URL
-
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
- 인증
- 인증에는 액세스 토큰이
Bearer
토큰Authorization
머리글:Authorization: Bearer {access_token}
액세스 토큰을 얻으려면 다음이 필요합니다. 클라이언트 자격 증명 (아래 참조). 액세스 토큰을 얻는 프로세스는 다음을 참조하십시오. 액세스 토큰 받기 .
S3에 대한 참고 사항
소스 파일을 보호 된 S3 버킷에서 가져 오는 경우 허용하도록 버킷 정책을 설정해야합니다. Video Cloud파일에 액세스합니다. 보다사용Dynamic Ingest S3 사용자세한 내용은.
자격 증명 가져오기
client_id
및client_secret
를 얻으려면 OAuth UI로 이동하여 이 앱을 등록해야 합니다.
다음은 필요한 권한입니다.

다음을 통해 자격 증명을 얻을 수도 있습니다. CURL또는Postman - 보다:
API에서 직접 자격 증명을 얻는 경우 필요한 권한은 다음과 같습니다.
[
"video-cloud/video/all",
"video-cloud/ingest-profiles/profile/read",
"video-cloud/ingest-profiles/account/read",
"video-cloud/upload-urls/read"
]
작업 흐름
두 가지 주요 사용 사례가 있습니다.
- 여러 오디오 트랙이있는 새 비디오 수집
새로운 비디오 워크 플로우 - 기존 비디오에 여러 오디오 트랙 추가
기존 비디오 워크 플로
아래 섹션에서 API 요청에 대한 세부 정보를 살펴 보겠습니다.
오디오 트랙 메타 데이터
오디오 트랙에 연결된 일부 메타 데이터 필드가 있습니다.이 중 일부는 트랙을 수집 할 때 설정되고 다른 일부는Video Cloud . 이러한 필드 중 일부는 읽기 전용이고 다른 필드는 사용자가 업데이트 할 수 있습니다. 메타 데이터 필드는 관련 API 요청과 관련하여 아래에 자세히 설명되어 있지만, 두 가지 특정 필드는 Brightcove Player가 여러 오디오 트랙을 처리하는 방법을 결정하는 데 중요하므로 여기에 몇 가지 설명이 필요합니다.
language
그만큼language
수집 중에 각 트랙에 대해 설정된 필드는 트랙의 언어를 지정합니다. 트랙이 비디오에서 음성으로 더빙 된 경우 중요합니다. 이 필드의 값은 다음과 같은 두 글자 코드입니다. en
또는hi
. 언어 코드의 전체 목록은Subtag
값 http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
variant
그만큼variant
필드는 오디오 트랙의 종류를 설명합니다. 표준 의미로 가능한 값은 다음과 같습니다.
main
-메인 트랙, 일반적으로 비디오 파일에 다중화 된 트랙alternate
-대체 오디오 트랙commentary
-비디오 트랙에 대한 해설을 제공하는 오디오 트랙dub
-다른 언어로 된 더빙 버전의 음성 단어가 포함 된 트랙descriptive
-트랙은 어떤 방식 으로든 동영상 콘텐츠를 설명합니다.
계정 기본값
다음에 대한 계정 기본값을 설정할 수 있습니다. language
과variant
Brightcove Player에서 기본으로 처리 할 오디오 트랙을 결정합니다 (아래 섹션에서 볼 수 있듯이 트랙 메타 데이터를 업데이트하여 기본값을 재정의 할 수도 있음). 계정에 대한 기본값을 설정하려면 Brightcove 지원에 문의 .
오디오 트랙 수집
이제 앞에서 설명한 두 가지 사용 사례에 대한 오디오 트랙을 수집하기위한 API 호출을 살펴 보겠습니다.
여러 오디오 트랙이있는 새 비디오
비디오 개체 ( CMS API )
- 비디오 개체를 만들 때 비디오 메타 데이터의 여러 항목을 추가 할 수 있지만 여기서는 최소값 만 추가합니다.
name
비디오 :{ "name": "YOUR_VIDEO_NAME" }
- 위의 JSON (자리 표시 자 텍스트가 동영상 이름으로 대체 됨)을 요청 본문으로 제출합니다.
POST
에 요청https://cms.api.brightcove.com/v1/accounts/YOUR_ACCOUNT_ID/videos
- 응답에서 많은 비디오 메타 데이터를 얻을 수 있지만 여기서 중요한 부분은
id
(동영상 ID)는 다음 단계에 필요합니다.
비디오 및 오디오 트랙 수집
다음으로 비디오 및 오디오 트랙을 수집합니다 (이미지 및 텍스트 트랙과 같은 다른 자산을 추가 할 수 있지만 여기서는 간단하게 유지하겠습니다). 약간 혼란 스러울 수있는 한 가지는audio_tracks
요청 본문의 JSON에 두 번 나타납니다.
- 안
audio_tracks
내 개체master
객체는 비디오 파일에 포함 된 오디오 트랙에 대한 메타 데이터를 포함합니다 (있는 경우-오디오에서 muxed라고도 함). 여기에는 오디오 트랙이 이미 포함되어 있으므로 오디오 파일에 대한 URL없이 메타 데이터 만 포함됩니다. 비디오 파일 - 최상위
audio_tracks
수집중인 추가 오디오 트랙을 설명하는 개체-여기에는 오디오 파일의 URL과 기타 메타 데이터가 포함됩니다.
- 요청 본문에 보낼 JSON 데이터는 다음과 같습니다.
{ "master": { "url": "https://learning-services-media.brightcove.com/videos/Great_Blue_Heron.mp4", "audio_tracks": [ { "language": "en", "variant": "main" } ] }, "audio_tracks": { "merge_with_existing": true, "masters": [ { "url": "http://learning-services-media.brightcove.com/audio/celtic_lullaby.m4a", "language": "en", "variant": "alternate" }, { "url": "http://learning-services-media.brightcove.com/audio/audio1.m4a", "language": "en", "variant": "commentary" } ] }, "profile": "BoltIngestProfile", "capture-images": true, "callbacks": [ "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php" ] }
- 위의 JSON을 전송하고 자리 표시자를 자신의 URL로 대체하고
language
과variant
값,POST
에 요청https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/ID/ingest-requests
(그만큼ID
다음은 비디오 객체 생성 요청에서 반환 된 비디오 ID입니다.)
기존 비디오에 오디오 트랙 추가
기존 비디오에 추가 오디오 트랙을 추가하려면 절차는 동일합니다. 단, CMS API이미 존재하기 때문입니다. 그리고 요청에Dynamic Ingest API를 사용하는 경우 동영상 파일의 URL을 포함하거나audio_tracks
아래에master
다중 오디오에 대한 메타 데이터를 제공합니다. 그러나 기존 비디오의 오디오 트랙에 muxed에 대한 메타 데이터를 포함하려고합니다. 따라서 수집 요청에 대한 JSON은 다음과 같습니다.
{
"audio_tracks": {
"merge_with_existing": true,
"masters": [
{
"url": "http://learning-services-media.brightcove.com/audio/celtic_lullaby.m4a",
"language": "en",
"variant": "alternate"
},
{
"url": "http://learning-services-media.brightcove.com/audio/audio1.m4a",
"language": "en",
"variant": "commentary"
}
]
},
"profile": "BoltIngestProfile",
"capture-images": true,
"callbacks": [
"http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
]
}
수집을위한 오디오 트랙 필드
필드 | 유형 | 설명 |
---|---|---|
master.audio_tracks |
객체 [] | 다중 오디오에 대한 메타 데이터 |
master.audio_tracks.language |
문자열 | 하위 태그의 오디오 다중화에 대한 언어 코드 http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
master.audio_tracks.variant |
문자열 | 오디오 트랙의 종류 : main | alternate | dub | commentary | descriptive ( main 일반적으로 오디오에서 muxed에 사용됨) |
audio_tracks |
객체 | 추가 오디오 트랙에 대한 정보 |
audio_tracks.merge_with_existing |
부울 | 이 트랙을 기존 트랙에 병합해야하는지 교체해야하는지 여부 |
audio_tracks.masters |
객체 [] | 개별 오디오 트랙에 대한 정보 |
audio_tracks.masters.url |
문자열 | 오디오 트랙 파일의 URL |
audio_tracks.masters.language |
문자열 | 하위 태그의 오디오 트랙에 대한 언어 코드 http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
audio_tracks.masters.variant |
문자열 | 오디오 트랙의 종류 : main | alternate | dub | commentary | descriptive ( main 일반적으로 오디오에서 muxed에 사용됨) |
알림
하나 이상을 지정하는 경우콜백 URL (위의 수집 요청에 대한 샘플 JSON 참조), Video Cloud수집 한 각 오디오 트랙에 대한 알림을 보냅니다. 알림은 다음과 같이 표시됩니다.
{
"entity": "default/audio128",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "0f703adb-0f17-4a35-8395-21c7fcdd2649",
"videoId": "5298468208001",
"dynamicRenditionId": "default/audio128",
"accountId": "1910141565001",
"status": "SUCCESS",
"language" : "en",
"variant" : "alternate"
}
오디오 트랙에 대한 알림을 식별하려면language
과variant
알림의 필드. 그만큼"action": "CREATE"
과"status": "SUCCESS"
필드는 트랙이 성공적으로 수집되었음을 나타냅니다.
오디오 트랙 관리
오디오 트랙을 수집 한 후에는CMS API .
비디오에 대한 모든 오디오 트랙 메타 데이터 가져 오기
비디오와 관련된 모든 오디오 트랙의 메타 데이터를 검색하려면GET
요청 :
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks
응답은 각 오디오 트랙에 대한 메타 데이터를 포함하는 개체의 배열입니다. 자세한 내용은 아래 응답 필드 표를 참조하십시오.
[
{
"id": "en_alternate",
"language": "en",
"variant": "alternate",
"duration": 86100,
"encoding_rates": [
64000,
96000,
127000
]
},
{
"id": "en_commentary",
"language": "en",
"variant": "commentary",
"duration": 34203,
"encoding_rates": [
10000,
13000,
15000
]
},
{
"id": "en_main",
"language": "en",
"variant": "main",
"duration": 31488,
"encoding_rates": [
62000,
94000,
125000
]
}
]
미디어 모듈에서 비디오를보고 Studio에서이 정보를 볼 수도 있습니다.

하나의 오디오 트랙에 대한 메타 데이터 가져 오기
비디오와 연결된 하나의 오디오 트랙에 대한 메타 데이터를 검색하려면GET
요청 :
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
응답은 각 오디오 트랙에 대한 메타 데이터가 포함 된 개체입니다. 자세한 내용은 아래 응답 필드 표를 참조하십시오.
오디오 트랙 메타 데이터 업데이트
오디오 트랙에 대한 쓰기 가능한 메타 데이터 필드를 업데이트 할 수 있습니다. PATCH
요청 :
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
요청 본문에 수정하려는 필드를 포함합니다. 예를 들면 다음과 같습니다.
{
"language": "es",
"is_default": true
}
오디오 트랙 삭제
오디오 트랙을 삭제하려면 다음 주소로 DELETE 요청을 보내십시오.
https://cms.api.brightcove.com/v1/accounts/account_id/videos/video id/audio_tracks/audio_track_id
삭제 프로세스가 비동기적이고 즉시 완료되지 않을 수 있기 때문에 성공 응답 코드는 204 (콘텐츠 없음)가 아닌 202 (수락 됨) 일 수 있습니다.
필드 | 유형 | 읽기 전용 | 설명 |
---|---|---|---|
id |
문자열 | 예 | 트랙에 대한 이드, 다음과 같이 형성됨 language_variant -이 값이 변경되면 ID가 변경 될 수 있습니다. |
language |
문자열 | 아니요 | 하위 태그의 오디오 트랙에 대한 언어 코드 http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |
variant |
문자열 | 아니요 | 오디오 트랙의 종류 : main | alternate | dub | commentary | descriptive ( main 일반적으로 오디오에서 muxed에 사용됨) |
duration |
번호 | 예 | 밀리 초 단위의 트랙 길이 |
encoding_rates |
번호[] | 예 | 이 트랙의 사용 가능한 인코딩 목록 (bps) |
is_default |
부울 | 아니요 | true 인 경우 재생을위한 기본 트랙이 사용됩니다 (계정 수준 기본값 재정의). |
재생
Brightcove 웹 및 SDK 플레이어가 여러 오디오 트랙을 처리하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
알려진 문제
- 오디오 마스터가 저장되지 않음
-
- Video Cloud의지아니오디오 마스터 저장
- 비디오 마스터에서 비디오를 다시 트랜스 코딩하면 추가 오디오 트랙이 손실되며 다음을 사용하여 다시 추가해야합니다. 기존 비디오에 오디오 트랙 추가위에서 설명한 방법
- 오디오 전용 파일을 사용해야 합니다.
- 오디오 트랙은 비디오 트랙이 없는 오디오 전용 파일이어야 합니다.
HLSv3
,HLS
동일한 세그먼트에 오디오 및 비디오 포함-
- 재생 API가 반환되지 않습니다.
HLSv3
매니페스트 - 모두
HLS
매니페스트에는 다중화 해제 된 비디오 / 오디오가 포함됩니다.
- 재생 API가 반환되지 않습니다.
- 원활한 스트리밍
- 부드러운 스트리밍 URL은 사용할 수 없습니다.
- 소셜 배포
- 배포에 사용할 오디오 트랙을 선택할 수 없습니다. 비디오 소스에 포함 된 트랙 (오디오에 muxed) 은 항상 사용됩니다.
- Studio
-
- Studio는 오디오 트랙에 대한 정보를 표시합니다.
- Studio를 사용하여 오디오 트랙을 추가하려면여러 오디오 트랙
- 하나의 “기본” 트랙을 넘어서 오디오 트랙 순서 지정
-
- 다음을 사용하여 기본 오디오 트랙을 선택할 수 있습니다. CMS API설정하여 제목 당
is_default
필드에true
- 지원에서 설정할 수 있는 계정 기본값도 있습니다.
- 이것은 HLS 매니페스트의 “기본”트랙에만 영향을 미칩니다.
- 다른 주문은 할 수 없습니다
- 다음을 사용하여 기본 오디오 트랙을 선택할 수 있습니다. CMS API설정하여 제목 당
- 단일 소스에서 두 개 이상의 오디오 트랙 수집
- 우리는수집 된 소스 당 하나의 오디오 트랙 . 각 오디오 트랙은 별도로 수집되어야합니다.
- 오디오만 포함된 비디오에 대한 DRM 보호
- 비디오 트랙이 추가되는 즉시 DRM 보호가 활성화됩니다.
- 최종 사용자 친화적 라벨
- 오디오 트랙에 대한 사용자 지정 레이블은 지원하지 않습니다. 필요한 경우 Player API를 통해 클라이언트 측에서 변경해야합니다.
- 경우에 따라 트랙을 전환하면 브라이트코브 플레이어가 불안정해질 수 있습니다.
-
- 모든 오디오 세그먼트가 다운로드되기 전에 트랙 전환
- Silverlight 플러그인을 사용하여 비디오를 재생하는 경우 (IE 10 미만 버전 또는 IE 버전 8 미만 버전)-여러 오디오 트랙이아니 Silverlight에서 지원됩니다.
- 오디오와 비디오의 지속 시간이 다르면 짧은 시간이 다 떨어질 때마다 플레이어가 멈출 수 있습니다.
- 비디오 "
duration
" - 비디오
duration
오디오 트랙의 길이가 다른 경우 카탈로그 / 재생 API에서보고 한 내용이 올바르지 않을 수 있습니다.