分段串流設定

本主題包含有關與分段流相關的編碼設置的詳細信息。

概覽

Zencoder支持各種形式的自適應流和分段流。

每種流格式都使用下面列出的API選項的不同子集。有關更多信息,請參閱每種流類型的指南。

注意事項

  • 作業必須至少具有一個標准或分段輸出;創建僅具有播放列表輸出的作業將不起作用。
  • 播放列表輸出將忽略大多數輸出選項,但網址base_urlfilenamestreamspublictype
  • 如果分段輸出被上傳到臨時存儲,它將被上傳為 ZIP 歸檔

streaming_delivery_format

streaming_delivery_format:String

API 版本:V2

上級:outputs

有效值:短跑

兼容的工作類型:VOD

例:短跑

描述:

設置將使用特定的流配置(包括必需的清單,目錄結構或其他打包)傳遞的輸出的格式/協議。

對於“破折號”輸出,這還將默認的segment_seconds更改為2,強制固定的關鍵幀間隔,包括MPD清單,並創建帶有初始化文件和段文件的目錄結構。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "streaming_delivery_format": "dash"
    }
  ]
}

也可以看看: stream_delivery_profile

streaming_delivery_profile

streaming_delivery_profile:String

API 版本:V2

上級:outputs

默認:生活

有效值:直播,hbbtv_1.5,on_demand

兼容的工作類型:VOD

例:生活

描述:

設定串流傳送格式的設定檔,確保選取了與設定檔相容的選項。有效選項取決於所選的streaming_delivery_format

對於dash輸出,當前支持的配置文件是:

  • 直播-將設置DASH配置文件為“ urn:mpeg:dash:profile:isoff-live:2011”並使用一個SegmentTemplate每個AdaptationSet。對於DRM,它將使用8字節的IV,對於PlayReady將使用1.1版,包括媒體中的PSSH原子。
  • hbbtv_1.5-將設置DASH配置文件到“ urn:hbbtv:dash:profile:isoff-live:2012”,並包含音頻和視頻表示形式的必需屬性。對於DRM,它將使用16字節的IV,對於PlayReady將使用1.0版,但不包括PSSH原子。
  • on_demand-將設置DASH配置文件為“ urn:mpeg:dash:profile:isoff-on-demand:2011”,並將媒體編碼為每個流的單個碎片文件,而不是對其進行分段。否則與實時配置文件相同。
{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "streaming_delivery_format": "dash",
      "streaming_delivery_profile": "hbbtv_1.5"
    }
  ]
}

也可以看看:streaming_delivery_format

playlist_format

playlist_format:String

API 版本:V2

上級:outputs

有效值:dashmpdhlsm3um3u8ismmsshighwinds

兼容的工作類型:VOD

例:短跑

描述:

設置播放列表(清單清單)輸出的格式。


  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "playlist_format": "dash"
    }
  ]
}

segment_seconds

segment_seconds:Float

API 版本:V2

上級:outputs

默認:+10

有效值:1.0到3600.0之間的數字;值小於2.0僅在以下情況下允許byte_range_segmenting已啟用。因為發現很短的段會導致播放問題,所以最終段可能比指定的值長。

兼容的工作類型:VOD

例:8

描述:

設置分段輸出中每個分段的最大持續時間。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "segment_seconds": 8
    }
  ]
}

alternate_audio

alternate_audio:Hash

API 版本:V2

上級:outputs

有效值:備用音頻組的哈希,每個哈希組是音頻流再現哈希的數組

兼容的工作類型:VOD

描述:

提供一組備用音頻流,用於HLS播放列表。需要max_hls_protocol_version等於或大於4。

此選項將插入EXT-X-MEDIA標記到播放列表中。如果name未設置,則將根據給定的名稱生成language

備用音頻再現的有效選項

  • language音軌語言的ISO 639代碼,例如“ en”,“ es”或“ zh”。
  • name(可選的):備用音頻組的名稱。如果未設置名稱,則默認為語言名稱。
  • path(可選的):此音頻呈現的M3U8播放列表的可選路徑。如果未設置路徑,則此替代音頻流將描述源流中包含的音頻。
  • source(可選的):同一作業的媒體輸出上的標籤。這可用於為使用此音頻流的音效設置編解碼器。
{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "alternate_audio": {
        "custom_audio_group": [
          {
            "source": "english-audio",
            "path": "alternate-audio-en.m3u8",
            "language": "en"
          },
          {
            "source": "french-audio",
            "path": "alternate-audio-fr.m3u8",
            "language": "fr"
          }
        ],
        "secondary_audio_group": {
          "path": "path/to/secondary-audio-group.m3u8",
          "language": "en",
          "name": "Secondary English Audio Track",
          "source": "secondary-english-audio"
        }
      }
    }
  ]
}

streams

streams:Array

API 版本:V2

上級:outputs

有效值:包含播放列表流信息的哈希數組

兼容的工作類型:VOD

