Flash-video - Flash Video

Flash-video
FLV-filikon fra Adobe Systems
Filnavnutvidelse
.flv, .f4v, .f4p, .f4a, .f4b
Internett media type
video / x-flv, video / mp4, lyd / mp4
Utviklet av Adobe Systems (opprinnelig utviklet av Macromedia )
Type format Mediebeholder
Beholder for Lyd, video, tekst, data
Utvidet fra FLV: SWF
F4V: MPEG-4 Del 12

Flash Video er et containerfilformat som brukes til å levere digitalt videoinnhold (f.eks. TV-serier , filmer osv.) Over Internett ved bruk av Adobe Flash Player versjon 6 og nyere. Flash-videoinnhold kan også være innebygd i SWF- filer. Det er to forskjellige Flash Video-filformater: FLV og F4V . Lyd- og videodataene i FLV-filer er kodet på samme måte som SWF-filer. F4V-filformatet er basert på ISO-basismediefilformatet , og starter med Flash Player 9-oppdatering 3. Begge formatene støttes i Adobe Flash Player og er utviklet av Adobe Systems. FLV ble opprinnelig utviklet av Macromedia . På begynnelsen av 2000-tallet var Flash Video de facto-standarden for nettbasert streamingvideo (over RTMP ). Brukere inkluderer Hulu , VEVO , Yahoo! Video , metacafe , Reuters.com og mange andre nyhetsleverandører.

Flash Video FLV-filer inneholder vanligvis materiale kodet med kodeker som følger Sorenson Spark- eller VP6 -videokomprimeringsformat . Fra og med 2010 støtter også offentlige utgivelser av Flash Player (samarbeid mellom Adobe Systems og MainConcept ) H.264- video og HE-AAC- lyd. Alle disse kompresjonsformatene er begrenset av patenter. Flash Video kan vises på de fleste operativsystemer via Adobe Flash Player og nettleser- plugin eller et av flere tredjepartsprogrammer. Apples iOS- enheter, sammen med nesten alle andre mobile enheter, støtter ikke Flash Player-plugin og krever derfor andre leveringsmetoder som levert av Adobe Flash Media Server .

Historie

Utgivelsen fra 2002 av Flash Player 6 la til støtte for video i SWF-filformat. 2003-utgivelsen av Flash Player 7 la direkte støtte til FLV-filformatet. På grunn av begrensninger i FLV-filformatet opprettet Adobe Systems nye filformater i 2007, basert på ISO-basismediefilformatet (MPEG-4 del 12). På denne måten deler F4V-formatet en felles base med MP4- formatet, og derfor kalles F4V noen ganger uformelt for "Flash MP4". Flash Player sjekker ikke filtypen, men undersøker i stedet filen for å bestemme formatet.

De nye filformatene er veldig forskjellige fra det eldre FLV-filformatet. For eksempel støtter ikke F4V skjermvideo, Sorenson Spark, VP6-videokomprimeringsformater og ADPCM eller Nellymoser lydkompresjonsformater. Forfattere av Flash Player oppfordrer sterkt til bruk av det nye standardfilformatet F4V (ISO base mediefilformat) fordi det overvinner funksjonsgrenser med FLV-strukturen når du streamer H.264 eller AAC, noe som er en av grunnene til at Adobe Systems beveger seg vekk fra den eldre FLV filstruktur. Siden 2002 var det opprinnelige formatet Flash Video, og filtypen er .flv med en MIME-avledet internettmedietype video / x-flv.

Det Adobe-merkede filsuffikset .f4v ble utvidet fra 2007 til å støtte ISO-base mediefilformat ved å bruke den samme MIME-avledede internettmedietypen video / mp4 som Apple-filsuffikset til .m4v og det generelle filsuffikset .mp4. Adobe-merkede filsuffikser eksisterer for .f4p som er relatert til media kryptert med deres Adobe Access DRM-ordning; .f4a og .f4b relaterer seg henholdsvis til .m4a og .m4b med samme MIME-avledede internettmedietype lyd / mp4.

