Iteam
GitHub

Spela flashvideo på din webbplats

Flashvideo - en kort historia

För några år sedan var det riktigt krångligt att spela upp video på sin webbplats. Man kunde lägga upp en video för nedladdning, men det tog ofta lång tid och kvaliteten var rätt dålig. Lite senare kom streamingservrar som gjorde att man kunde erbjuda bättre kvalitet, i och med att användaren inte behövde ladda ner hela filmen på en gång. Men format var fortfarande ett problem - hur ser man till att en film fungerar på Windows, Mac och Linux? Streamingservrar var också ofta en dyr historia. Själv hade jag ett tag en Linuxserver där jag hade kompilerat open source-versionen av Apples Quicktime Streaming server och streamade MPEG1 så att så många som möjligt skulle kunna titta. Det funkade och var en bra kompromiss - men det var inte direkt enkelt, varken att få igång eller underhålla.

När version 6 av Flash kom introducerades ett nytt sätt att spela film på webbplatser. Men Flash Video, FLV, kunde man koda om filmer till ett format som var enkelt att visa på alla datorer med Flash installerat. Någon gång kring version 8 började detta användas ordentligt. Utöver plattformsstödet så är det också enkelt att få s.k. progressiv nedladdning att fungera, vilket innebär att tittaren kan starta filmen innan hela filmen har hämtats från server. Progressiv nedladdning är en sort fattigmans-streaming - filmen startar snabbare, men man kan t.ex. inte spola fram i en lång film och starta snabbt därifrån.

Såhär gör man

Enkelt sammanfattat gör man såhär:
1) Koda om din film till FLV-format
2) Skaffa en FLV-spelare
3) Ladda upp filmen och infoga FLV-spelaren i din webbsida.

1. Koda om film
För att koda om en film till FLV-format kan man använda Macromedia Flash, förstås. Men det finns också gratisalternativ, t.ex. Riva FLV Encoder. Om man är lite nördigare och vill ha mer kontroll över resultatet (typ som undertecknad) så går man direkt på FFMPEG, som är den underliggande kodningsapplikation som Riva och andra bygger på. Såhär använder man FFMPEG:
ffmpeg.exe -i original.avi -f flv -b 600k -s 400x300 -deinterlace -ab 56k -ar 22050 -ac 1 final.flv

Förklaring av parametrarna:

-i infil
-f format, i detta fall flv
-b bitrate, 600 kbps (glöm inte k:et, som man inte behövde i gamla versioner av FFMPEG)
-s storlek i pixlar på den konverterade filmen
-deinterlace (behövs bara om din ursprungsfil är interlace förstås)
-ab bitrate för ljudet
-ar sample rate för ljudet (i Hz)
-ac antal ljudkanaler, 1:an i exemplet betyder mono

Det finns hundratals andra parametrar för att ändra frame rate, klippa ur avsnitt, beskära etc.

2. Skaffa en FLV-spelare
FLV-filer kan inte spelas upp som de är, man behöver en Flash-applikation som läser in filen och som i regel också erbjuder möjligheter att starta, stoppa o.s.v. Den bästa FLV-spelaren är JW FLV Media Player. Den är gratis för ickekommersiella webbplatser, och kostar €20 annars. Den klarar FLV, MP4, AAC och MP3 (det går alltså också bra att göra en musikspelare om man vill). Om tittaren har rätt version av Flash så behöver man alltså inte ens koda om en film i MP4 för att visa den. Siten innehåller allt du behöver för att komma igång, inklusive exempelkod och en guide för att sätta ihop rätt parametrar till spelaren. Den nyaste versionen är 4.1 och den har fått stöd för fler format och fått en inbyggd fullskärmsvisare.

3. Ladda upp filmen och infoga FLV-spelaren Hur man infogar FLV-spelaren i sin egen HTML-kod står bra beskrivet i dokumentationen till JW FLV Media Player. Om du har en IIS-server måste du lägga till mime-typen för FLV (som är video/x-flv) för att servern ska tillåta att FLV-filer hämtas. I övrigt är det bara att lägga upp filmen som vilken annan fil som helst.

Mycket nöje!

(Glöm inte att testa fullskärmsknappen till vänster om volymkontrollen!)

Anders Bornholm
2008-08-27