描述:

提供要重新格式化為播放列表的流信息列表。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

path

path:String

API 版本:V2

上級:outputs /

有效值:包含清單文件的絕對或相對路徑的字符串

兼容的工作類型:VOD

描述:

指定流清單文件的路徑。

注意:每個流都需要HLS Microsoft流暢串流高風SMIL播放列表。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "http://example.com/video/high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

bandwidth

bandwidth:Integer

API 版本:V2

上級:outputs /

有效值:正整數值(Kbps)

兼容的工作類型:VOD

例:500

描述:

指定播放列表流的帶寬。覆蓋從資源

注意:每個流都需要HLS高風SMIL播放列表,除非資源提供。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240
        },
        {
          "path": "high/index.m3u8",
          "bandwidth": 640
        }
      ]
    }
  ]
}

resolution

resolution:String

API 版本:V2

上級:outputs /

有效值:包含寬度和高度的字符串為:800x600

兼容的工作類型:VOD

描述:

指定播放列表流的分辨率。覆蓋從source


  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240,
          "resolution": "320x180"
        },
        {
          "path": "high/index.m3u8",
          "bandwidth": 640,
          "resolution": "640x360"
        }
      ]
    }
  ]
}

codecs

codecs:String

API 版本:V2

上級:outputs /

有效值:包含HTML5格式的編解碼器的字符串,例如:mp4a.40.2

兼容的工作類型:VOD

描述:

指定播放列表流中使用的編解碼器。覆蓋從source

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240,
          "codecs": "avc1.42001e, mp4a.40.2"
        },
        {
          "path": "audio/index.m3u8",
          "bandwidth": 64,
          "codecs": "mp4a.40.2"
        }
      ]
    }
  ]
}

audio

audio:String

API 版本:V2

上級:outputs /

有效值:包含要使用的音頻GROUP-ID名稱的字符串。此值必須已定義為alter_audio分組。的編解碼器設置應反映備用音頻組的所有編解碼器。

兼容的工作類型:VOD

描述:

指定播放列表的備用音軌。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "alternate_audio": {
        "ac3_audio": {
          "path": "path/to/ac3-audio.m3u8",
          "language": "en",
          "default": true,
          "source": "ac3-audio-rendition"
        },
        "source_audio": {
          "language": "en",
          "default": true
        }
      },
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition",
          "audio": "ac3_audio"
        },
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition",
          "audio": "source_audio"
        }
      ]
    }
  ]
}

segment_image_url

segment_image_url:String (URL)

API 版本:V2

上級:outputs

兼容的工作類型:VOD

描述:

創建僅音頻片段時,請使用指定的圖像文件作為每個片段的縮略圖。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "segment_image_url": "http://example.com/thumb.png"
    }
  ]
}

segment_video_snapshots

segment_video_snapshots:Boolean

API 版本:V2

上級:outputs

默認:

有效值:對或錯

兼容的工作類型:VOD

例:真正

描述:

將視頻文件分段為純音頻分段時,請為每個分段拍攝視頻快照作為縮略圖。

如果設置了segment_image_file,則此選項無效。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "segment_video_snapshots": true
    }
  ]
}

也可以看看: segment_image_url

source

source:String

API 版本:V2

上級:outputs /

兼容的工作類型:VOD

描述:

引用同一作業的媒體輸出上的標籤,以在播放列表中填寫相應的數據。

對於HLS帶寬編解碼器解析度默認情況下,從來源推斷出這些值。任何帶寬編解碼器, 要么解析度為同一流指定的值將覆蓋推斷的值。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

max_hls_protocol_version

max_hls_protocol_version:Integer

API 版本:V2

上級:outputs /

默認:5用於示例AES加密;否則2。

有效值:2-5

兼容的工作類型:VOD

例:4

描述:

設置最大值HLS使用的協議版本。特殊功能將可用。

此選項應大於或等於hls_protocol_version提供時。

注意:僅適用於HTTP實時流輸出。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "path": "file-240k.m3u8",
      "bandwidth": 240,
      "max_hls_protocol_version": 4
    },
    {
      "type": "segmented",
      "path": "file-64k.m3u8",
      "bandwidth": 64,
      "max_hls_protocol_version": 4
    },
    {
         "filename":"playlist.m3u8",
         "public":1,
         "max_hls_protocol_version":4,
         "streams":[
            {
               "path":"file-240k.m3u8"
            },
            {
               "path":"file-64k.m3u8"
            }
         ],
         "type":"playlist"
    }
  ]
}

也可以看看:hls_protocol_version

hls_protocol_version

hls_protocol_version:Integer

API 版本:V2

上級:outputs /

默認:自動根據max_hls_protocol_version設置

有效值:2-5

兼容的工作類型:VOD

例:3

描述:

設置要使用的HLS協議版本。特殊功能將可用。

注意:僅適用於HTTP實時流輸出。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "hls_protocol_version": 3
    }
  ]
}

