VAS_VoD Streaming

최신 업데이트:2022-04-15 07:44:45

1 VAS 소개

1.1 개요

오늘날 라이브의 동질화 경쟁에서 벗어나기가 점점 더 어려워지고 있습니다. 라이브 플랫폼은 여전히 새로운 기능에 집중하고 있지만 라이브 콘텐츠의 재활용에도 더 중요시하고 있습니다. 일부 고객은 스트리머 룸의 시청률을 유지하기 위해 특히 대형 스포츠 경기에 대해 순환 방송을 희망하고 있습니다. 이를 위해 CDNetworks는 VoD 기능을 출시하여 녹화된 파일을 라이브룸으로 스트리밍해 볼 수 있도록 합니다.

1.2 해당 제품 라인

  • 미디어 가속 라이브 방송

1.3 애플리케이션 시나리오

  • 극장 및 TV 프로그램 재생과 동일한 수준으로 운행합니다.
  • 이벤트 종료 후 재생으로 이벤트의 영향을 확대합니다.
  • 시청률을 유지하기 위해 앵커가 없이 라이브룸에서 이전 라이브 스트리밍 콘텐츠를 루프 재생합니다.

2 VAS 상세 정보

2.1 사용 설명

VoD 스트림은 서비스 PoP는 고객이 지정한 비디오(Video-on-Demand) 파일을 순환 순서나 순차 순서로 요청하고 파일 콘텐츠 스트림을 고객이 지정한 주소로 푸시하는 것입니다. 고객 편의를 위해 CDNetworks는 연결 API를 제공합니다.

API는 접근 권한을 제어할 수 있고 계정이 CDNW 서비스를 활성화하고 특정 규칙에 따라 매개 변수를 입력할 때만 올바르게 호출될 수 있습니다. 접근 제어 정책은 n, r, k의 세 가지 매개 변수로 정의되며 상세한 설명은 다음과 같습니다:

  1. n: 기본적으로 포털 계정 이름으로 설정됩니다

  2. r: 유일한 임의 문자열; 최대 10개 문자부호; 권장 사용 타임스탬프.

  3. 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.

참고:

  1. 파일 업데이트 명령에 기타 매개 변수는 상기 매개 변수 설명을 참고하십시오.
  2. VoD 스트리밍이 시작되기 전에 파일 목록이 업데이트되면 업데이트된 파일로 VoD 스트리밍을 시행합니다.

재생 복구
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

참고:

  1. 재생 복구 명령에 기타 매개 변수는 상기 매개 변수 설명을 참고하십시오.
  2. VOD 스트리밍이 자동적으로 종료되어 재생이 복구되는 경우 cmd=2의 "종료"가 아닌 cmd=1의 경우입니다.
  3. 재생 복구 명령은 fops 및 extendParam 매개 변수를 지원하지 않으므로 재생 복구 파일에서 트랜스코딩을 할 수 없습니다.
  4. 재생 복구 시간 기록의 유효 기간은 48시간이고 즉 파일이 48시간 이후 재생 복구할 수 없는 것을 의미합니다.

트랜스코딩 또는 워터마킹
인터페이스를 통해 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의 상태 코드와 본문 콘텐츠를 반환합니다. 본문 콘텐츠가 상세하지 않을 수 있으나, 비워 둘 수 없습니다.

3 참고

  1. 여러 VoD 파일 주소를 설정할 수 있고 여러 스트림을 지원합니다.
  2. VoD 스트리밍에서 트랜스코딩을 사용할 경우 bps, res, fps 등 트랜스코딩 매개 변수가 설정되어 있으면 해당 vcodec 매개 변수를 입력해야 하는 것을 의미합니다.
  3. VoD 파일 또는 푸시 스트림을 가져오는 시간이 초과되면 서버가 다시 시도할 것입니다. 시간 초과 대기 시간은 기본적으로 10S이고 재시도 횟수는 3번입니다.
  4. 특정 VoD 스트리밍 작업을 종료할 필요가 있을 때 작업에서 ID 및 forward 매개 변수는 VoD 스트리밍 시작 명령의 매개 변수와 일치해야 합니다. 예를 들어 ID가 123이고 VoD 스트리밍 주소가 A이면 ID는 123이고 스트리밍 종료 때의 주소는 A입니다. VoD 스트리밍 주소가 여러 경우 하나 혹은 이상의 주소에 대해 작업을 종료할 수 있습니다.
  5. 인터페이스 호출에 대한 입력 값인 src 및 forward는 인용 부호가 없는 ArrayList 형식입니다. 콜백의 srcul 및 forwardurl 응답 값은 인용 부호가 있는 문자열 형식입니다.
이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.