최신 업데이트:2022-04-15 07:44:45
오늘날 라이브의 동질화 경쟁에서 벗어나기가 점점 더 어려워지고 있습니다. 라이브 플랫폼은 여전히 새로운 기능에 집중하고 있지만 라이브 콘텐츠의 재활용에도 더 중요시하고 있습니다. 일부 고객은 스트리머 룸의 시청률을 유지하기 위해 특히 대형 스포츠 경기에 대해 순환 방송을 희망하고 있습니다. 이를 위해 CDNetworks는 VoD 기능을 출시하여 녹화된 파일을 라이브룸으로 스트리밍해 볼 수 있도록 합니다.
VoD 스트림은 서비스 PoP는 고객이 지정한 비디오(Video-on-Demand) 파일을 순환 순서나 순차 순서로 요청하고 파일 콘텐츠 스트림을 고객이 지정한 주소로 푸시하는 것입니다. 고객 편의를 위해 CDNetworks는 연결 API를 제공합니다.
API는 접근 권한을 제어할 수 있고 계정이 CDNW 서비스를 활성화하고 특정 규칙에 따라 매개 변수를 입력할 때만 올바르게 호출될 수 있습니다. 접근 제어 정책은 n, r, k의 세 가지 매개 변수로 정의되며 상세한 설명은 다음과 같습니다:
n: 기본적으로 포털 계정 이름으로 설정됩니다
r: 유일한 임의 문자열; 최대 10개 문자부호; 권장 사용 타임스탬프.
k: md5 검증 값.
MD5 계산법은 다음과 같습니다: k = md5(r+key), 로운 문자열이 MD5에 의해 해시되어 새로운 값 k로 전환됩니다.
참고: 키는 서비스 담당자에게서 받을 수 있습니다.
예시:
1.신청 후의 키=012f37a3f2952
2.랜덤 문자열r=1409284800이 생성됩니다
3.변합하여 새 문자열 Merge and generate a new character string=1409284800012f37a3f2952가 생성됩니다.
4. 새로운 문자열을 MD5로 계산하여 k 값을 획득합니다: b9fed80be752551834eec3e52fa94115
실시간 VoD 스트리밍
API를 호출하여 VoD 스트리밍을 즉시 시작/종료합니다.
API:
http://livect.ossin.cdnetworks.com/api/cdn/v2/forwardRequest.action(아시아 지역 사용);
http://livect.osame.cdnetworks.com/api/cdn/v2/forwardRequest.action(유럽과 미국 지역 사용)
호출 방법: OST
HTTP 헤더: 컨텐츠 유형: application/json
본문 콘텐츠:
VoD 스트리밍 시작
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/abc.mp4"
},
{
"url": "http://www.video.com/live/1.flv",
"absofftime": "20181022153000-20181022155000"
},
{
"url": "http://www.video.com/live/2.mp4",
"relofftime": "300-500"
}
],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
},
{
"url": "rtmp://www.push2.com/live/test2"
}
],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0"
}
}]
}
참고: VoD 스트리밍이 시작되면 서비스 PoP 서버는 순환 순서로 VoD 파일을 읽습니다. 사용자가 호출 인터페이스로 VoD 작업을 종료하면 VOD 스트리밍 작업이 종료됩니다.
VoD 스트리밍 종료
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "2",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": ""
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}]
}]
}
본문 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
transcallbackurl | 문자열 | 콜백 주소 | 아니오 | |
cmd | 문자열 | VoD 스트리밍 명령 | 예 | cmd=1 start VoD streaming;cmd=2 terminate VoD streaming;cmd=3 update file list;cmd=5 Playback resuming |
type | 문자열 | VoD 스트리밍 유형 | 예 | Fill in a fixed value, type = video |
list | 리스트 | 푸시 스트림 목록 | 예 |
리스트 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
id | 문자열 | 고객의 작업 식별 (ID) | 예 | The unique task identification (ID). When there is the same ID existed, end the previous task first and then start VoD streaming |
src | 리스트 | 풀 스트림 정보 | 예 | Please refer to the src parameter specification list below |
forward | 리스트 | VoD 스트리밍 정보 | 예 | Please refer to forward specification list below |
extendParam | 배열 | 확장 매개 변수 | 아니오 | Please refer to extendParam parameter specification |
src 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
url | 문자열 | VoD 파일 주소입니다 | 예 | Support filling in multiple VoD file addresses, supports video file formats of flv, mp4, m3u8, but the m3u8file referencing to other m3u8 is not supported. |
absofftime | 문자열 | VoD 스트리밍 시간 범위입니다, VoD 스트리밍 시간이 하나 이상일 경우 세미콜론 ";"을 사용하여 구분합니다 | 아니오 | Time range when the content is read at VoD streaming, for example: 20181022153000-20181022155000, yyyymmddHHMMSS format. Priority of time is relofftime> absofftime. |
relofftime | 문자열 | VoD 스트리밍 시간 범위입니다, VoD 스트리밍 시간이 하나 이상일 경우 세미콜론 ";"을 사용하여 구분합니다 | 아니오 | The unit is second |
전송 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
url | 문자열 | 푸시 스트림주소입니다 | 예 | This field supports filling in multiple VoD-streaming addresses, and only rtmp stream pushing is supported |
확장 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
loop | 인터럽트 | 파일 순환 개수입니다 | 아니오 | Loop counts of VoD files. When there are multiple VoD files in src, play them in sequential order and then in loop order |
index | 인터럽트 | 파일 읽은 순서입니다 | 아니오 | When there are multiple files in src, start VoD file streaming from the first file by default. |
callBackFileInfo | 인터럽트 | VoD 스트리밍 파일 정보를 매번 호출 여부입니다 | 아니오 | 0 means no need to call back the info of VOD streaming file every time; 1 is to call back the info of VOD streaming file every time; the default set is 0 |
VoD 스트리밍 시간 제한
API를 호출하여 VoD 스트리밍의 시작/종료 시간 설정을 하고 설정된 시간에 VoD 스트리밍을 시작/종료합니다.
API:
http://livect.ossin.cdnetworks.com/api/cdn/v2/forwardRequest.action(아시아 지역 사용);
http://livect.osame.cdnetworks.com/api/cdn/v2/forwardRequest.action(유럽과 미국 지역 사용)
호출 방법:POST
HTTP 헤더: 콘텐츠 유형:application/json
본문 콘텐츠:
시간 만료
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/abc.mp4"
}, {
"url": "http://www.video.com/live/1.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/2.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0"
},
"start": "1540216800000",
"end": "1540220400000"
}]
}
참고: 설정된 시간에 VoD 스트리밍을 시작하면 서비스 PoP 서버는 순환 순서로 VoD 파일을 읽습니다. VoD 스트리밍은 설정된 종료 시간에 혹은 사용자가 작업을 종료하여 인터페이스를 호출할 때 종료됩니다.
본문 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
transcallbackurl | 문자열 | 콜백 주소입니다 | 아니오 | |
cmd | 문자열 | VoD 스트리밍 명령입니다 | 예 | cmd=1 start VoD streaming;cmd=2 terminate VoD streaming;cmd=3 update file list;cmd=5 Playback resuming |
type | 문자열 | VoD 스트리밍 유형입니다 | 예 | Fill in a fixed value, type = video |
list | 리스트 | 푸시 스트림 목록입니다 | 예 |
리스트 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
id | 문자열 | 고객의 작업 식별(ID)입니다 | 예 | The unique task identification (ID). When there is the same ID existed, end the previous task first and then start VoD streaming |
src | 리스트 | 풀 스트림 정보입니다 | 예 | Please refer to the src parameter specification list below |
forward | 리스트 | VoD 스트리밍 정보입니다 | 예 | Please refer to forward specification list below |
start | 인터럽트 | VoD 스트리밍을 시작할 시간입니다 | 예 | 13-digit unix timestamp: when start is less than the current time, start VOD streaming at the current time immediately |
end | 인터럽트 | VoD 스트리밍 종료 시간입니다 | 예 | 13-digit unix timestamp: end must more than 5 minutes later than start and the current time |
extendParam | 배열 | 확장 매개 변수 | 아니오 | Please refer to extendParam parameter specification |
src 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
url | 문자열 | VoD 파일 주소입니다 | 예 | Support filling in multiple VoD file addresses, supports video file formats of flv, mp4, m3u8, but the m3u8file referencing to other m3u8 is not supported. |
absofftime | 문자열 | VoD 스트리밍 시간 범위입니다, VoD 스트리밍 시간이 하나 이상일 경우 세미콜론 ";"을 사용하여 구분합니다 | 아니오 | Time range when the content is read at VoD streaming, for example: 20181022153000-20181022155000, yyyymmddHHMMSS format. Priority of time is relofftime> absofftime. |
relofftime | 문자열 | VoD 스트리밍 시간 범위입니다, VoD 스트리밍 시간이 하나 이상일 경우 세미콜론 ";"을 사용하여 구분합니다 | 아니오 | The unit is second; time priority is end>relofftime |
전송 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
url | 문자열 | 푸시 스트림 주소입니다 | 예 | Supports filling in multiple VoD-streaming addresses, and only rtmp stream pushing is supported |
확장 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
loop | 인터럽트 | 파일 순환 개수입니다 | 아니오 | Loop counts of VoD files. When there are multiple VoD files in src, play them in sequential order and then in loop order Priority level: end>loop |
index | 인터럽트 | 파일 읽은 순서입니다 | 아니오 | When there are multiple files in src, start VoD file streaming from the first file by default. |
callBackFileInfo | 인터럽트 | VoD 스트리밍 파일 저보를 매번 호출 여부입니다 | 아니오 | 0 means no need to call back the info of VOD streaming file every time; 1 is to call back the info of VOD streaming file every time; the default set is 0 |
시간 종료
정시 VoD 스트리밍이 설정된 후 종료 시간 전에 VoD 스트리밍 종료 명령을 호출하여 작업을 종료합니다. VoD 스트리밍 종료 명령에 시작 및 종료 매개 변수를 포함할 수 없습니다.
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "2",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": ""
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}]
}]
}
파일 업데이트
VoD 스트리밍 과정에서 인터페이스를 통해 VoD 파일을 업데이트할 수 있습니다. 그 다음에 업데이트된 파일을 사용하여 VoD 스트리밍을 시행합니다. 본문 콘텐츠:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "3",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"extendParam": {
"loop": "1",
"index": "1",
"callBackFileInfo": "0",
"waitCrtUrlFinish": "0"
}
}]
}
본문 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
cmd | 문자열 | VoD 스트리밍 명령 | 예 | cmd=3 update file list; |
확장 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
waitCrtUrlFinish | 인터럽트 | 파일 업데이트 후 즉시 적용 여부입니다 | 아니오 | 0 demonstrates that the file takes effect immediately, i.e.streaming the updated files; 1 demonstrates that the file takes effect after the current VOD streaming task ends,i.e. streaming the updated files after the current task ends. Default set is 0. |
참고:
재생 복구
VoD 스트리밍 종료 명령을 호출하여 VoD 스트리밍을 종료하면 시스템이 현재 파일의 재생 시간(유효기간 48시간)을 기록합니다. 인터페이스가 호출되어 재생을 복구하면 VoD 스트리밍 PoP가 마지막 종료 시간부터 복구됩니다.
본문 콘텐츠:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "5",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2",
"resetUrl": "rtmp://www.push3.com/live/test3"
}]
}]
}
본문 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
cmd | 문자열 | VoD 스트리밍 명령 | 예 | cmd=5 playback resuming |
확장 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
resetUrl | 문자열 | VoD 스트리밍 주소 변경 | 아니오 | Change to which push-stream address when resuming playback, no changes by default |
참고:
트랜스코딩 또는 워터마킹
인터페이스를 통해 VoD 스트리밍을 구현합니다. 트랜스코딩과 워터마킹 매개 변수를 추가한 후 인터페이스를 통해 VoD 스트리밍의 트랜스코딩과 워터마킹을 지원됩니다.
본문 콘텐츠:
{
"transcallbackurl": "http://www.callback.com/api",
"cmd": "1",
"type": "video",
"list": [{
"id": "123",
"src": [{
"url": "http://www.video.com/live/d.mp4",
"wmimage": "http://ws.test.com/live/picture1.jpg",
"wmposition": "TOP_LEFT"
}, {
"url": "http://www.video.com/live/3.flv",
"absofftime": "20181022153000-20181022155000"
}, {
"url": "http://www.video.com/live/4.mp4",
"relofftime": "300-500"
}],
"forward": [{
"url": "rtmp://www.push1.com/live/test"
}, {
"url": "rtmp://www.push2.com/live/test2"
}],
"fops": {
"bps": "1200",
"res": "25",
"fps": "1280x640",
"vcodec": "libx265",
"acodec": "libmp3lame"
}
}]
}
리스트 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
fops | 배열 | 인코딩 매개변수 |
fops 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
bps | 문자열 | 비트레이트(bps) | 아니오 | 1200 |
res | 문자열 | 해상도 | 아니오 | 420x720 (the inline “x” is the low case letter “x”) |
fps | 문자열 | 프레임 레이트(fps) | 아니오 | 25 |
vcodec | 문자열 | 비디오 인코딩 방안 | 아니오 | Libx264, supported schemes: libx264, libx265, libvpx, etc. The filling is fixed to libx264 when watermarking is required |
acodec | 문자열 | 오디오 인코딩 방안 | 아니오 | Libfaac, support schemes: libmp3lame, libfaac, libvorbis, etc. |
src 매개 변수 규격
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 | 예시 |
---|---|---|---|---|
wmimage | 문자열 | 워터마크 이미지의 Url 주소 | 아니오 | If there is & in url, then url character escaping is needed |
wmposition | 문자열 | 워터마크 위치 | 아니오 | TOP_LEFT top left corner; TOP_CENTER top center; TOP_RIGHT top right corner; CENTER_LEFT center left; CENTER center; CENTER_RIGHT center right; BOTTOM_LEFT Bottom left corner; BOTTOM_CENTER Bottom center; BOTTOM_RIGHT Bottom right corner. |
참고: 트랜스코딩 및 워터마킹 명령에 기타 매개 변수는 상기 매개 변수 설명을 참고하십시오
인터페이스 응답 정보
{
"http_code": "200",
"msg": "receive task success!",
"call_time": 1479952114000
}
반환 상태 코드 규격:
200: 인터페이스 호출 성공;
400: 요청 매개 변수 오류(예를 들어 매개 변수 누락, 시간 형식 오류 등)
403: 요청 권한 없음;
VoD 스트리밍의 콜백 정보
{
"msg": "Start pushing!",
"code": "0",
"srcurl": "[{\"url\":\"http://www.video.com/live/abc.mp4\"}]",
"cmd": "1",
"id": "124",
"forwardurl": "rtmp://www.push1.com/live/test"
}
필드 이름 | 필드 유형 | 필드 의미 | 필수 필드 |
---|---|---|---|
id | 문자열 | 고객 작업 식별(ID)입니다 | Customer ID will show in the callback info if there is |
srcurl | 문자열 | 풀 스트림 정보 목록 | |
forwardurl | 문자열 | VoD 스트리밍 정보 목록입니다 | |
cmd | 문자열 | VoD 스트리밍 명령입니다 | cmd=1 start VOD streaming; cmd=2 terminate VOD streaming |
code | 문자열 | VoD 스트리밍 결과입니다 | 0: success; 1: failure; 2: warning |
msg | 문자열 | 콜백 정보입니다 |
참고: VoD 스트리밍 콜백 후, 피어 인터페이스 서버는 200의 상태 코드와 본문 콘텐츠를 반환합니다. 본문 콘텐츠가 상세하지 않을 수 있으나, 비워 둘 수 없습니다.