Doprogramoval jsem do tohoto krásnéího blogu videogalerii. Potřeboval jsem mít nejenom databázi fotografií, ale i videa. Bohužel to nebylo až tak jednoduché, jak jsem si myslel.
Celý proces měl několik úskalí, které zde nastíním a pokusím se i ukázat vlákna vedoucí k vyřešení problému:
1) upload souborů
S uploadem souborů mám své zkušenosti, takže s tím nebyl až takový problém. Relativně příjemný popis základních příkazů je na Králíkově blogu, je ale nutné do programu doplnit bezpečnostní ošetření aby lidé nemohli uploadovat "škodlivé" soubory. Problém, na který jsem narazil ale nevyřešil ho (protože nemám vlastní server, jsem na hostingu) je maximální velikost uploadovaných souborů. Obecně je limit někde kolem 5-8 Mega (což pro mé účely stačí), ale pokud bychom chtěli uploadovat větší soubory, není jiná možnost než změnit konfiguraci php.ini souboru. Tento soubor ale může měnit jenom ten kdo nainstaloval PHP na serveru, který používáme.
2) screenshotování videa do thumbnailu
Největší problém je zpracování screenshotu uploadnutého videa. Jediný software napojitelný na PHP, který jsem našel je knihovna pro práci s videem nazvaná ffmpeg-php, ale tu je třeba instalovat do PHP, k čemuž zase nemám oprávnění 🙁 Tento problém jsem tedy nevyřešil a jako provizorní opatření jsem použil zobrazování videa bez autorun, což je datově dosti náročné řešení 🙁
3) zobrazení videa
Pro zobrazení videa jsem testoval několik možností od zobrazení v tagu img dynsrc= (zobrazuje ale asi jenom .avi) přes komplikovanější object s vloženým classid="clsid:05589FA1-C356-11CE-BF01-00AA0055595A". Nakonec se ale ukázalo jako nejlepší použít jednoduchý embed, jehož použití je hezky popsáno například zde. Co v tagu embed funguje dost divně je zobrazování ovládání videa, který mi u souborů přehávaných přes MedaPlayer vůbec nejde vypnout, zatímco u souborů přehrávaných přes QuickTime to je OK.
4) pořádné zobrazení videa
Protože MSIE zobrazuje objekty Active-X tak, že fungují až po kliknutí, je třeba to trošku obejít. Když je tag embed vložený přímo do HTML kódu stránky, funguje to až po kliknutí. Pokud se ovšem kód vloží JavaScriptem z externího souboru, zobrazuje se video hned a bez keců. Proto bylo třeba vytvořit zvláštní .js soubor, který si hlavní HTML stránka volá do sebe a když se má zobrazit video, zavolá se JavaScriptová funkce obsažená v tom .js souboru, která obsahuje jednoduchý document.write a kód tagu embed, který zobrazuje video. Jak tohle funguje v reálů můžete vidět ve ccvičné galerii Videoklipy zde na blogu.