Lakukan pengambilan video menggunakan vektorisasi (pratinjau versi 4.0)
AZURE AI Video Retrieval API adalah bagian dari Azure AI Vision dan memungkinkan pengembang untuk membuat indeks, menambahkan dokumen (video dan gambar) ke dalamnya, dan mencari dengan bahasa alami. Pengembang dapat menentukan skema metadata untuk setiap indeks dan menyerap metadata ke layanan untuk membantu pengambilan. Pengembang juga dapat menentukan fitur apa yang akan diekstrak dari indeks (visi, ucapan) dan memfilter pencarian mereka berdasarkan fitur.
Prasyarat
- Langganan Azure - Buat langganan gratis.
- Setelah Anda memiliki langganan Azure, buat sumber daya Visi menggunakan portal. Untuk pratinjau ini, Anda harus membuat sumber daya di salah satu wilayah berikut - Australia Timur, Swiss Utara, Swedia Tengah, atau AS Timur.
- Sumber daya Azure Storage - Buat sumber daya
Persyaratan input
Format yang didukung
Format file | Deskripsi |
---|---|
asf |
ASF (Format Streaming Tingkat Lanjut / Aktif) |
avi |
AVI (Audio Video Interleaved) |
flv |
FLV (Video Flash) |
matroskamm , webm |
Matroska / WebM |
mov ,mp4 ,,m4a ,3gp ,3g2 ,mj2 |
QuickTime / MOV |
Codec video yang didukung
Codec | Format |
---|---|
h264 |
H.264 / AVC / MPEG-4 AVC / MPEG-4 bagian 10 |
h265 |
H.265/HEVC |
libvpx-vp9 |
libvpx VP9 (codec vp9) |
mpeg4 |
MPEG-4 bagian 2 |
Codec audio yang didukung
Codec | Format |
---|---|
aac |
AAC (Pengodian Audio Tingkat Lanjut) |
mp3 |
MP3 (lapisan audio MPEG 3) |
pcm |
PCM (tidak dikompresi) |
vorbis |
Vorbis |
wmav2 |
Windows Media Audio 2 |
Memanggil API Pengambilan Video
Untuk menggunakan API Pengambilan Video dalam pola umum, Anda akan melakukan langkah-langkah berikut:
- Buat indeks menggunakan PUT - Buat indeks.
- Tambahkan dokumen video ke indeks menggunakan PUT - CreateIngestion.
- Tunggu hingga penyerapan selesai, periksa dengan GET - ListIngestions.
- Cari kata kunci atau frasa menggunakan POST - SearchByText.
Menggunakan API Pengambilan Video untuk pencarian berbasis metadata
API Pengambilan Video memungkinkan pengguna untuk menambahkan metadata ke file video. Metadata adalah informasi tambahan yang terkait dengan file video seperti "ID Kamera," "Tanda Waktu," atau "Lokasi" yang dapat digunakan untuk mengatur, memfilter, dan mencari video tertentu. Contoh ini menunjukkan cara membuat indeks, menambahkan file video dengan metadata terkait, dan melakukan pencarian menggunakan fitur yang berbeda.
Langkah 1: Membuat Indeks
Untuk memulai, Anda perlu membuat indeks untuk menyimpan dan mengatur file video dan metadatanya. Contoh di bawah ini menunjukkan cara membuat indeks bernama "my-video-index" menggunakan Create Index API.
curl.exe -v -X PUT "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'metadataSchema': {
'fields': [
{
'name': 'cameraId',
'searchable': false,
'filterable': true,
'type': 'string'
},
{
'name': 'timestamp',
'searchable': false,
'filterable': true,
'type': 'datetime'
}
]
},
'features': [
{
'name': 'vision',
'domain': 'surveillance'
},
{
'name': 'speech'
}
]
}"
Respons:
HTTP/1.1 201 Created
Content-Length: 530
Content-Type: application/json; charset=utf-8
request-id: cb036529-d1cf-4b44-a1ef-0a4e9fc62885
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 202
Date: Thu, 06 Jul 2023 18:05:05 GMT
Connection: close
{
"name": "my-video-index",
"metadataSchema": {
"language": "en",
"fields": [
{
"name": "cameraid",
"searchable": false,
"filterable": true,
"type": "string"
},
{
"name": "timestamp",
"searchable": false,
"filterable": true,
"type": "datetime"
}
]
},
"userData": {},
"features": [
{
"name": "vision",
"modelVersion": "2023-05-31",
"domain": "surveillance"
},
{
"name": "speech",
"modelVersion": "2023-06-30",
"domain": "generic"
}
],
"eTag": "\"7966244a79384cca9880d67a4daa9eb1\"",
"createdDateTime": "2023-07-06T18:05:06.7582534Z",
"lastModifiedDateTime": "2023-07-06T18:05:06.7582534Z"
}
Langkah 2: Menambahkan file video ke indeks
Selanjutnya, Anda dapat menambahkan file video ke indeks dengan metadata terkait. Contoh di bawah ini menunjukkan cara menambahkan dua file video ke indeks menggunakan URL SAS dengan CREATE Ingestion API.
curl.exe -v -X PUT "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index/ingestions/my-ingestion?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'videos': [
{
'mode': 'add',
'documentId': '02a504c9cd28296a8b74394ed7488045',
'documentUrl': 'https://example.blob.core.windows.net/videos/02a504c9cd28296a8b74394ed7488045.mp4?sas_token_here',
'metadata': {
'cameraId': 'camera1',
'timestamp': '2023-06-30 17:40:33'
}
},
{
'mode': 'add',
'documentId': '043ad56daad86cdaa6e493aa11ebdab3',
'documentUrl': '[https://example.blob.core.windows.net/videos/043ad56daad86cdaa6e493aa11ebdab3.mp4?sas_token_here',
'metadata': {
'cameraId': 'camera2'
}
}
]
}"
Respons:
HTTP/1.1 202 Accepted
Content-Length: 152
Content-Type: application/json; charset=utf-8
request-id: ee5e48df-13f8-4a87-a337-026947144321
operation-location: http://api.example.com.trafficmanager.net/retrieval/indexes/my-test-index/ingestions/my-ingestion
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 709
Date: Thu, 06 Jul 2023 18:15:34 GMT
Connection: close
{
"name": "my-ingestion",
"state": "Running",
"createdDateTime": "2023-07-06T18:15:33.8105687Z",
"lastModifiedDateTime": "2023-07-06T18:15:34.3418564Z"
}
Langkah 3: Tunggu penyerapan selesai
Setelah Anda menambahkan file video ke indeks, proses penyerapan dimulai. Mungkin perlu waktu tergantung pada ukuran dan jumlah file. Untuk memastikan penyerapan selesai sebelum melakukan pencarian, Anda dapat menggunakan Get Ingestion API untuk memeriksa status. Tunggu hingga panggilan ini kembali "state" = "Completed"
sebelum melanjutkan ke langkah berikutnya.
curl.exe -v -X GET "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index/ingestions?api-version=2023-05-01-preview&$top=20" -H "ocp-apim-subscription-key: <YOUR_SUBSCRIPTION_KEY>"
Respons:
HTTP/1.1 200 OK
Content-Length: 164
Content-Type: application/json; charset=utf-8
request-id: 4907feaf-88f1-4009-a1a5-ad366f04ee31
api-supported-versions: 2023-01-15-preview,2023-05-01-preview
x-envoy-upstream-service-time: 12
Date: Thu, 06 Jul 2023 18:17:47 GMT
Connection: close
{
"value": [
{
"name": "my-ingestion",
"state": "Completed",
"createdDateTime": "2023-07-06T18:15:33.8105687Z",
"lastModifiedDateTime": "2023-07-06T18:15:34.3418564Z"
}
]
}
Langkah 4: Lakukan pencarian dengan metadata
Setelah menambahkan file video ke indeks, Anda dapat mencari video tertentu menggunakan metadata. Contoh ini menunjukkan dua jenis pencarian: satu menggunakan fitur "visi" dan yang lain menggunakan fitur "ucapan".
Cari dengan fitur "visi"
Untuk melakukan pencarian menggunakan fitur "visi", gunakan SEARCH By Text API dengan vision
filter , menentukan teks kueri dan filter lain yang diinginkan.
curl.exe -v -X POST "https://<YOUR_ENDPOINT_URL>/computervision/retrieval/indexes/my-video-index:queryByText?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'queryText': 'a man with black hoodie',
'filters': {
'stringFilters': [
{
'fieldName': 'cameraId',
'values': [
'camera1'
]
}
],
'featureFilters': ['vision']
}
}"
Respons:
HTTP/1.1 200 OK
Content-Length: 3289
Content-Type: application/json; charset=utf-8
request-id: 4c2477df-d89d-4a98-b433-611083324a3f
api-supported-versions: 2023-05-01-preview
x-envoy-upstream-service-time: 233
Date: Thu, 06 Jul 2023 18:42:08 GMT
Connection: close
{
"value": [
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:01:58",
"end": "00:02:09",
"best": "00:02:03",
"relevance": 0.23974405229091644
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:02:27",
"end": "00:02:29",
"best": "00:02:27",
"relevance": 0.23762696981430054
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "VideoFrame",
"start": "00:00:26",
"end": "00:00:27",
"best": "00:00:26",
"relevance": 0.23250913619995117
},
]
}
Cari dengan fitur "ucapan"
Untuk melakukan pencarian menggunakan fitur "ucapan", gunakan SEARCH By Text API dengan speech
filter , menyediakan teks kueri dan filter lain yang diinginkan.
curl.exe -v -X POST "https://<YOUR_ENDPOINT_URL>com/computervision/retrieval/indexes/my-video-index:queryByText?api-version=2023-05-01-preview" -H "Ocp-Apim-Subscription-Key: <YOUR_SUBSCRIPTION_KEY>" -H "Content-Type: application/json" --data-ascii "
{
'queryText': 'leave the area',
'dedup': false,
'filters': {
'stringFilters': [
{
'fieldName': 'cameraId',
'values': [
'camera1'
]
}
],
'featureFilters': ['speech']
}
}"
Respons:
HTTP/1.1 200 OK
Content-Length: 49001
Content-Type: application/json; charset=utf-8
request-id: b54577bb-1f46-44d8-9a91-c9326df3ac23
api-supported-versions: 2023-05-01-preview
x-envoy-upstream-service-time: 148
Date: Thu, 06 Jul 2023 18:43:07 GMT
Connection: close
{
"value": [
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:07.8400000",
"end": "00:07:08.4400000",
"best": "00:07:07.8400000",
"relevance": 0.8597901463508606
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:02.0400000",
"end": "00:07:03.0400000",
"best": "00:07:02.0400000",
"relevance": 0.8506758213043213
},
{
"documentId": "02a504c9cd28296a8b74394ed7488045",
"documentKind": "SpeechTextSegment",
"start": "00:07:10.4400000",
"end": "00:07:11.5200000",
"best": "00:07:10.4400000",
"relevance": 0.8474636673927307
}
]
}
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk