Google Cloud Storage Setup
Follow the steps below to use Zencoder on the Google Cloud Platform.
- Go to Cloud Storage settings and click on the Interoperability tab:
- In the User account HMAC select your project as default and click on Create Key:
- Save the Access Key and Secret to enter in Zencoder later.
-
Add a new principal on the permission at bucket level for
allAuthenticatedUsers
with Storage Object Viewer role. You need to activate the public to internet option. - Add the Access Key and Secret to Zencoder in the Credentials section of the Zencoder Dashboard:
Transcoding
The example below shows a working job which pulls an input video from GCS, creates renditions for HTTP Live Streaming, and sends the output streams to GCS. You can test this out by changing my-bucket
to an existing GCS bucket that you own and pasting this into the Request Builder.
Example HLS Job Using GCS
{
"test": true,
"input": "gcs://zencoder-testing/test.mov",
"output": [
{
"audio_bitrate": 64,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"filename": "file-64k.m3u8",
"segment_seconds": 2,
"format": "aac",
"headers":{
"x-goog-acl": "public-read"
},
"type": "segmented"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 360,
"decoder_buffer_size": 840,
"filename": "file-240k.m3u8",
"segment_seconds": 2,
"max_frame_rate": 15,
"type": "segmented",
"video_bitrate": 184,
"headers":{
"x-goog-acl": "public-read"
},
"width": 400,
"format": "ts"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 578,
"decoder_buffer_size": 1344,
"filename": "file-440k.m3u8",
"segment_seconds": 2,
"type": "segmented",
"video_bitrate": 384,
"headers":{
"x-goog-acl": "public-read"
},
"width": 400,
"format": "ts"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 960,
"decoder_buffer_size": 2240,
"filename": "file-640k.m3u8",
"segment_seconds": 2,
"type": "segmented",
"video_bitrate": 584,
"headers":{
"x-goog-acl": "public-read"
},
"width": 480,
"format": "ts"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 1500,
"decoder_buffer_size": 4000,
"filename": "file-1040k.m3u8",
"segment_seconds": 2,
"type": "segmented",
"video_bitrate": 1000,
"headers":{
"x-goog-acl": "public-read"
},
"width": 640,
"format": "ts"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 2310,
"decoder_buffer_size": 5390,
"filename": "file-1540k.m3u8",
"segment_seconds": 2,
"type": "segmented",
"video_bitrate": 1484,
"headers":{
"x-goog-acl": "public-read"
},
"width": 960,
"format": "ts"
},
{
"audio_bitrate": 56,
"audio_sample_rate": 22050,
"base_url": "gcs://my-bucket/",
"decoder_bitrate_cap": 3060,
"decoder_buffer_size": 7140,
"filename": "file-2040k.m3u8",
"segment_seconds": 2,
"type": "segmented",
"video_bitrate": 1984,
"headers":{
"x-goog-acl": "public-read"
},
"width": 1024,
"format": "ts"
},
{
"base_url": "gcs://my-bucket/",
"filename": "playlist.m3u8",
"streams": [
{
"bandwidth": 2040,
"path": "file-2040k.m3u8"
},
{
"bandwidth": 1540,
"path": "file-1540k.m3u8"
},
{
"bandwidth": 1040,
"path": "file-1040k.m3u8"
},
{
"bandwidth": 640,
"path": "file-640k.m3u8"
},
{
"bandwidth": 440,
"path": "file-440k.m3u8"
},
{
"bandwidth": 240,
"path": "file-240k.m3u8"
},
{
"bandwidth": 64,
"path": "file-64k.m3u8"
}
],
"headers":{
"x-goog-acl": "public-read"
},
"type": "playlist"
}
]
}