也可以看看:max_hls_protocol_version

hls_optimized_ts

hls_optimized_ts:Boolean

API 版本:V2

上級:outputs /

默認:true

有效值:true要么false

兼容的工作類型:VOD

描述:

為優化TS段文件HTTP Live Streaming在iOS設備上。

注意:僅適用於HTTP Live Streaming輸出。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "hls_optimized_ts": false
    }
  ]
}

prepare_for_segmenting

prepare_for_segmenting:String or Array

API 版本:V2

上級:outputs

有效值:hlsmssdash

兼容的工作類型:VOD

例:hls,dash

描述:

如果您打算將輸出傳輸到HLS,MSS和/或DASH使用字幕將其編碼為MP4後,請將此選項設置為true,以包括字幕和分段的關鍵幀時序。這允許分段版本在進行轉碼的情況下仍包含與HLS兼容的字幕,並提供以一致的時間間隔進行分段。

指定分段輸出的類型,稍後將該輸出進行多路復用以創建分段輸出,以便Zencoder可以根據需要準備字幕和關鍵幀。

注意:當前無法將字幕添加到HLS轉碼時輸出。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "prepare_for_segmenting": "hls,dash"
    }
  ]
}

也可以看看: caption_urlskip_captions

smil-base-url

smil_base_url:String

API 版本:V2

上級:outputs

兼容的工作類型:VOD

例: rtmp://127.0.0.1/base/path/

描述:

這會將標籤<meta base =“ smil_base_url_value” />添加到SMIL播放列表的<head>部分。

本示例將輸出如下所示的播放列表:

  <smil>
    <頭>
      <meta base =“ rtmp://123.456.123.123/path/to/videos/” />
    </ head>
    <身體>
      <開關>
        <video src =“ mp4:test.mp4” system-bitrate =“ 500000” />
      </ switch>
    </ body>
  </ smil>

注意:僅在具有播放格式的播放列表類型的輸出上起作用。

{
  "input": "s3://zencodertesting/test.mov",
  "output": [
    {
      "filename": "test.mp4",
      "video_bitrate": 400,
      "audio_bitrate": 96
    },
    {
      "type": "playlist",
      "format": "highwinds",
      "smil_base_url": "rtmp://123.456.123.123/path/to/videos/",
      "url": "ftp://my.server/playlist.smil",
      "streams": [
        {
          "path": "test.mp4",
          "bandwidth": 500
        }
      ]
    }
  ]
}

byte_range_segmenting

byte_range_segmenting:Boolean

API 版本:V2

上級:outputs

默認:false

有效值:true要么false

兼容的工作類型:VOD

例:真正

描述:

配置HLS分段以生成單個輸出文件,而不是每個分段一個文件。

需要max_hls_protocol_version要么hls_protocol_version設置為4或更高。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "byte_range_segmenting": true
    }
  ]
}

也可以看看:max_hls_protocol_version

generate_keyframe_manifest

generate_keyframe_manifest:Boolean

API 版本:V2

上級:outputs

默認:false

有效值:true要么false

兼容的工作類型:VOD

例:true

描述:

產生一個HLS快進和快退播放所需的關鍵幀(I幀)清單。

默認關鍵幀清單文件名與播放列表文件名相同,但添加了“ -iframe-index”(因此,對於“ master.m3u8”播放列表,關鍵幀清單將為“ master-iframe-index.m3u8”)。關鍵幀清單文件名可以用keyframe_manifest_filename

默認情況下啟用max_hls_protocol_version要么hls_protocol_version設置為4或更大。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "generate_keyframe_manifest": true,
      "keyframe_manifest_filename": "my_iframe_index.m3u8"
    }
  ]
}

也可以看看:keyframe_manifest_filename

keyframe_manifest_filename

keyframe_manifest_filename:String

API 版本:V2

上級:outputs

默認:iframe_index.m3u8

兼容的工作類型:VOD

例:my_iframe_index.m3u8

描述:

除非指定,否則用於關鍵幀清單的文件名與播放列表文件名相同,但附加“ -iframe-index”。例如,對於播放列表“ master.m3u8”,關鍵幀清單將為“ master-iframe-index.m3u8”。

此選項要求generate_keyframe_manifest是真的,或者hls_protocol_version是4或更大。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "generate_keyframe_manifest": true,
      "keyframe_manifest_filename": "my_iframe_index.m3u8"
    }
  ]
}

也可以看看: generate_keyframe_manifest

allow_skipped_sources

allow_skipped_sources:Boolean

API 版本:V2

上級:outputs

默認:false

有效值:true要么false

兼容的工作類型:VOD

例:true

描述:

生成播放列表時,如果跳過了任何引用的流,則不要使輸出失敗(作為有條件的輸出功能),只需將其排除在播放列表之外即可。

要正確忽略跳過的源,播放列表的流必須有一個source定義。

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "allow_skipped_sources": true,
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

也可以看看:source