Se ainda não tiver o seu próprio recurso de vídeo a pedido (VOD), pode usar a API Transcoder para criar um manifesto de VOD e ficheiros de segmentos que podem ser usados com a API Video Stitcher. Isto é totalmente opcional.
O manifesto de VOD é usado como o URI de origem numa configuração de VOD. São suportados os formatos DASH e HLS.
Segue-se um exemplo de configuração de tarefa que pode usar com a API Transcoder para criar os ficheiros VOD. Para mais informações, consulte o artigo Criar tarefas com configurações ad hoc. Tem de ativar a API Transcoder no seu Google Cloud projeto. Consulte a secção Antes de começar para mais informações.
{
"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"
]
}
]
}
}