개요
미소파일은 멀티미디어 프리젠 테이션을 설명하는 데 사용되는 특수 형식의 XML 문서입니다. Highwinds는 SMIL의 하위 집합을 사용하여 적응 형 스트리밍을 활성화합니다.
SMIL 및 Zencoder
다음은 다중 비트 전송률로 인코딩 된 비디오를 설명하는 Highwinds SMIL 파일의 예입니다. 제공된 모든 경로 ( "src")는 SMIL이 제공되는 위치에 상대적이며 모든 비트 전송률 ( "system-bitrate")은 초당 비트 수 (bps)입니다.
<smil>
<head>
</head>
<body>
<switch>
<video src="mp4:rel/path/file-440k.mp4"
system-bitrate="440000" width="720" height="406" />
<video src="mp4:rel/path/file-640k.mp4"
system-bitrate="640000" width="854" height="480" />
<video src="mp4:rel/path/file-240k.mp4"
system-bitrate="240000" width="640" height="360" />
<video src="mp4:rel/path/file-150k.mp4"
system-bitrate="150000" width="320" height="180" />
<video src="mp4:rel/path/file-64k.mp4"
system-bitrate="64000"/>
</switch>
</body>
</smil>
마다<video>
위의 예에서 태그는 사용자에게 제공 할 수있는 별도의 스트림을 나타냅니다. 나열된 첫 번째 비디오는 사용 가능한 대역폭이 결정될 때까지 사용자에게 스트리밍되며, 이때 사용자는 적절한 스트림으로 전환됩니다.
Zencoder로 Highwinds SMIL 재생 목록을 만드는 것은 쉽습니다.
{
"api_key": "asdf1234",
"input": "s3://my-bucket/input/file.mov",
"outputs": [
{
"type": "playlist",
"format": "highwinds",
"url": "s3://my-bucket/output/file.smil",
"streams": [
{
"path": "rel/path/file-440k.mp4",
"bandwidth": "440",
"width": 720,
"height": 406
},
{
"path": "rel/path/file-640k.mp4",
"bandwidth": "640",
"width": 854,
"height": 480
},
{
"path": "rel/path/file-240k.mp4",
"bandwidth": "240",
"width": 640,
"height": 360
},
{
"path": "rel/path/file-150k.mp4",
"bandwidth": "150",
"width": 320,
"height": 180
},
{
"path": "rel/path/file-64k.mp4",
"bandwidth": "64"
}
]
}
]
}
이렇게 할 때 재생 목록이 아닌 출력도 포함해야합니다.
- "type"은 "playlist"여야합니다.
- "형식"은 "고풍"이어야합니다.
- "url"(또는 "filename")은 "smil"확장자를 가져야합니다.
- "streams"는 각각 "bandwidth"및 "path"키가있는 JSON 개체의 배열이어야합니다.
- "path"는 서버에서 제공 할 mp4 파일의 상대 경로 여야합니다 (SMIL 파일에 나타나는 선행 "mp4 :"는 포함되지 않음).
- "대역폭"은 SMIL 파일을 만들 때 bps로 변환 할 파일의 비트 전송률 (kbps)이어야합니다.
- "width"는 선택 사항이며 파일의 수평 해상도를 지정해야합니다.
- "height"는 선택 사항이며 파일의 수직 해상도를 지정해야합니다.
재생 목록에서 참조하는 비디오는 재생 목록을 생성하는 작업과 별도로 만들거나 동일한 작업에 대한 추가 출력으로 만들 수 있습니다.
전체 그림
재생 목록에서 서로 다른 비트 전송률의 여러 출력을 지정하고 참조 할 수 있습니다.
{
"api_key": "1234abcd",
"input": "http://example.com/file.mp4",
"output": [
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "s3://my-bucket/",
"filename": "file-64k.mp4",
"format": "aac",
"public": 1
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "s3://my-bucket/",
"decoder_bitrate_cap": 165,
"decoder_buffer_size": 440,
"filename": "file-150k.mp4",
"max_frame_rate": 10,
"public": 1,
"video_bitrate": 110,
"width": 320
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "s3://my-bucket/",
"decoder_bitrate_cap": 300,
"decoder_buffer_size": 800,
"filename": "file-240k.mp4",
"max_frame_rate": 15,
"public": 1,
"video_bitrate": 200,
"width": 640
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "s3://my-bucket/",
"decoder_bitrate_cap": 600,
"decoder_buffer_size": 1600,
"filename": "file-440k.mp4",
"max_frame_rate": 30,
"public": 1,
"video_bitrate": 400,
"width": 720
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "s3://my-bucket/",
"decoder_bitrate_cap": 900,
"decoder_buffer_size": 2400,
"filename": "file-640k.mp4",
"max_frame_rate": 30,
"public": 1,
"video_bitrate": 600,
"width": 854
},
{
"type": "playlist",
"format": "highwinds",
"url": "s3://my-bucket/file.smil",
"streams": [
{
"path": "file-440k.mp4",
"bandwidth": "440",
"width": 720,
"height": 406
},
{
"path": "file-640k.mp4",
"bandwidth": "640",
"width": 854,
"height": 480
},
{
"path": "file-240k.mp4",
"bandwidth": "240",
"width": 640,
"height": 360
},
{
"path": "file-150k.mp4",
"bandwidth": "150",
"width": 320,
"height": 180
},
{
"path": "file-64k.mp4",
"bandwidth": "64"
}
]
}
]
}
참고 사항
- 재생 목록 생성은 현재 작업에있는 다른 출력의 정보를 사용하지 않지만 올바른 형식의 적응 형 비트 레이트 재생 목록을 쉽게 생성하고 다른 파일과 함께 업로드하는 방법 일뿐입니다.
- 디코더 _ 비트 레이트 _ 캡파일의 목표 비트 전송률의 1.5 배로 설정됩니다. 디코더 _ 버퍼 _ 크기파일의 대상 비트 전송률의 3.5x에서 5x로 설정됩니다. 이러한 설정은 파일 전체에서 일관된 비트 전송률을 유지하는 데 도움이 되므로 세그먼트화된 세그먼트의 크기와 비트 전송률이 너무 많이 변하지 않습니다.