SWF-filer som er publisert for Flash Player 6 og nyere versjoner, kan utveksle lyd, video og data over RTMP- tilkoblinger med Adobe Flash Media Server. En måte å mate data til Flash Media Server er fra filer i FLV-filformat. Flash Player kan spille SWF-filer opprettet for Flash Player 7 og nyere versjoner i FLV-format direkte (MIME-type video / x-flv). Flash Player kan også spille av det nye F4V-filformatet, og begynne med SWF-filer opprettet for Flash Player 9 Update 3.

Støtte for lyd- og videokomprimeringsformater i Flash Player og i Flash Video
Flash Player-versjon Løslatt Filformat Video komprimeringsformater Formater for lydkomprimering
6 2002 SWF Sorenson Spark, skjermvideo MP3, ADPCM, Nellymoser
7 2003 SWF, FLV Sorenson Spark, skjermvideo MP3, ADPCM, Nellymoser
8 2005 SWF, FLV On2 VP6, Sorenson Spark, Screen video, Screen video 2 MP3, ADPCM, Nellymoser
9 2007 SWF, FLV On2 VP6, Sorenson Spark, Skjermvideo, Skjermvideo 2, H.264 MP3, ADPCM, Nellymoser, AAC
SWF, F4V, ISO base mediefilformat H.264 AAC, MP3
10 2008 SWF, FLV On2 VP6, Sorenson Spark, Skjermvideo, Skjermvideo 2, H.264 MP3, ADPCM, Nellymoser, Speex, AAC
SWF, F4V, ISO base mediefilformat H.264 AAC, MP3

  • Bruk av H.264-komprimeringsformatet i FLV-filformatet har noen begrensninger, så forfattere av Flash Player oppfordrer sterkt til å bruke det nye standard F4V-filformatet.

Koding

Vanligvis Flash video FLV-filer inneholder video bitstrømmer som er en proprietær variant av H.263 video standard, under navnet Sorenson Spark ( FourCC FLV1). Sorenson Spark er en eldre kodek for FLV-filer, men den er også en allment tilgjengelig og kompatibel, fordi den var den første videokodeken som støttes i Flash Player. Det er det nødvendige videokomprimeringsformatet for Flash Player 6 og 7. Flash Player 8 og nyere versjoner støtter også avspilling av On2 TrueMotion VP6-videobitstrømmer (FourCC VP6F eller FLV4). On2 VP6 er det foretrukne videokomprimeringsformatet for bruk med Flash Player 8 og nyere. On2 VP6 kan gi høyere visuell kvalitet enn Sorenson Spark, spesielt når du bruker lavere bithastigheter . På den annen side er det beregningsmessig mer komplekst og vil derfor ikke fungere like bra på visse eldre systemkonfigurasjoner.

Flash Video FLV-filformatet støtter to versjoner av en såkalt 'screenshare' (Screen video) codec, som er et kodingsformat designet for screencasts . Begge disse formatene er basert på bitmapfliser, kan være tapsfrie ved å redusere fargedybder og komprimeres ved hjelp av zlib . Den andre versjonen kan bare spilles av i Flash Player 8 og nyere. Lyd i Flash Videofiler er vanligvis kodet som MP3. Imidlertid bruker lyd i Flash Video FLV-filer som er spilt inn fra brukerens mikrofon den proprietære Nellymoser Asao Codec . (Flash Player 10 utgitt i 2008 støtter også åpen kildekode Speex- kodek.) FLV-filer støtter også ukomprimert lyd eller ADPCM- format. Nyere versjoner av Flash Player 9 støtter AAC ( HE-AAC / AAC SBR , AAC Main Profile og AAC-LC). Støtte for koding av Flash-videofiler leveres av et kodingsverktøy som følger med Adobes Flash Professional- og Creative Suite-produkter, On2s Flix-kodingsverktøy, Sorenson Squeeze , FFmpeg og andre tredjepartsverktøy.

Medietypestøtte

