Halaman ini menjelaskan cara mendistribusikan output live stream ke endpoint jarak jauh menggunakan protokol Secure Reliable Transport (SRT) atau Real-Time Messaging Protocol (RTMP). SRT dan RTMP digunakan dalam mode push untuk mengirimkan streaming ke endpoint. Format container yang didukung adalah MPEG-TS untuk SRT dan FLV untuk RTMP.
Sebelum memulai
Halaman ini mengasumsikan bahwa Anda telah menyelesaikan langkah-langkah di bagian Sebelum memulai pada Panduan memulai untuk live stream HLS.
Bergantung pada pilihan protokol distribusi, buat endpoint SRT atau RTMP di penyedia tempat Anda ingin menerima output dalam mode push. Format URI endpoint bervariasi menurut protokol:
- Untuk SRT:
srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID
- Untuk RTMP:
rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/RTMP_STREAM_KEY
atau hanyartmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME
SRT_SERVER_IP dan RTMP_SERVER_IP dapat berupa alamat IP atau nama domain.
Membuat endpoint input
Untuk membuat endpoint input, gunakan metode
projects.locations.inputs.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat membuat endpoint input; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: ID yang ditentukan pengguna untuk endpoint input baru yang akan dibuat (tempat Anda mengirimkan aliran input). Nilai ini harus terdiri dari 1-63 karakter, diawali dan diakhiri dengan[a-z0-9]
, dan dapat berisi tanda hubung (-) di antara karakter. Misalnya,my-input
.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Salin OPERATION_ID yang ditampilkan untuk digunakan di bagian berikutnya.
Periksa hasilnya
Gunakan metode projects.locations.operations.get
untuk memeriksa apakah
endpoint input telah dibuat. Jika respons berisi "done: false"
,
ulangi perintah hingga respons berisi "done: true"
. Membuat endpoint input pertama di suatu region dapat memerlukan waktu hingga 10 menit.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat endpoint input Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
OPERATION_ID
: ID untuk operasi
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Input", "name": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "type": "RTMP_PUSH", "uri": INPUT_STREAM_URI, # For example, "rtmp://1.2.3.4/live/b8ebdd94-c8d9-4d88-a16e-b963c43a953b", "tier": "HD" } }
Temukan kolom uri
dan salin INPUT_STREAM_URI yang ditampilkan untuk digunakan nanti
di bagian Kirimkan aliran input.
Buat channel
Untuk membuat saluran, gunakan metode
projects.locations.channels.create
.
Perhatikan hal berikut dalam konfigurasi saluran:
- Array
distributionStreams
berisi setelan multipleksing aliran untuk distribusi. Setiap objek
DistributionStream
harus menyertakan kolomkey
,container
, danelementaryStreams
.{ "distributionStreams": [ { "key": "ds1", "container": "ts", // to be used with an SRT distribution "elementaryStreams": [ "es_video_720", "es_audio" ] }, { "key": "ds2", "container": "flv", // to be used with an RTMP distribution "elementaryStreams": [ "es_video_640", "es_audio" ] } ] }
Array
distributions
mencantumkan konfigurasi distribusi, yang mencakup endpoint jarak jauh.Tetapkan kolom
distributionStream
di objekDistribution
kekey
dari objekDistributionStream
.Untuk distribusi SRT, tetapkan
uri
di objekSrtPushOutputEndpoint
ke endpoint SRT yang Anda buat. Untuk distribusi RTMP, tetapkanuri
di objekRtmpPushOutputEndpoint
ke endpoint RTMP yang Anda buat.{ "distributions": [ { "key": "pd1", "distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } }, { "key": "pd2", "distributionStream": "ds2", // defined in a distributionStreams[] object with an FLV container "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME/", "streamKey": "RTMP_STREAM_KEY" } } ] }
Untuk mendistribusikan teks yang dibuat AI dan teks yang diterjemahkan, lihat panduan mengonfigurasi teks dan terjemahan otomatis.
Contoh berikut hanya menggunakan satu objek DistributionStream
dan satu objek Distribution
.
REST
SRT
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat membuat channel; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel yang akan dibuat; nilai ini harus terdiri dari 1-63 karakter, diawali dan diakhiri dengan[a-z0-9]
, dan dapat berisi tanda hubung (-) di antara karakterINPUT_ID
: ID yang ditentukan pengguna untuk endpoint inputBUCKET_NAME
: nama bucket Cloud Storage yang Anda buat untuk menyimpan file segmen dan manifes live streamSRT_SERVER_IP
: alamat IP atau nama domain endpoint jarak jauhSRT_SERVER_PORT
: nomor port endpoint jarak jauhSRT_SERVER_STREAM_ID
: ID streaming endpoint jarak jauh
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
RTMP
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat membuat channel; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel yang akan dibuat; nilai ini harus terdiri dari 1-63 karakter, diawali dan diakhiri dengan[a-z0-9]
, dan dapat berisi tanda hubung (-) di antara karakterINPUT_ID
: ID yang ditentukan pengguna untuk endpoint inputBUCKET_NAME
: nama bucket Cloud Storage yang Anda buat untuk menyimpan file segmen dan manifes live streamRTMP_SERVER_IP
: alamat IP atau nama domain endpoint jarak jauhRTMP_SERVER_PORT
: nomor port endpoint jarak jauhRTMP_APP_NAME
: awalan jalur untuk nama aliranRTMP_STREAM_KEY
: kunci streaming endpoint jarak jauh
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Mendapatkan channel
Setelah channel dibuat, gunakan metode
projects.locations.channels.get
untuk mengkueri status
channel.
REST
SRT
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "srtPush": { "uri": "srt://SRT_SERVER_IP:SRT_SERVER_PORT?streamid=SRT_SERVER_STREAM_ID" } } ] }
RTMP
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "inputAttachments": [ { "key": "INPUT_ID", "input": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID" } ], "activeInput": "INPUT_ID", "output": { "uri": "gs://BUCKET_NAME" }, "elementaryStreams": [ { "videoStream": { "h264": { "widthPixels": 1280, "heightPixels": 720, "frameRate": 30, "bitrateBps": 3000000, "gopDuration": "2s", "vbvSizeBits": 3000000, "vbvFullnessBits": 2700000, "entropyCoder": "cabac", "profile": "high" } }, "key": "es_video" }, { "audioStream": { "codec": "aac", "bitrateBps": 160000, "channelCount": 2, "sampleRateHertz": 48000 }, "key": "es_audio" } ], "muxStreams": [ { "key": "mux_video_ts", "container": "ts", "elementaryStreams": [ "es_video", "es_audio" ], "segmentSettings": { "segmentDuration": "2s" } } ], "manifests": [ { "fileName": "main.m3u8", "type": "HLS", "muxStreams": [ "mux_video_ts" ], "maxSegmentCount": 5, "segmentKeepDuration": "60s", "key": "manifest_hls" } ], "streamingState": "STOPPED", "distributionStreams": [ { "key": "ds1", "container": "flv", "elementaryStreams": [ "es_video", "es_audio" ] } ], "distributions": [ { "key": "pd1", "distributionStream": "ds1", "state": "NOT_READY", "rtmpPush": { "uri": "rtmp://RTMP_SERVER_IP:RTMP_SERVER_PORT/RTMP_APP_NAME", "streamKey": "RTMP_STREAM_KEY" } } ] }
Respons lengkap berisi kolom berikut:
{
...
"streamingState": "STOPPED",
"distributions": [
{
...
"state": "NOT_READY"
...
}
]
...
}
Respons ini menunjukkan status streaming saluran dan distribusi saluran.
Jika distribusi berada dalam NOT_READY
status, distribusi tidak dapat
dimulai. Anda harus menunggu hingga status berubah menjadi READY
agar dapat
mulai mendistribusikan streaming.
Pembuatan aliran distribusi pertama dapat memerlukan waktu hingga 10 menit. Status distribusi tidak bergantung pada status saluran; Anda dapat memulai saluran dan menunggu hingga distribusi menjadi READY
, lalu memulai distribusi.
Sekarang Anda dapat memulai channel.
Mulai channel
Gunakan metode projects.locations.channels.start
untuk memulai
channel. Channel harus dimulai sebelum dapat menerima aliran input atau membuat aliran output.
Memulai channel pertama di suatu region memerlukan waktu sekitar 10 menit.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "start", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Untuk menentukan apakah channel telah dimulai, dapatkan informasi channel seperti yang dilakukan sebelumnya. Respons harus berisi hal berikut:
{
...
"streamingState": "AWAITING_INPUT"
...
}
Kirimkan aliran input
Buka jendela terminal baru. Jalankan perintah berikut, menggunakan INPUT_STREAM_URI dari bagian Periksa hasilnya:
ffmpeg -re -f lavfi -i "testsrc=size=1280x720 [out0]; sine=frequency=500 [out1]" \
-acodec aac -vcodec h264 -f flv INPUT_STREAM_URI
Channel kini melakukan streaming, tetapi distribusi masih dihentikan.
Mulai distribusi
Distribusi harus dalam status READY
agar dapat dimulai. Untuk mulai
mendistribusikan output live stream ke semua endpoint jarak jauh, gunakan metode
projects.locations.channels.startdistribution
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi
yang baru. Setelah memulai distribusi, distribusi dapat berada dalam status AWAITING_INPUT
jika aliran input tidak dimulai atau status DISTRIBUTING
jika
aliran input didistribusikan ke endpoint yang ditentukan.
(Opsional) Memulai serangkaian distribusi
Anda dapat memulai serangkaian distribusi, bukan semuanya sekaligus. Cantumkan distribusi yang ingin Anda mulai dengan menambahkan kuncinya ke daftar array distributionKeys
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channelDISTRIBUTION_KEYS
: daftar kunci string yang dipisahkan koma (misalnya,"pd1"
)
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "startdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Pastikan distribusi sedang berjalan
Untuk memverifikasi bahwa distribusi telah dimulai, dapatkan informasi saluran seperti yang dilakukan sebelumnya. Respons harus berisi hal berikut:
{
"distributions": [
{
...
"state": "DISTRIBUTING"
...
},
...
]
}
Di server SRT atau RTMP jarak jauh, pastikan endpoint yang Anda buat menerima data.
Hentikan distribusi
Untuk berhenti mendistribusikan output live stream ke semua endpoint jarak jauh, gunakan metode
projects.locations.channels.stopdistribution
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
(Opsional) Menghentikan serangkaian distribusi
Anda dapat menghentikan serangkaian distribusi, bukan semuanya sekaligus. Cantumkan distribusi yang ingin Anda hentikan dengan menambahkan kuncinya ke daftar array distributionKeys
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channelDISTRIBUTION_KEYS
: daftar kunci string yang dipisahkan koma (misalnya,"pd1"
)
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stopdistribution", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Dukungan enkripsi SRT
Jika Anda menggunakan protokol SRT untuk mendistribusikan output live stream ke endpoint jarak jauh, Live Stream API melindungi konten live stream Anda dengan enkripsi AES.
Buat frasa sandi dan siapkan server SRT jarak jauh
Sebelum memulai, buat frasa sandi SRT yang sesuai dengan server SRT jarak jauh. Frasa sandi biasanya berupa string 10-79 karakter.
Pastikan proses dekripsi berfungsi dengan menyetel frasa sandi yang sama di server SRT jarak jauh. Lihat panduan pengguna server SRT jarak jauh untuk mengetahui cara melakukannya.
Tambahkan frasa sandi ke Secret Manager
Live Stream API tidak menerima atau mengelola frasa sandi secara langsung. Anda harus membagikan frasa sandi dengan Live Stream API melalui Google Secret Manager.
Anda harus menyelesaikan semua langkah ini sebelum mengonfigurasi channel:
- Buat secret dengan Secret Manager.
- Konfigurasi izin Identity and Access Management pada rahasia Anda sehingga
Live Stream API dapat mengakses konten rahasia. Untuk melakukannya, berikan peran
secretmanager.secretAccessor
ke akun layananservice-PROJECT_NUMBER@gcp-sa-livestream.
(tindakan ini mirip dengan cara akun layanan memiliki akses ke bucket Cloud Storage Anda). - Temukan nama resource versi secret yang Anda buat
(misalnya,
projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/VERSION_ID
). Anda memerlukan nama ini untuk mengonfigurasi channel.
Mengonfigurasi channel
Versi rahasia dari frasa sandi ditentukan dalam
SrtPushOutputEndpoint
:
{
"distributions": [
{
"key": "pd1",
"distributionStream": "ds1", // defined in a distributionStreams[] object with an MPEG-TS container
"srtPush": {
"uri": "srt://{SRT_SERVER_IP}:{SRT_SERVER_PORT}?streamid={SRT_SERVER_STREAM_ID}",
"passphrase_secret_version": "projects/PROJECT_NUMBER/secrets/key1/versions/1"
}
}
]
}
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, ikuti langkah-langkah berikut.
Menghentikan channel
Gunakan metode projects.locations.channels.stop
untuk menghentikan
saluran. Anda harus menghentikan channel sebelum dapat menghapusnya.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "stop", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Hentikan aliran input
Jika Anda menggunakan ffmpeg
untuk mengirimkan aliran input, koneksi akan otomatis
terputus setelah Anda menghentikan channel.
Menghapus channel
Gunakan metode projects.locations.channels.delete
untuk menghapus
channel. Anda harus menghapus channel sebelum dapat menghapus endpoint
input yang digunakan oleh channel.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat channel Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
CHANNEL_ID
: ID yang ditentukan pengguna untuk channel
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/channels/CHANNEL_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Menghapus endpoint input
Gunakan metode projects.locations.inputs.delete
untuk menghapus
endpoint input.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor Google Cloud project Anda; nomor ini ada di kolom Project number di halaman IAM SettingsLOCATION
: lokasi tempat endpoint input Anda berada; gunakan salah satu region yang didukungTampilkan lokasius-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
INPUT_ID
: ID yang ditentukan pengguna untuk endpoint input
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/inputs/INPUT_ID", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Anda dapat memeriksa hasil operasi menggunakan ID operasi yang baru.
Menghapus bucket Cloud Storage
Di konsol Google Cloud , buka halaman Browser Cloud Storage.
Pilih kotak centang di samping bucket yang Anda buat.
Klik Hapus.
Di jendela dialog yang muncul, klik Hapus untuk menghapus bucket dan isinya.