Under de senaste månaderna har dojo4 arbetat feberartat på en mycket snygg ny produkt för vår kund: MoviMe Networks som gör det möjligt för flygresenärer att snabbt hyra och ladda ner spelfilmer till sina iPads från flygplatsportar medan de väntar på att gå ombord på sina flyg. Vi är glada att meddela att produkten har gått in i live beta-testning på Chicago O’Hare International Airport!
Vi hoppas att du vill starta din iPad och testa den nästa gång du flyger från eller via ORD. Medan du väntar på att din film laddas ner kanske du vill fundera över alla olika komponenter som arbetar tillsammans för att underlätta din filmvisning och snabba nedladdning. Först hämtar ett studieingest-automatiseringssystem gigantiska råa filmfiler från filmstudios och kodar om dem för perfekt iPad-visning. Sedan skapar ett centraliserat hanteringssystem produkter i MoviMe Store för dessa nya filmer som du kan bläddra igenom och köpa. Och filmerna distribueras till ett Content Distribution Network (CDN) på flygplatsen så att de kan laddas ner i hög hastighet innan du behöver gå ombord på ditt flyg. Det är mycket att tänka på under den korta tiden det tog att ladda ner din film. Kanske du skulle vilja hyra en till medan vi går igenom några av de intressanta tekniska detaljerna...
Videofiler är stora. En spelfilm i HD-kvalitet tar cirka 10GB. Filerna som människor laddar ner från iTunes är i intervallet 1-2GB. Videofilerna som vi slutligen använde för MoviMe är cirka 1GB i storlek.
Storleken på dessa filer introducerade några intressanta utmaningar. De flesta HTTP-bibliotek är inte utformade för att hantera så stora filer. De får inte plats i minnet på en iPad. De tar lång tid att flytta. Vi behövde tänka annorlunda om hur vi hanterar sådana filer än vad vi normalt gör med bilder och annan media. Vår lösning var att ladda upp och ladda ner filer i fragment. Vi kodade iPad-spelaren för att använda byteintervall när filmerna laddades ner, och sedan återskapa dem till redo-att-spela-filer. Detta krävde även att vi lade till stöd för byteintervall i vår uploads-kontrollant, liksom i vår Mongo gridFs-driver, så att vi kunde hämta filfragment effektivt. Vi använde flerdelsuppbörd för att skjuta filer från servrarna, som förberedde filmerna för lämpliga S3-buckets.
En annan fördel med att hantera filfragment var att vi kunde parallellisera både uppladdningar och nedladdningar för att minska tiden det tar att flytta filerna. iPad-spelaren kan ladda ner upp till 4 fragment parallellt, vilket minskar tiden som krävs för att ladda ner en hel fil. Vi upptäckte att vi kunde använda upp till 5 samtidiga flerdelsuppbörd till en S3-bucket för att minska uppladdningstiden för att få mediafilerna till S3.
Allt detta så att du kan hitta och ladda ner din favoritfilm på flygplatsen i blixtsnabb fart och titta på den på din nästa flygresa! Kommer snart till en flygplats nära dig...
denna bloggpost av Fred Jean och Garett Shulman och Corey Kohn