Halaman ini menjelaskan cara menyisipkan overlay ke dalam video yang ditranskode. Overlay
terdiri dari gambar yang disisipkan di atas video output, dan dapat
dibuat memudar atau menghilang selama jangka waktu tertentu. Untuk menyisipkan
overlay, gunakan
array overlays
di
template JobConfig
.
Lihat daftar format file gambar yang didukung.
Mengupload gambar ke Cloud Storage
Untuk memulai, lakukan hal berikut untuk mengupload gambar overlay ke bucket Cloud Storage Anda:
- Di konsol Google Cloud, buka halaman Browser Cloud Storage.
Buka halaman Browser Cloud Storage - Klik nama bucket Anda untuk membukanya.
- Klik Upload files.
- Pilih file gambar yang akan diupload dari komputer lokal Anda.
Membuat overlay
Anda dapat membuat dua jenis overlay: statis atau animasi. Kedua jenis overlay menggunakan gambar statis. Anda dapat menampilkan atau menyembunyikan overlay statis. Overlay animasi mendukung animasi memudar dan menghilang dari gambar.
Anda dapat menyisipkan beberapa overlay ke dalam satu video output.
Membuat overlay statis
Pada objek image
, gunakan kolom uri
untuk menentukan gambar overlay di Cloud Storage. Di objek resolution
, tetapkan
nilai x dan y dari 0 hingga 1,0. Nilai 0 mempertahankan resolusi gambar
sumber untuk dimensi tersebut; nilai 1,0 akan meregangkan gambar agar cocok
dengan dimensi video output. Misalnya, gunakan nilai x: 1
dan y:
0.5
untuk meregangkan gambar overlay dengan lebar penuh dan setengah dari tinggi
video output.
Dalam array animations
, buat objek animationStatic
dengan koordinat x dan y
dari 0 hingga 1,0. Koordinat ini didasarkan pada resolusi
video output. Gunakan nilai x: 0
dan y: 0
untuk memosisikan sudut kiri atas
overlay di sudut kiri atas video output. Tentukan kapan overlay
harus muncul di linimasa video output menggunakan kolom startTimeOffset
.
Untuk menghapus animasi statis, buat objek animationEnd
. Tentukan kapan
animasi harus berakhir (yaitu, overlay harus menghilang) di linimasa
video output menggunakan kolom startTimeOffset
.
Anda dapat menambahkan konfigurasi ini ke template tugas atau menyertakannya dalam konfigurasi tugas ad hoc:
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda yang tercantum di Setelan IAM.LOCATION
: Lokasi tempat tugas Anda akan berjalan. Gunakan salah satu region yang didukung.Menampilkan lokasius-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
STORAGE_BUCKET_NAME
: Nama bucket Cloud Storage yang Anda buat.STORAGE_INPUT_VIDEO
: Nama video di bucket Cloud Storage yang Anda transkode, sepertimy-vid.mp4
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-vid.mp4
).STORAGE_INPUT_OVERLAY
: Nama gambar di bucket Cloud Storage yang Anda gunakan untuk overlay, sepertimy-overlay.png
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: Nama folder Cloud Storage tempat Anda ingin menyimpan output video yang dienkode.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- Buat file
request.json
yang menentukan kolom tugas. Lakukan penggantian berikut untuk perintahgcloud
:- STORAGE_BUCKET_NAME: Nama bucket Cloud Storage yang Anda buat.
- STORAGE_INPUT_VIDEO: Nama
video di bucket Cloud Storage yang Anda
transcoding, seperti
my-vid.mp4
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: Nama file gambar di bucket Cloud Storage yang Anda gunakan untuk overlay, seperti
my-overlay.png
. Kolom ini harus memperhitungkan setiap folder yang Anda buat di bucket (misalnya,input/my-overlay.png
). - LOCATION: Lokasi tempat
tugas Anda akan berjalan. Gunakan lokasi dari daftar berikut.
Menampilkan lokasi
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
- STORAGE_OUTPUT_FOLDER: Nama folder Cloud Storage tempat Anda ingin menyimpan output video yang dienkode.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 1, "y": 0.5 }, "alpha": 1 }, "animations": [ { "animationStatic": { "xy": { "x": 0, "y": 0 }, "startTimeOffset": "0s" } }, { "animationEnd": { "startTimeOffset": "10s" } } ] } ] } }
- Jalankan perintah berikut:
Anda akan melihat respons seperti berikut:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Dalam video output, overlay statis memiliki karakteristik berikut:
- Logo ini muncul di awal linimasa dan terlihat selama 10 detik.
- Tindakan ini akan meregangkan lebar penuh dan setengah tinggi video output.
- Logo ini diposisikan di sudut kiri atas video output.
Lihat contoh video output untuk konfigurasi ini. Video ini menggunakan contoh gambar overlay.
Membuat overlay animasi
Pada objek image
, gunakan kolom uri
untuk menentukan gambar overlay di Cloud Storage. Di objek resolution
, tetapkan
nilai x dan y dari 0 hingga 1,0. Nilai 0 mempertahankan resolusi gambar
sumber untuk dimensi tersebut; nilai 1,0 akan meregangkan gambar agar cocok
dengan dimensi video output. Misalnya, gunakan nilai x: 0
dan y: 0
untuk mempertahankan resolusi asli gambar overlay.
Dalam array animations
, buat objek animationFade
dengan fadeType
dari
FADE_IN
. Tetapkan koordinat x dan y dari 0 hingga 1,0. Koordinat ini
didasarkan pada resolusi video output. Gunakan nilai x: 0.5
dan y: 0.5
untuk
memosisikan sudut kiri atas overlay di tengah video output.
Tentukan kapan overlay akan mulai muncul di linimasa video output menggunakan kolom startTimeOffset
. Overlay harus terlihat sepenuhnya pada waktu yang ditetapkan di kolom endTimeOffset
.
Untuk memudarkan overlay, buat objek animationFade
lain. Kali ini, tetapkan
fadeType
ke FADE_OUT
. Masukkan koordinat posisi serta waktu mulai dan akhir seperti sebelumnya.
Anda dapat menambahkan konfigurasi ini ke template tugas atau menyertakannya dalam konfigurasi tugas ad hoc:
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda yang tercantum di Setelan IAM.LOCATION
: Lokasi tempat tugas Anda akan berjalan. Gunakan salah satu region yang didukung.Menampilkan lokasius-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
STORAGE_BUCKET_NAME
: Nama bucket Cloud Storage yang Anda buat.STORAGE_INPUT_VIDEO
: Nama video di bucket Cloud Storage yang Anda transkode, sepertimy-vid.mp4
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-vid.mp4
).STORAGE_INPUT_OVERLAY
: Nama gambar di bucket Cloud Storage yang Anda gunakan untuk overlay, sepertimy-overlay.png
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-overlay.png
).STORAGE_OUTPUT_FOLDER
: Nama folder Cloud Storage tempat Anda ingin menyimpan output video yang dienkode.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
gcloud
- Buat file
request.json
yang menentukan kolom tugas. Lakukan penggantian berikut untuk perintahgcloud
:- STORAGE_BUCKET_NAME: Nama bucket Cloud Storage yang Anda buat.
- STORAGE_INPUT_VIDEO: Nama
video di bucket Cloud Storage yang Anda
transcoding, seperti
my-vid.mp4
. Kolom ini harus memperhitungkan folder apa pun yang Anda buat di bucket (misalnya,input/my-vid.mp4
). - STORAGE_INPUT_OVERLAY: Nama file gambar di bucket Cloud Storage yang Anda gunakan untuk overlay, seperti
my-overlay.png
. Kolom ini harus memperhitungkan setiap folder yang Anda buat di bucket (misalnya,input/my-overlay.png
). - LOCATION: Lokasi tempat
tugas Anda akan berjalan. Gunakan lokasi dari daftar berikut.
Menampilkan lokasi
us-central1
us-west1
us-west2
us-east1
us-east4
southamerica-east1
northamerica-northeast1
asia-east1
asia-northeast1
asia-northeast3
asia-south1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west4
- STORAGE_OUTPUT_FOLDER: Nama folder Cloud Storage tempat Anda ingin menyimpan output video yang dienkode.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "overlays": [ { "image": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_OVERLAY", "resolution": { "x": 0, "y": 0 }, "alpha": 1 }, "animations": [ { "animationFade": { "fadeType": "FADE_IN", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "5s", "endTimeOffset": "10s" } }, { "animationFade": { "fadeType": "FADE_OUT", "xy": { "x": 0.5, "y": 0.5 }, "startTimeOffset": "12s", "endTimeOffset": "15s" } } ] } ] } }
- Jalankan perintah berikut:
Anda akan melihat respons seperti berikut:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di panduan memulai Transcoder API menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Transcoder API.
Untuk melakukan autentikasi ke Transcoder API, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Dalam video yang dihasilkan, overlay animasi memiliki karakteristik berikut:
- Video akan mulai memudar pada tanda 5 detik di video output. Nilai alfa untuk overlay dimulai dari 0 dan berakhir pada 1,0. Sudut kiri atas overlay akan muncul di tengah video output. Overlay muncul pada resolusi asli gambar overlay.
- Setelah memudar, overlay akan ditampilkan selama 2 detik.
- Video akan mulai memudar pada tanda 12 detik dalam video output. Nilai alfa untuk overlay dimulai dari 1,0 dan berakhir pada 0.
- Animasi akan menghilang pada tanda 15 detik.
Lihat contoh video output untuk konfigurasi ini. Video ini menggunakan contoh gambar overlay.