Støttede medietyper i både Flash Video- og ISO-mediefilformatene:

Støttede medietyper i Flash-formatet:

  • Generell video
    • RGB (støttes av samme type kode SWF bruker)
    • kjørelengde (støttet av samme type kode SWF bruker)
    • Sorensons H.263 (innfødt til Flash Video)
    • On2 TrueMotion VP6 med og uten alfakanal (lagt til Flash Video)
  • Animerte videoer er den zlib- baserte skjerm 1 og 2 (innfødt til SWF).
  • Generell lyd er PCM og ADPCM (innfødt til SWF).
  • Vokal lyd
  • Tidsbestemt tekst krever ActionScript-spesifikke kommandoer for innlasting av teksting, som bare støttes av eksterne tekstfiler i JSON- eller W3C XML- format.

Støttede medietyper i bare ISO-basefiler for mediefil:

  • Animert video er QuickTime-typer for GIF, PNG og JPEG, som erstatter skjerm 1 og 2-koding.
  • Tidsbestemt tekst krever ActionScript-spesifikke kommandoer for å laste inn bildetekster innebygd som enten EIA-608 eller QuickTime mac-basert stiltekst med 3GPP- avledet versjon som støtter Unicode .

FLV-omformere

En FLV-omformer er en type videokonverteringsprogramvare som brukes til å gjøre videoer fra forskjellige formater til FLV. Nedenfor er en liste over populære gratis videokonvertere som støtter konvertering til FLV.

Disse programmene kjører under Microsoft Windows . HandBrake, FFmpeg og VLC kjører også under Mac OS X og Linux .

Flash-videostruktur

Overskrift

FLV-filer starter med en standard overskrift som er vist nedenfor:

Felt Data-type Misligholde Detaljer
Signatur byte [3] "FLV" Alltid "FLV"
Versjon uint8 1 Bare 0x01 er gyldig
Flagg uint8 bitmaske 0x05 Bitmask: 0x04 er lyd, 0x01 er video (så 0x05 er lyd + video)
Topptekststørrelse uint32_be 9 Brukes til å hoppe over en nyere utvidet topptekst

Pakker

Etter overskriften er filen delt inn i pakker kalt "FLV-koder", som har 15-byte pakkeoverskrifter. De første fire byte betegner størrelsen på den forrige pakken / koden (inkludert overskriften uten det første feltet), og hjelper til med å søke bakover.

Felt Data-type Misligholde Detaljer
Størrelse på forrige pakke uint32_be 0 For første pakke satt til NULL
Pakketype uint8 18 For første pakke satt til AMF Metadata
Nyttelaststørrelse uint24_be varierer Størrelse på pakkedata bare
Tidsstempel lavere uint24_be 0 For første pakke satt til NULL
Tidsstempel Øvre uint8 0 Utvidelse for å opprette en uint32_be-verdi
Strøm-ID uint24_be 0 For første strøm av samme type satt til NULL
Nyttelastdata fri form varierer Data som definert av pakketype

Den pakketype byte i en pakke / tag header er basert på det RTMP meldings-ID-byte med den AMF metadataverdi av 18 (0x12), video nyttelast verdi av 9 (0x09) og lyd nyttelast-verdi på 8 (0x08) er den eneste gyldige typer brukt. Den tredje biten indikerer at nyttelasten er kryptert ved hjelp av samme mekanisme som RTMP bruker, men dette brukes sjelden på grunn av at krypterte transporter som RTMP brukes i stedet. FLV-pakkekryptering arves vanligvis fra en MP4-fil som er lagret på en Adobe Flash Media Server .

  • Pakketyper oppgitt som 1 er en RTMP-settpakkestørrelse.
  • Pakketyper oppregnet fra 3 er RTMP-byte-leserapport, RTMP-ping, RTMP-serverbåndbredde, RTMP-klientbåndbredde.
  • Pakketyper som er oppregnet fra 8 er Audio-nyttelast, Video-nyttelast.
  • Pakketyper oppregnet fra 15 er RTMP flex stream send, RTMP flex shared object, RTMP flex message, AMF metadata, shared object, RTMP invoke.
  • Pakketypen oppgitt som 24 er en innkapslet flash-video.
