이 항목에서는 여러 언어로 된 여러 오디오 트랙을 사용하여 라이브 작업을 만드는 방법에 대해 설명합니다.
서문
이 기능을 사용하면 여러 오디오 언어, 설명 또는 주변 오디오 경험 트랙을 라이브 재생에 사용할 수 있습니다. Live API를 사용하여 여기의 단계를 따를 수 있습니다. Video Cloud Studio를 사용할 수도 있습니다. 자세한 내용은 라이브 모듈이 포함된 다국어 오디오 문서를 참조하십시오.
요구 사항
다국어 오디오 트랙에는 몇 가지 요구 사항이 있습니다.
계정 활성화
- 다국어 오디오 기능으로 Live API를 활성화하려면 고객 지원에 문의하십시오.
- Live API용 API 키가 있는지 확인하십시오(계정 설정 시 제공됨).
인코더 설정
- RTP 프로토콜을 지원하는 인코더를 사용하십시오. 다국어 오디오 지원은
rtp
or srt
프로토콜로 제한됩니다.
라이브 작업 생성
작업에 여러 오디오 트랙을 추가하려면 라이브 작업을 만들 때 요청 본문에 오디오 트랙 목록을 제공해야합니다.
Track
객체에 지원되는 필드
아래 표에는track
객체에서 지원되는 필드에 대한 전체 설명이 나와 있습니다.
트랙 필드
필드 |
유형 |
필수 |
설명 |
language |
끈 |
예 |
사용할 언어의 코드입니다. 현재 이것은 유연하며 사양에서 요구하거나 지원하는 다양한 언어 형식, 특히 요구 사항에 따라 ISO-639도 다루는 RFC5456/BCP47 일 수 있습니다.
HLS > LANGUAGE 필드
대쉬 > AdaptationSet:lang 필드
|
video_pid |
정수 |
예 |
비디오 트랙에 대한 MPEG-TS 입력 스트림의 패킷 식별자(PID) |
pid |
정수 |
예 |
특정 오디오 트랙에 대한 MPEG-TS 입력 스트림의 패킷 식별자(PID) |
default |
부울 |
예(기본 트랙의 경우) |
로 표시된 오디오 트랙DEFAULT 에서EXT-X-MEDIA 뿐만 아니라 비디오 스트림으로 다중화될 트랙
없는 경우 첫 번째 트랙이 기본값입니다.
여러 재생 목록이 서로 다른 기본값으로 정의된 경우 최상위 기본 트랙은 다중화된 트랙입니다.
|
label |
끈 |
|
가능한 경우 플레이어가 선호하는 트랙에 사용되는 텍스트 설명입니다. 사용: HLS > NAME 필드
기본값: 각 트랙에 ID가language 있는en-0 경우 (예: 지정되지 않은 경우)
|
variant |
열거형 |
|
DASH 역할 스키마 값에 매핑:
main
alternate
commentary
supplementary
dub
HLS > 형질
대시 > 역할urn:mpeg:dash:role:2011 .
기본값: main
|
streams [] |
배열 |
|
이는 재생목록 출력 유형의streams 필드를 모방합니다. 예: { “source”: “720p” } - 출력 소스의 레이블과 일치합니다.
없는 경우 기본 오디오 설정을 사용합니다.
HLS > GROUP-ID . (목적)
|
예
이 예제 본문은 2 개의 오디오 트랙이있는 작업을 만듭니다.
요청
요청 본문
샘플 응답
{
"id": "76f814fbcd7840e99ebf0e335c933730",
"outputs": [
{
"id": "0-76f814fbcd7840e99ebf0e335c933730",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-76f814fbcd7840e99ebf0e335c933730",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-76f814fbcd7840e99ebf0e335c933730",
"playlist_type": "defaultS3",
"type": "playlist",
"alternate_audio": {
"tracks": [
{
"label": "English",
"language": "en",
"name": "Alt0",
"pid": 257,
"playlistDefault": true,
"default": true,
"variant": "main",
"profile_sources": [
"profile_0"
]
},
{
"label": "Spanish",
"language": "es",
"name": "Alt1",
"pid": 258,
"playlistDefault": false,
"default": false,
"variant": "main",
"profile_sources": [
"profile_0"
]
}
]
},
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist_dvr.m3u8",
"playback_added_cdns": []
}
],
"stream_url": "rtp://ep3-usw2.a-live.io:11780",
"stream_name": "76f814fbcd7840e99ebf0e335c933730.stream",
"static": false,
"alternate_audio": {
"tracks": [
{
"label": "English",
"language": "en",
"pid": 257,
"default": true,
"variant": "main",
"name": "Alt0"
},
{
"label": "Spanish",
"language": "es",
"pid": 258,
"default": false,
"variant": "main",
"name": "Alt1"
}
]
},
"event_length": 93600,
"encryption": {},
"playback_url": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://playback-qa.a-live.io/76f814fbcd7840e99ebf0e335c933730/us-west-2/NA/playlist_dvr.m3u8",
"playback_added_cdns": []
}
RTP를 통해 MPEG-TS를 생성 응답에서 stream_url로 전달하도록 인코더를 구성합니다. 요청 본문에 제공된 오디오 트랙이 인코더에서 올바른 PID로 구성되어 있는지 확인합니다.
ffprobe를 사용한 예제
인코더의 PID를 모르는 경우 ffprobe(ffmpeg에 포함됨)와 같은 도구를 사용하여 스트림의 PID를 검사할 수 있습니다.
스트림 뒤의 16진수는 PID를 나타냅니다. 예:
0xff == 255
0x100 == 256
0x101 == 257
재생 테스트
playback_url을브라이트코브 플레이어또는 Safari에 로드하여 재생을 확인합니다.
DRM_Playback
현재 DRM은 Catch-up (timeshift) 서비스를 통해서만 지원됩니다. 작업 만들기 요청 본문에 다음 필드를 추가합니다.
응답에는timeshift_url
재생에 사용할 DRM 출력과 a가 포함됩니다.