하이윈즈 SMIL 가이드

Highwinds는 비디오의 적응 형 스트리밍을 포함하여 다양한 솔루션을 제공하는 빠른 CDN입니다. Highwinds 적응 형 스트리밍 통합을 더 쉽게 사용하기 위해 SMIL 파일을 생성하는 방법을 추가했습니다.

개요

미소파일은 멀티미디어 프리젠 테이션을 설명하는 데 사용되는 특수 형식의 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로 설정됩니다. 이러한 설정은 파일 전체에서 일관된 비트 전송률을 유지하는 데 도움이 되므로 세그먼트화된 세그먼트의 크기와 비트 전송률이 너무 많이 변하지 않습니다.