FLV Tag Struktur

Etter det er det tre byte for nyttelaststørrelsen som angir lengden på nyttelastdataene , deretter fire byte for tidsstempelet i millisekunder (med den siste byten som brukes til å utvide de første tre bytene), de neste 3 byte for stream-ID (inkrementert for flere strømmer av samme type), og til slutt etterfulgt av de faktiske nyttelastdataene. Det er en direkte sammenheng mellom feltene i en FLV-tag og de som finnes i en RTMP-pakke , for eksempel bruker FLV Packetype-feltet de samme numeriske verdiene som RTMP Chunk Type-feltet (f.eks. 0x08 for lyd og 0x09 for video ). FLV-koder blir dermed konvertert til RTMP-pakker når filen streames gjennom en Flash Media Server eller tilsvarende RTMP-server.

Den første pakken man opplever er vanligvis en metadatapakke som inneholder informasjon som:

  • "varighet" - 64-biters IEEE flytende verdi i sekunder
  • "bredde" og "høyde" - 64-biters IEEE-flytpunkt i piksler
  • "framerate" - 64-biters IEEE flytende verdi i bilder per sekund
  • "keyframes" - en matrise med posisjonene til p-rammer , nødvendig når det søkes om tilfeldig tilgang.
  • "| AdditionalHeader" - en rekke nødvendige informasjonspar for strømavkoding
    • "Kryptering" - en rekke nødvendige krypteringsinformasjonspar
    • "Metadata" - Base64- kodet streng av et signert X.509- sertifikat som inneholder Adobe Access AES-dekrypteringsnøkkel kreves

Når du streames ved hjelp av en Actionscript- bygget spiller, overføres metadataverdiene ovenfor som argumenter for tilbakeringingsfunksjonen onMetaData. Audiopakker har den første byten av nyttelasten som definerer dekodingsdetaljene med de første fire bitene for kodingen som brukes, og de siste fire bitene for parametrene som kreves for å behandle kodingen. Videopakker er omvendt.

Videokodinger oppført fra 0 er:

Id Videokoding
0 RGB
1 løpslengde
2 Sorensons H.263
3 Skjerm 1
4 On2 TrueMotion VP6
5 VP6 med alfa
6 Skjerm 2
7 MP4 H.264
8 ITU H.263
9 MPEG-4 ASP .

Parametere for videobehandling oppregnet fra 1 er:

Id Parametere for videobehandling
1 nøkkelramme
2 ikke-nøkkel ramme
3 H.263 engangsramme
4 generert nøkkelramme
5 en byte-ramme som søker instruksjon

MPEG-4-kodinger som H.264, MPEG-4 ASP og AAC legger til en byteverdi med en NULL-verdi som indikerer at nyttelasten inneholder MPEG-4-konfigurasjonsdetaljer. MPEG-4-videokodinger legger også til tre byte for komposisjonens tidsstempelforskyvning som kreves for kodinger som bruker B-rammer.

Lydkodinger oppregnet fra 0 er:

Id Lydkoding
0 innfødt PCM
1 ADPCM
2 MPEG-lag 3
3 PCM - liten endian
4 Asao 16 kHz
5 Asao 8 kHz
6 Asao parameterhastighet
7 en lov
8 μ-lov

Lydkodinger oppregnet fra 10 er:

Id Lydkoding
10 MP4 AAC
11 Speex

Lydkodinger oppgitt fra 14 er MPEG-lag 3 8 kHz, enhetsspesifikk som MIDI .

Lydbehandlingsparametere med de to første bitene for samplingsfrekvensen, neste bit flagg 16-biters prøvestørrelse på med av som indikerer 8-biters prøvestørrelse, og den endelige biten flagger stereofoniske kanaler på med av som bare indikerer mono. Samplingsfrekvenser oppgitt fra 0 er 5,5 kHz, 11,025 kHz kvartal, 22,05 kHz halvparten, 44,1 kHz full.

