创建 VOD 源文件

如果您还没有自己的视频点播 (VOD) 素材资源,可以使用 Transcoder API 创建可与 Video Stitcher API 配合使用的 VOD 清单和片段文件。此操作完全可选。

VOD 清单用作 VOD 配置中的源 URI。DASH 和 HLS 格式均受支持。

以下是可与 Transcoder API 一起使用的示例作业配置,以创建 VOD 文件。如需了解详情,请参阅使用临时配置创建作业。您需要在 Google Cloud 项目中启用 Transcoder API;如需了解详情,请参阅准备工作

{
  "config":{
    "inputs":[
      {
        "key":"input0",
        "uri":"gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
      }
    ],
    "output":{
      "uri":"gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"
    },
    "editList":[
      {
        "key":"atom0",
        "inputs":[
          "input0"
        ]
      }
    ],
    "elementaryStreams":[
      {
        "key":"video_hd",
        "videoStream":{
          "h264":{
            "heightPixels":720,
            "widthPixels":1280,
            "pixelFormat":"yuv420p",
            "bitrateBps":5000000,
            "frameRate":25
          }
        }
      },
      {
        "key":"video_sd",
        "videoStream":{
          "h264":{
            "heightPixels":432,
            "widthPixels":768,
            "pixelFormat":"yuv420p",
            "bitrateBps":1100000,
            "frameRate":25
          }
        }
      },
      {
        "key":"video_sd_low",
        "videoStream":{
          "h264":{
            "heightPixels":360,
            "widthPixels":640,
            "pixelFormat":"yuv420p",
            "bitrateBps":365000,
            "frameRate":25
          }
        }
      },
      {
        "key":"audio_stereo",
        "audioStream":{
          "codec":"aac",
          "bitrateBps":64000,
          "channelCount":2,
          "channelLayout":[
            "fl",
            "fr"
          ],
          "sampleRateHertz":48000
        }
      }
    ],
    "muxStreams":[
      {
        "key":"hd",
        "container":"mp4",
        "elementaryStreams":[
          "video_hd",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"sd",
        "container":"mp4",
        "elementaryStreams":[
          "video_sd",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"sd_low",
        "container":"mp4",
        "elementaryStreams":[
          "video_sd_low",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"media_hd",
        "container":"ts",
        "elementaryStreams":[
          "video_hd",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"media_sd",
        "container":"ts",
        "elementaryStreams":[
          "video_sd",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"media_sd_low",
        "container":"ts",
        "elementaryStreams":[
          "video_sd_low",
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"video_only_hd",
        "container":"fmp4",
        "elementaryStreams":[
          "video_hd"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"video_only_sd",
        "container":"fmp4",
        "elementaryStreams":[
          "video_sd"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"video_only_sd_low",
        "container":"fmp4",
        "elementaryStreams":[
          "video_sd_low"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      },
      {
        "key":"audio_only",
        "container":"fmp4",
        "elementaryStreams":[
          "audio_stereo"
        ],
        "segmentSettings":{
          "segmentDuration":"6s",
          "individualSegments":true
        }
      }
    ],
    "manifests":[
      {
        "type":"HLS",
        "fileName":"manifest.m3u8",
        "muxStreams":[
          "media_hd",
          "media_sd",
          "media_sd_low"
        ]
      },
      {
        "type":"DASH",
        "fileName":"manifest.mpd",
        "muxStreams":[
          "video_only_hd",
          "video_only_sd",
          "video_only_sd_low",
          "audio_only"
        ]
      }
    ]
  }
}