Same bulk replacement applied to plugin-internal KB, examples, fixtures, tests, and docs. Real organization names, persona names, internal system identifiers, and domain-specific terms replaced with fictional generic public-sector entity (DDT) and generic terminology. Scope: - okr/ — examples, governance, framework, integrations, sources - ms-ai-architect/ — KB references (engineering, governance, security, infrastructure, advisor), tests/fixtures, agents, docs - linkedin-thought-leadership/ — voice samples, network-builder, examples (genericized identifying headlines to "[your organization]") - llm-security/ — research notes, scan report Manual genericization beyond bulk replace: - okr SKILL.md "Primary user / Domain" — generic Norwegian public sector - linkedin-voice SKILL.md headline placeholder - network-builder.md headline placeholder - high-engagement-posts.md voice sample employer line + hashtag Phase 3 (factual-attribution review) remains: a few KB files attribute publicly known transport-sector docs/datasets (e.g. håndbok V440, NVDB) to the fictional DDT after bulk replace. Needs manual semantic review to either remove or restore correct citation without re-introducing affiliation references. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
13 KiB
Azure Video Indexer for Enterprise AI
Last updated: 2026-02 Status: GA Category: Multi-Modal AI
Introduksjon
Azure AI Video Indexer er ein omfattande AI-teneste som ekstraherer djupe innsikter frå video- og lydinnhald. Tenesta køyrer over 30 AI-modellar for å analysere visuelt og auditivt innhald, inkludert transkripsjon, ansiktsdeteksjon, objektgjenkjenning, sentimentanalyse, emneekstraksjon og mykje meir. Video Indexer er bygd på toppen av Azure AI-tenester som Speech, Vision, Translator og Face.
For norsk offentleg sektor er Video Indexer relevant for fleire scenario: arkivdigitalisering av historisk videomateriale, automatisk teksting av offentleg informasjonsmateriell, innhaldsmoderering, søk i store mediearkiv og tilgjengelegheit gjennom transkribering. Tenesta er tilgjengeleg både som skybasert løysing og som Azure Arc-utviding for edge-deployment.
Video Indexer tilbyr to hovudvariantar: ein skybasert applikasjon med fullt funksjonssett, og Video Indexer enabled by Azure Arc for hybrid- og edge-scenario med støtte for live videostraumar og lokale krav til datasuverenitet.
Video Ingestion og Processing Workflows
Arkitektur og prosesseringsflyt
Videofil/Lydsfil → Upload API → Azure Storage
↓
Indexing Pipeline
┌─────────────────┐
│ Audio-analyse │
│ - Transkripsjon │
│ - Taledeteksjon │
│ - Lydeffektar │
├─────────────────┤
│ Video-analyse │
│ - Ansiktsdeteksjon│
│ - OCR │
│ - Scenedeteksjon │
│ - Objektdeteksjon│
├─────────────────┤
│ Multi-channel │
│ - Nøkkelord │
│ - Emner │
│ - Sentiment │
│ - Named entities │
└─────────────────┘
↓
JSON Insights Output
↓
Azure Storage / Azure Search / API
Deployment-alternativ
| Eigenskap | Cloud-basert | Azure Arc (Uploaded) | Azure Arc (Live) |
|---|---|---|---|
| Transkripsjon | Ja | Ja | Nei |
| Omsetting | Ja | Ja | Nei |
| Keyframe-deteksjon | Ja | Ja | Ja |
| Objektdeteksjon | Ja | Ja | Ja |
| Scenedeteksjon | Ja | Ja | Ja |
| Oppsummering | Ja | Ja | Ja |
| Ansiktsdeteksjon | Ja | Nei | Nei |
| Kjendisidentifisering | Ja | Nei | Nei |
| OCR | Ja | Nei | Nei |
| Sentimentanalyse | Ja | Nei | Nei |
| Live video | Nei | Nei | Ja |
| Tilpassa AI-innsikter | Nei | Nei | Ja |
Filavgrensingar
| Parameter | Verdi |
|---|---|
| Maks filstorleik | 30 GB |
| Maks videolengde | 4 timar |
| Tilrådde FPS | Maks 30 FPS |
| Tilrådde oppløysing | HD (maks) |
| Maks personar per frame | 10 |
| Minimum tale for analyse | 1 minutt spontan samtale |
Upload og indexering via API
import requests
account_id = "<your_account_id>"
location = "norwayeast"
access_token = "<your_access_token>"
# Last opp og start indexering
upload_url = (
f"https://api.videoindexer.ai/{location}/Accounts/{account_id}"
f"/Videos?name=kommunestyremote-2026&language=nb-NO"
f"&indexingPreset=AdvancedAudio"
f"&accessToken={access_token}"
)
with open("kommunestyremote.mp4", "rb") as video_file:
response = requests.post(
upload_url,
files={"file": video_file},
headers={"Content-Type": "multipart/form-data"}
)
video_id = response.json()["id"]
print(f"Video ID: {video_id} — Status: {response.json()['state']}")
Indexering-presets
| Preset | Brukstilfelle | Inkluderte modellar |
|---|---|---|
| Default | Standard analyse | Grunnleggjande video + audio |
| AdvancedAudio | Møtetranskripsjoner, podkastar | Full audio-analyse inkl. lydeffektar |
| AdvancedVideo | Visuell analyse, overvaking | Full video-analyse |
| AdvancedVideoAndAudio | Komplett analyse | Alle modellar aktivert |
| BasicAudio | Rask transkripsjon | Berre transkripsjon og omsetting |
Face, Speech og Content Detection
Ansikts- og persondeteksjon
Video Indexer tilbyr eit hierarki av ansikts- og personrelaterte innsikter:
| Funksjon | Forklaring | Avgrensa tilgang? |
|---|---|---|
| Face detection | Detekterer og grupperer ansikt i video | Nei |
| Celebrity identification | Identifiserer 1M+ kjende personar | Nei |
| Account-based face identification | Trenar modell for spesifikke personar | Ja (søknad krevst) |
| Observed people detection | Detekterer personar med bounding boxes | Nei |
| Matched person | Koplar observerte personar med ansikt | Nei |
| Detected clothing | Klassifiserer klede (lang/kort erme, etc.) | Nei |
| Thumbnail extraction | Ekstraherer beste ansiktsbilde per person | Nei |
Viktig for offentleg sektor: Ansiktsidentifisering (account-based) krev godkjenning og må brukast i samsvar med personopplysningslova og DPIA-krav.
Talebaserte innsikter
| Funksjon | Detaljar |
|---|---|
| Transkripsjon | Automatisk tale-til-tekst med språkdeteksjon |
| Talarenummerering | Identifiserer kven som sa kva (maks 16 talarar) |
| Talarstatistikk | Prosentfordeling av taletid |
| Omsetting | Automatisk omsetting til mange språk |
| Tekstbasert emosjonsdeteksjon | Glede, tristheit, sinne, frykt frå transkripsjon |
| Tekstmoderering | Deteksjon av eksplisitt tekstinnhald |
| Tilpassa transkripsjon (CRIS) | Trenar bransjespesifikke talemodular |
| Lydeffektdeteksjon | Alarm, hundebjeffing, publikumsreaksjonar, skot, latter |
OCR og visuell tekstgjenkjenning
Video Indexer ekstraherer tekst frå bilete og video gjennom OCR:
{
"id": 1,
"text": "Direktoratet for digital tjenesteutvikling",
"confidence": 0.95,
"left": 120,
"top": 50,
"width": 340,
"height": 45,
"language": "nb",
"instances": [
{
"adjustedStart": "0:00:05.12",
"adjustedEnd": "0:00:12.45",
"start": "0:00:05.12",
"end": "0:00:12.45"
}
]
}
Innhaldsmoderering
| Type | Kva blir detektert |
|---|---|
| Visuell moderering | Vaksent og upassande visuelt innhald |
| Tekstmoderering | Eksplisitt innhald i transkripsjon |
| Svart frame | Svarte frames (indikerer redigering/overgangar) |
Knowledge Graph Construction frå Video
Emne- og entitetsekstraksjon
Video Indexer bygger ein kunnskapsgraf frå videoinnhald gjennom fleire lag av analyse:
Lag 1: Basisdatasett
- Transkripsjon (tale → tekst)
- OCR (visuell tekst)
- Ansikt og personar
Lag 2: Semantisk anriking
- Nøkkelord (frå tale og visuell tekst)
- Named entities (merkevarar, stader, personar)
- Emner (basert på IPTC, Wikipedia, VI-ontologi)
Lag 3: Strukturell analyse
- Scenedeteksjon (basert på visuelle endringar)
- Shot detection (kamerabytter)
- Keyframe-ekstraksjon
- Rullande credits-identifisering
Emne-inference med hierarkisk ontologi
Video Indexer brukar tre ontologiar for emneinferens:
| Ontologi | Bruk | Eksempel |
|---|---|---|
| IPTC | International Press Telecommunications Council | Økonomi, Sport, Politikk |
| Wikipedia | Encyclopedisk kategorisering | Spesifikke teknologiar, stader |
| VI Hierarchical | Video Indexer sin eiga ontologi | Bransjespesifikke emne |
{
"topics": [
{
"id": 1,
"name": "Vegtrafikk",
"referenceId": "Transport/Vegtrafikk",
"referenceType": "VideoIndexer",
"confidence": 0.89,
"language": "nb-NO",
"instances": [
{
"adjustedStart": "0:02:15",
"adjustedEnd": "0:05:30"
}
]
}
]
}
Sentimentanalyse
Video Indexer utfører sentimentanalyse som kombinerer tale og visuell tekst:
| Sentiment | Skala | Brukstilfelle |
|---|---|---|
| Positivt | 0.0 - 1.0 | Brukaropplevingsevaluering |
| Negativt | 0.0 - 1.0 | Klagebehandling, krisekommunikasjon |
| Nøytralt | 0.0 - 1.0 | Bakgrunnsinnhald |
Integrasjon med AI Services
Logic Apps og Power Automate
Video Indexer integrerer med serverless-tenester for automatiserte arbeidsflyttar:
Flyt 1: Upload og indexering
Blob Storage trigger → Video Indexer Upload → Callback URL
Flyt 2: Insights-ekstraksjon
HTTP trigger (callback) → Get Video Index → Save to Blob/Cosmos DB
{
"definition": {
"triggers": {
"When_a_blob_is_added_or_modified": {
"type": "ApiConnection",
"inputs": {
"host": { "connection": { "name": "@parameters('$connections')['azureblob']['connectionId']" } },
"method": "get",
"path": "/datasets/default/triggers/batch/onupdatedfile"
}
}
},
"actions": {
"Upload_video_and_index": {
"type": "ApiConnection",
"inputs": {
"host": { "connection": { "name": "@parameters('$connections')['videoindexer-v2']['connectionId']" } },
"method": "post",
"path": "/northeurope/Accounts/{accountId}/Videos",
"queries": {
"name": "@triggerBody()?['Name']",
"videoUrl": "@triggerBody()?['WebUrl']",
"language": "nb-NO",
"callbackUrl": "@listCallbackUrl()"
}
}
}
}
}
}
Azure AI Search-integrasjon
Video Indexer-innsikter kan indekserast i Azure AI Search for djupt søk:
| Indeksfelt | Kjelde | Søketype |
|---|---|---|
transcript |
Tale-til-tekst | Fulltekst |
keywords |
Nøkkelordekstraksjon | Filtrering/fasettert |
faces |
Ansiktsdeteksjon | Filtrering |
topics |
Emneinferens | Fasettert søk |
namedEntities |
NLP-ekstraksjon | Fulltekst + filtrering |
ocr |
Visuell tekst | Fulltekst |
sentiments |
Sentimentanalyse | Range-filtrering |
Azure Functions for hendingsbasert prosessering
import azure.functions as func
import requests
import json
def main(msg: func.QueueMessage) -> None:
"""Process Video Indexer callback."""
message = json.loads(msg.get_body().decode('utf-8'))
video_id = message['id']
account_id = os.environ['VIDEO_INDEXER_ACCOUNT_ID']
location = os.environ['VIDEO_INDEXER_LOCATION']
# Hent innsikter
insights_url = (
f"https://api.videoindexer.ai/{location}/Accounts/{account_id}"
f"/Videos/{video_id}/Index"
)
response = requests.get(
insights_url,
headers={"Authorization": f"Bearer {get_access_token()}"}
)
insights = response.json()
# Prosesser for downstream-system
process_transcription(insights.get('videos', [{}])[0].get('insights', {}).get('transcript', []))
process_topics(insights.get('videos', [{}])[0].get('insights', {}).get('topics', []))
Edge-deployment med Azure Arc
For norsk offentleg sektor med strenge krav til datalokalitet:
| Funksjon | Fordel for offentleg sektor |
|---|---|
| On-premises prosessering | Data forlèt ikkje organisasjonen |
| Live videoanalyse | Sanntidsovervaking av infrastruktur |
| Tilpassa AI-innsikter | Definer eigne deteksjonsreglar |
| Kubernetes-kompatibel | Fleksibel infrastruktur |
Brukstilfelle for norsk offentleg sektor
Arkivdigitalisering
| Steg | Verktøy | Output |
|---|---|---|
| 1. Digitalisering | Skanning/digitalisering | Videofiler |
| 2. Indexering | Video Indexer (AdvancedVideoAndAudio) | JSON-innsikter |
| 3. Transkripsjon | Automatisk med norsk språkmodell | Tekst med tidskoder |
| 4. Søkbarheit | Azure AI Search | Fulltekst + semantisk søk |
| 5. Tilgjengelegheit | Automatisk teksting | WebVTT/SRT-filer |
Kommunestyremøte-automatisering
Live-stream → Azure Arc Video Indexer → Sanntids-transkripsjon
→ Talaridentifisering
→ Emnedeteksjon
→ Automatisk teksting
→ Søkbart arkiv
For Cosmo
- Video Indexer køyrer 30+ AI-modellar per video, inkludert transkripsjon, ansiktsdeteksjon, OCR, sentimentanalyse og emneekstraksjon. Vurder kva preset som gir best verdi for pengane basert på brukstilfellet.
- Azure Arc-varianten er avgjerande for datasuverenitet i norsk offentleg sektor. Live videoanalyse køyrer lokalt, medan full indexering kan gjerast hybrid.
- Ansiktsidentifisering krev godkjenning og må alltid kombinerast med DPIA i offentleg sektor. Bruk anonymisering der mogleg.
- Integrer med Logic Apps / Power Automate for automatiserte arkiverings- og publiseringsflyttar. Callback-URL-mønsteret gir asynkron prosessering utan polling.
- Kombiner med Azure AI Search for djupt søk i store videoarkiv. Indekser transkripsjon, nøkkelord, emner og named entities for å gjere møtereferat og opplysingsmateriell søkbart.