Krypterte pakker har ytterligere 31 eller 24 byte-overskrift før AES -CBC-kryptert nyttelast som følger:

Felt Data-type Misligholde Detaljer
NumFilters uint8 1 alltid bare 1
Filternavn C-streng "Kryptering" hvis bare utvalgte nyttelaster er kryptert så er "SE"
Lengde uint24_be 16 eller 17 innledende vektorlengden
EncryptedAU uint8 bitmaske 0x80 eller 0x00 bare hvis Filternavn er "SE", betyr 0x80 kryptert nyttelast
IV uint128 varierer initialiseringsvektor for AES-dekryptering
Innhold fri form varierer kryptert nyttelast
Polstring fri form 0x10 krypteringspolstring

FLV-spillere

En FLV-spiller er en type mediespiller som brukes til å spille av Flash-video fra PC så vel som fra Internett-nettsteder. En FLV-spiller kan brukes frittstående, uten behov for Adobe Flash-redigerings- eller utviklingsverktøy. Den kan også legges inn på nettstedet ved hjelp av Flash-komponenten eller innebygd versjon av FLV-spilleren.

Adobe Flash Player er en multimedia- og applikasjonsspiller som opprinnelig ble utviklet av Macromedia og ervervet av Adobe Systems . Den spiller SWF- filer, som kan opprettes av Adobe Flash Professional , Apache Flex eller en rekke andre Adobe Systems og tredjepartsverktøy. Den har støtte for et skriptspråk som heter ActionScript , som kan brukes til å vise Flash Video fra en SWF-fil. Fordi Flash Player kjører som en nettleser- plugin-modul , er det mulig å bygge inn Flash Video på websider og se videoen i en nettleser. Flash Player-støttet visning av Flash-videofiler siden versjon 6, med Sorenson Spark og On VP6 videokodeker. Støtte ble nylig lagt til for H.264 videoinnhold også.

H.264

Flash Player 9 Update 3, utgitt 3. desember 2007, inkluderer også støtte for det nye Flash Video-filformatet F4V og H.264- videostandard (også kjent som MPEG-4 del 10, eller AVC), som er enda mer beregningsmessig krevende, men tilbyr betydelig bedre kvalitet / bithastighetsforhold. Spesielt støtter Flash Player nå video komprimert i H.264 (MPEG-4 del 10), lyd komprimert ved hjelp av AAC (MPEG-4 del 3), F4V, MP4 (MPEG-4 del 14), M4V, M4A, 3GP og MOV multimedia containerformater , 3GPP Timed Text- spesifikasjon (MPEG-4 del 17) som er et standardisert undertekstformat og delvis parsing-støtte for 'ilst' -atomet, som er den ID3- ekvivalente iTunes bruker til å lagre metadata . MPEG-4 del 2- video (f.eks. Opprettet med DivX eller Xvid) støttes ikke. I et intervju med BBC News sa hovedprogrammereren til Flash Jonathan Gay at selskapet hadde ønsket å bruke H.264 da videostøtte opprinnelig ble lagt til Flash, men hadde blitt avskrekket av patentlisensavgiftene på rundt $ 5 millioner (£ 3,5 millioner) per år.

Avspilling

Flash Player støtter to forskjellige moduser for videoavspilling:

  • Programvare gjengitt video  : Flash Player støtter programvare som er gjengitt video siden versjon 6. Slike videoer støtter vektoranimasjoner som vises over videoinnholdet. Slike innhold blir vanligvis gjengitt ved hjelp av programvaredekoding.
  • Maskinvareakselerert video  : Flash Player støtter maskinvareakselerert videoavspilling siden versjon 10.2, for videoformat H.264 , F4V og FLV . Slik video vises fremfor alt Flash-innhold, og utnytter videokodekbrikkesett installert på brukerens enhet. Utviklere må spesifikt bruke "StageVideo" -teknologien i Flash Player for å kunne avkode maskinvare. Flash Player bruker internt teknologier som DirectX Video Acceleration og OpenGL for å gjøre det.

