Audiens
Tutorial ini dirancang agar Anda dapat dengan cepat mulai menjelajahi dan mengembangkan aplikasi dengan Video Intelligence API. Tutorial ini ditujukan untuk orang yang memahami pemrograman dasar, meskipun tanpa banyak pengetahuan pemrograman, Anda tetap dapat mengikuti tutorial ini. Setelah mengikuti tutorial ini, Anda akan dapat menggunakan dokumentasi Referensi untuk membuat aplikasi dasar Anda sendiri.
Tutorial ini membahas aplikasi Video Intelligence API menggunakan kode Python. Tujuannya di sini bukan untuk menjelaskan library klien Python, melainkan untuk menjelaskan cara melakukan panggilan ke Video Intelligence API. Aplikasi di Java dan Node.js pada dasarnya serupa.
Jika Anda mencari contoh khusus kode atau contoh dalam bahasa lain, lihat panduan cara penggunaan terkait.
Prasyarat
Tutorial ini memiliki beberapa prasyarat:
- Anda telah menyiapkan project Video Intelligence API di Google Cloud konsol.
- Anda telah menyiapkan lingkungan menggunakan akun layanan dan Kredensial Default Aplikasi.
- Anda memiliki pemahaman dasar tentang pemrograman Python.
- Siapkan lingkungan pengembangan Python Anda. Sebaiknya Anda menginstal Python versi terbaru,
pip, danvirtualenvdi sistem Anda. Untuk mendapatkan petunjuk, lihat Panduan Penyiapan Lingkungan Pengembangan Python untuk Google Cloud Platform. - Anda telah menginstal library klien Google Cloud.
Memberi anotasi pada video menggunakan deteksi perubahan shot
Tutorial ini membahas aplikasi Video API dasar, menggunakan permintaan SHOT_CHANGE_DETECTION. Permintaan SHOT_CHANGE_DETECTION memberikan hasil anotasi:
- Daftar semua shot yang terjadi dalam video
- Untuk setiap shot, berikan waktu mulai dan berakhir shot
Kami akan menampilkan seluruh kode terlebih dahulu. (Perhatikan bahwa kami telah menghapus sebagian besar komentar dari kode ini untuk menunjukkan betapa singkatnya kode tersebut. Kami akan memberikan lebih banyak komentar saat membahas kode.)
Aplikasi sederhana ini melakukan tugas-tugas berikut:
- Mengimpor library yang diperlukan untuk menjalankan aplikasi.
- Mengambil file video yang disimpan di Cloud Storage URI sebagai argumen dan
meneruskannya ke fungsi
main(). - Mendapatkan kredensial untuk menjalankan layanan Video Intelligence API.
- Membuat permintaan anotasi video untuk dikirim ke layanan video.
- Mengirim permintaan dan menampilkan operasi yang berjalan lama.
- Melakukan loop pada operasi yang berjalan lama hingga video diproses dan menampilkan nilai yang tersedia.
- Mengurai respons untuk layanan dan menampilkan respons kepada pengguna.
Kami akan membahas langkah-langkah ini secara lebih mendetail di bawah.
Mengimpor library
Kami mengimpor argparse agar aplikasi dapat menerima nama file input sebagai argumen.
Untuk menggunakan Video Intelligence API, kami juga mengimpor library google.cloud.videointelligence, yang menyimpan direktori panggilan API dan konstanta enumerasi kami.
Menjalankan aplikasi
Di sini, kami mengurai argumen yang diteruskan untuk Google Cloud Storage URI nama file video dan meneruskannya ke fungsi main().
Melakukan autentikasi ke API
Sebelum berkomunikasi dengan layanan Video Intelligence API, Anda harus mengautentikasi layanan Anda menggunakan kredensial yang diperoleh sebelumnya. Dalam an
aplikasi, cara termudah untuk mendapatkan kredensial adalah dengan menggunakan Kredensial
Default
Aplikasi (ADC).
Secara default, ADC akan mencoba mendapatkan kredensial dari file lingkungan GOOGLE_APPLICATION_CREDENTIALS, yang harus ditetapkan agar mengarah ke file kunci JSON akun layanan Anda. (Anda harus menyiapkan akun layanan
dan lingkungan untuk menggunakan ADC di Panduan memulai. Lihat
Menyiapkan Akun
Layanan
untuk mengetahui informasi selengkapnya.)
Membuat permintaan
Setelah layanan Video Intelligence API kami siap, kami dapat membuat permintaan ke layanan tersebut. Permintaan ke Video Intelligence API disediakan sebagai objek JSON. Lihat Referensi Video Intelligence API untuk mengetahui informasi lengkap tentang struktur spesifik permintaan tersebut.
Cuplikan kode ini melakukan tugas-tugas berikut:
- Membuat JSON untuk permintaan POST ke metode
annotate_video(). - Menyuntikkan lokasi Google Cloud Storage nama file video yang diteruskan ke dalam permintaan.
- Menunjukkan bahwa metode
annotateharus melakukanSHOT_CHANGE_DETECTION.
Membuat operasi yang berjalan lama
Saat pertama kali menjalankan permintaan terhadap Video Intelligence API, kita tidak
langsung mendapatkan hasil; melainkan kita mendapatkan nama operasi, yang disimpan dalam
kolom name respons, yang kemudian dapat kita gunakan untuk memeriksa hasil di lain
waktu.
Meneruskan nama operasi tersebut (yang merupakan string numerik) ke metode operations Layanan Operasi Video Intelligence API akan menampilkan status operasi saat ini. Contoh respons ditampilkan di bawah:
{
"response":{
"@type":"type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoResponse"
},
"name":"us-west1.17159971042783089144",
"metadata":{
"annotationProgress":[
{
"inputUri":"/video/gbikes_dinosaur.mp4",
"updateTime":"2017-01-27T19:45:54.297807Z",
"startTime":"2017-01-27T19:45:54.275023Z"
}
],
"@type":"type.googleapis.com/google.cloud.videointelligence.v1.AnnotateVideoProgress"
}
}
Perhatikan bahwa kolom response saat ini hanya berisi kolom @type, yang menunjukkan jenis respons tersebut. Setelah hasil benar-benar tersedia, kolom respons akan berisi hasil dari jenis tersebut.
Memeriksa operasi
Menggunakan permintaan operasi yang ada untuk operasi yang ada, kita membuat loop while untuk memeriksa status operasi tersebut secara berkala. Setelah operasi kita menunjukkan bahwa operasi done, kita keluar dari loop dan dapat mengurai respons.
Mengurai respons
Setelah operasi selesai, respons akan berisi
an AnnotateVideoResponse,
yang terdiri dari daftar annotationResults, satu untuk setiap video yang dikirim dalam permintaan.
Karena hanya mengirim satu video dalam permintaan, kita mengambil shotAnnotations pertama dari hasilnya. Kita akan membahas semua 'segmen' untuk video.
Menjalankan aplikasi
Untuk menjalankan aplikasi, cukup teruskan Cloud Storage URI video:
$ python shotchange.py gs://cloud-samples-data/video/gbikes_dinosaur.mp4 operationId=us-west1.12468772851081463748 Operation us-west1.12468772851081463748 started: 2017-01-30T01:53:45.981043Z Processing video for shot change annotations: Finished processing. Shot 0: 0.0 to 5.166666 Shot 1: 5.233333 to 10.066666 Shot 2: 10.1 to 28.133333 Shot 3: 28.166666 to 42.766666
Selamat! Anda telah melakukan tugas anotasi menggunakan Video Intelligence API.