H. pro mě objevil jednu věc související s videi MP4 v kodeku H.264. Pokud chcete přehrávat videa mp4 v kodeku H.264 na webu v nějakém přehrávači (třeba v Neternity Flash Media Playeru :-), tak se někdy můžete divit, že se video začne přehrávat až po jeho celém načtení do paměti počítače. Což třeba u 100MB videa může trvat poměrně dlouho. Přitom není důvod, aby se čekalo na celý soubor, když je možné využít progresivní download a přehrávat video téměř hned. Mno, má to jeden malý háček.
Jak mi bylo vysvětleno, důvod je ten, že některé encodery dávají index keyframů až na konec souboru videa. To znamená jediné – video se může začáít přehrávat až poté, co přehrávač načte index. A je-li až na konci, musí načíst celý solubor.
Měl jsem video ve formátu MOV (1280×720) pořízené foťákem, to jsem překonvertoval do MP4 (H.264) nejprve v iJoysoft FL/MP4 converteru, poté v open source prográmku WinFF (mimochodem, WinFF mě velice zaujal tím, že výstupem je video ve znatelně menší velikosti s velmi drobou kvalitou). Výsledkem bylo ale v obou případech to, že video se začlo přehrávat až po strašně dlouhé době (tedy po načtení celého souboru).
Pomohla jednoduchá tahle utilitka pojmenovaná QTIndexSwapper od Renaun Ericksona napsaná v AIRu. Tanedělá nic menšího, než že přehodí u videosouboru (funguje to jen u videí mp4 v kodeku H.264) index z konce na začátek. Je to jednoduché až to bolí. A funguje to. 🙂
PS: Záměrně neřeším streaming (rtmp), ale jednodušší variantu, kdy videa jsou přehrávána přes http.