Desktop-basert

Microsoft Windows, Mac OS X, Unix-basert

Mac OS-enheter kan spille av flash-videoer i QuickTime ved hjelp av tilleggsprogramvare (for eksempel Perian- komponenten med åpen kildekode .)

PDA-basert og smarttelefonbasert

Windows Mobile, Palm OS-basert

De iPhone og Android- enheter kan spille flash-videoer ved hjelp av ekstra programvare (som Skyfire nettleser applikasjon.) Apple iOS har aldri støttet Flash. Android-versjoner over 2.1 til 4.0 støttet Flash; Adobe har avviklet Flash Player for Android. 29. juni 2012 kunngjorde Adobe at da de avviklet utviklingen av mobilversjonen av Flash, ville de forhindre Flash-spilleren fra å installere fra Google Play Store på Android-enheter som ikke allerede har Flash-spilleren installert, og at de vil ikke gi ut en versjon av Flash-sertifisert for bruk med Android-versjon 4.1, kodenavnet Jelly Bean .

Leveringsmuligheter

Flash-videofiler kan leveres på flere forskjellige måter:

  • Som en frittstående .FLV-fil. Selv om Flash-videofiler normalt leveres ved hjelp av en Flash-spiller for kontroll, kan selve .FLV-filen bare spilles med en FLV-spiller. Det er flere tredjepartsspillere tilgjengelig.
  • Innebygd i en SWF-fil ved hjelp av Flash-redigeringsverktøyet (støttes i Flash Player 6 og nyere). Hele filen må overføres før avspilling kan begynne. Endring av videoen krever ombygging av SWF-filen.
  • Progressiv nedlasting via HTTP (støttes i Flash Player 7 og nyere). Denne metoden bruker ActionScript for å inkludere en eksternt lagret Flash Video-filklientside for avspilling. Progressiv nedlasting har flere fordeler, inkludert buffering, bruk av generiske HTTP-servere og muligheten til å gjenbruke en enkelt SWF-spiller for flere Flash Video-kilder. Flash Player 8 inkluderer støtte for tilfeldig tilgang i videofiler ved hjelp av delvis nedlastingsfunksjonalitet til HTTP, noen ganger blir dette referert til som streaming. Imidlertid, i motsetning til streaming ved hjelp av RTMP , støtter ikke HTTP "streaming" kringkasting i sanntid. Streaming via HTTP krever en tilpasset spiller og injeksjon av spesifikke Flash Video-metadata som inneholder den nøyaktige startposisjonen i byte og tidskode for hver nøkkelramme. Ved å bruke denne spesifikke informasjonen kan en tilpasset Flash-videospiller be om hvilken som helst del av Flash-videofilen fra en spesifisert nøkkelramme. For eksempel støtter Google Video , YouTube og Bitgravity progressiv nedlasting og kan søke til hvilken som helst del av videoen før buffering er fullført.
  • Strømmes via RTMP til Flash Player ved hjelp av Flash Media Server (tidligere kalt Flash Communication Server), gratis C ++ RTMP Server, VCS, ElectroServer, Helix Universal Server , Wowza Media Server , Unified Streaming Platform WebORB for .NET, WebORB for Java, erlyvideo (i erlang), eller åpen kildekode Red5- server. Fra og med april 2008 er det streamopptakere tilgjengelig for denne protokollen, uten omkoding av screencast-programvare.
  • Flash Media Server 4.5 tillater streaming av video til iPhones og iPads . Det oppnår dette ved å levere innholdet i en MPEG-2- strøm ved hjelp av HTTP Live Streaming- format.

Flash videoopptak

Det er mulig å ta opp online flash-videoer ved hjelp av stream-opptakere og skjermvideoopptaksprogramvare . Førstnevnte gir tapsfrie resultater, mens sistnevnte tillater opptak av video selv når anti- leeching- tiltak brukes.

Se også

Referanser

Eksterne linker