Mitä latausohjelma tekee mitä selain ei tee
Neljän gigatavun tiedosto, yhdeksänkymmentä prosenttia valmiina, ja sitten puhelinsoitto — tai vain lukittu ruutu — ja se on poissa. Tämä on yleisin valitus lataamisesta iOS:ssä, eikä se ole virhe. Se on käyttöjärjestelmä joka tekee juuri sen mitä se on suunniteltu tekemään, ja syy siihen miksi erillinen sovellusluokka on olemassa.
- 30 s Suunnilleen kuinka kauan keskeytetty sovellus jatkaa ennen kuin iOS pysäyttää sen
- 206 HTTP-tila joka tekee jatkamisesta ylipäätään mahdollista
- 1 tavu Kuinka paljon oikein jatketusta siirrosta ladataan uudelleen
Miksi siirto pysähtyy kun vaihdat sovellusta
iOS ei anna sovelluksen jatkaa työskentelyä vain koska se haluaisi. Kun poistut sovelluksesta, se keskeytetään sekunneissa, eikä keskeytetyllä sovelluksella ole suoritinaikaa, verkkopistokkeita eikä tapaa huomata että se on pysäytetty. Kaikki mitä se piti muistissa on edelleen siellä, mutta jäätyneenä — ja jos järjestelmä tarvitsee muistin, sovellus lopetetaan suoraan ilman kertomista.
Sovelluksen sisällä tavallisella yhteydellä toimiva siirto siis päättyy kotieleeseen. Jotkin sovellukset piilottavat tämän pyytämällä muutaman ylimääräisen sekunnin taustaaikaa, minkä takia lataus joskus selviää taustalle siirtymisestä täsmälleen niin kauan kuin kestää huomata ettei se selvinnyt.
Oikea vastaus on eri laatuinen. iOS tarjoaa taustasiirtopalvelun: annat järjestelmälle listan osoitteita ja kohteita, ja järjestelmä lataa itse, omassa prosessissaan, omalla aikataulullaan. Sovelluksesi voi olla keskeytettynä, lopetettuna, tai ei käynnissä lainkaan — siirto jatkuu, ja sovellus käynnistetään uudelleen taustalla kun on jotain raportoitavaa. Tämä on mekanismi jokaisen latauksen takana joka selviää lukitusta ruudusta, ja sen käyttäminen on sovelluksen etukäteen tekemä suunnittelupäätös, ei asetus jonka voit kytkeä päälle.
Neljä mekaniikkaa jotka päättävät selviääkö lataus
- Aluepyyntö
- HTTP-pyyntö joka pyytää tavuja 5 000 000 eteenpäin koko tiedoston sijaan. Jos palvelin vastaa
206 Partial Content, keskeltä jatkaminen on mahdollista; jos se vastaa200 OKja aloittaa alusta, se ei ole — tiedosto pitää hakea uudelleen nollasta. - Rinnakkaiset yhteydet
- Yhden tiedoston jakaminen useaan alueeseen ja niiden hakeminen samaan aikaan. Se auttaa koska yksittäistä yhteyttä usein kuristaa palvelin tai rajoittaa edestakainen viive, ei koska internetisi on nopeampi useammalla avoimella pistokkeella.
- Sitoutunut siirtymä
- Kuinka paljon tiedostosta on turvallisesti kirjoitettu levylle, vastakohtana vielä matkalla olevalle. Lataus joka jatkuu viimeisestä sitoutuneesta tavusta on oikein; yksi joka jatkuu siitä mitä se *luulee* vastaanottaneensa tuottaa vioittuneen tiedoston joka paljastuu vasta tuntien päästä.
- Taustaistunto
- Yllä kuvattu järjestelmän ajama siirto. Se käynnistyy hitaammin, sille ei voi antaa mielivaltaista mukautettua logiikkaa, ja se on ainoa asia joka jatkuu kun sovellus ei ole käynnissä.
Miksi lataus epäonnistuu, ja miltä jokainen epäonnistuminen näyttää
Useimmat "jumissa oleva lataus" -raportit ovat yksi näistä viidestä, ja ne on helppo erottaa toisistaan kun tietää muodon.
| Mitä näet | Mitä oikeasti tapahtuu | Mikä auttaa |
|---|---|---|
| Pysähtyy hetkellä jolloin poistut sovelluksesta | Siirto toimi prosessin sisällä, ei taustaistunnossa. | Ei mitään mitä voit tehdä ulkopuolelta — tämä on sovellussuunnitteluongelma. |
| Käynnistyy uudelleen 0%:sta joka kerta | Palvelin jättää huomiotta aluepyynnöt, joten ei ole tapaa jatkaa keskeltä. | Vakaa yhteys, tai pienempi tiedosto. Jotkin isännät sallivat alueet vain allekirjoitetuille linkeille. |
| Epäonnistuu muutaman minuutin jälkeen, toistuvasti | Linkki on vanhentunut. Monet isännät myöntävät osoitteita jotka ovat voimassa viisi tai kymmenen minuuttia. | Hae linkki uudelleen sen sivulta ja aloita alusta; vanha ei toimi koskaan. |
| Latautuu nopeasti, sitten tiedosto ei avaudu | Se mikä saapui oli HTML-virhesivu tai kirjautumissivu videotiedoston nimellä. | Tarkista koko — 14 kt:n "elokuva" on verkkosivu. Tarkasta linkki ennen siihen sitoutumista. |
| Hyvin hidas nopeasta yhteydestä huolimatta | Yhteyskohtainen kuristus palvelimen päässä. | Enemmän rinnakkaisia yhteyksiä, jos palvelin sallii ne. Jos se rajoittaa IP-osoitteen mukaan pistokkeen sijaan, mikään ei auta. |
Kun tiedostoa ei ole ollenkaan ladattavaksi
Suuri osa webin videosta ei toimiteta tiedostona. Se toimitetaan HLS:nä — .m3u8-soittolistana joka listaa satoja pieniä segmenttejä, kukin muutaman sekunnin, usein useilla laatutasoilla jotta soitin voi vaihtaa yhteytesi muuttuessa. Ei ole yksittäistä URL-osoitetta joka pitää elokuvan, koska elokuva on olemassa vain sarjana.
Yhden tallentaminen tarkoittaa jokaisen segmentin hakemista ja sitten niiden uudelleenkäärintää: video- ja äänistriimien kirjoittamista tavalliseen MP4-säiliöön. Mitään ei koodata uudelleen, joten mitään ei häviä ja se vie sekunteja elokuvan pituuden sijaan. Tulos on tavallinen tiedosto joka toistuu missä tahansa.
Tämä on myös syy miksi "lataa tämä striimi" kestää huomattavasti kauemmin käynnistyä kuin tiedoston lataaminen: soittolista pitää hakea ja jäsentää, laatutaso valita, ja vasta sitten segmentit voivat alkaa saapua. Ja se on syy miksi joitakin striimejä ei voi tallentaa lainkaan — jos segmentit on salattu DRM-järjestelmällä, avaimet ovat tarkoituksella saavuttamattomissa, eikä mikään lakia kunnioittava työkalu pääse sen ohi.
Mikä erottaa oikean latausohjelman latauspainikkeesta
Se selviää sovelluksen sulkemisesta
Taustasiirrot annettuna järjestelmälle, siirtymällä joka jatkuu samasta sitoutuneesta tavusta tiedoston uudelleenaloittamisen sijaan.
Se kertoo mikä linkki on ennen sitoutumista
Koko, tyyppi ja tukeeko palvelin jatkamista — kaikki tiedettävissä yhdestä HEAD-pyynnöstä, ja kaikki hyödyllistä ennen kuin käytät neljä gigatavua datapaketistasi.
Se jonottaa tulvimisen sijaan
Kymmenen tiedostoa kerralla on hitaampi kuin kolme kerrallaan, koska jokainen yhteys saa pienemmän osuuden ja epäonnistumiset kertautuvat. Jono järkevällä samanaikaisuusrajalla valmistuu aikaisemmin.
Se mikä saapuu on tavallinen tiedosto
Kansiossa jonka näet, järkevästi nimettynä, minkä tahansa toistettavissa — ei tietokantablobia jonka vain kyseinen sovellus voi avata.
Tavat jotka estävät useimmat latausongelmat
- Aloita isot tiedostot Wi-Fillä ja jätä ruutu päälle ensimmäiset sekunnit
Siirtyminen taustaistuntoon tapahtuu aikaisin; sen jälkeen ruudulla ei ole enää väliä.
- Älä jonota kahtakymmentä kohdetta kerralla
Kolme viiteen samanaikaista siirtoa on makea kohta lähes jokaisella yhteydellä.
- Tarkista vapaa tila ennen, ei jälkeen
Siirto joka täyttää levyn epäonnistuu 98 %:ssa, ja iOS on saattanut jo tyhjentää välimuistisi tilaa tehdessään.
- Suhtaudu välittömään "valmis"-tilaan epäillen
Elokuva joka valmistui kahdessa sekunnissa on virhesivu. Katso tiedostokokoa.
- Hae vanhentuneet linkit uudelleen niiden sivulta
Kuolleen allekirjoitetun URL:n uudelleenyrittäminen epäonnistuu ikuisesti, riippumatta kuinka monta kertaa sovellus yrittää sitä.
Miten tämä eroaa laitteiden välillä
Tiukin ympäristö: keskeytys on aggressiivista ja tallennustila tiukka. Taustaistunnot eivät ole optimointi täällä, ne ovat ainoa asia joka toimii.
Samat säännöt, enemmän tilaa toimia — ja ainoa iOS-laite jossa iso kirjasto voi järkevästi mennä ulkoiselle asemalle sisäisen tallennustilan sijaan.
Ei keskeytystä lainkaan, joten pitkät siirrot käyttäytyvät kuten millä tahansa työpöydällä. Käytännön raja on palvelin, ei käyttöjärjestelmä.
Kysymyksiä joita tämä herättää
Tarkoittaako enemmän yhteyksiä aina nopeampaa latausta?
Ei. Ne auttavat kun palvelin rajoittaa jokaisen yksittäisen yhteyden nopeutta, mikä on yleistä. Ne eivät tee mitään kun raja on oma yhteytesi, ja ne voivat pahentaa asioita kun isäntä laskee pistokkeet IP-osoitteen mukaan ja alkaa hylätä niitä. Jossain neljän ja kahdeksan välillä on hyödyllinen alue; kolmekymmentä on vastatuottavaa.
Voiko lataus jatkua kun ruutu on lukittu?
Kyllä, jos se annettiin järjestelmän taustasiirtopalvelulle. Lukitusruutu on merkityksetön kyseiselle palvelulle — sovelluksen keskeytyminen on se mikä merkitsee, ja koko mekanismin pointti on että se jatkuu siitä huolimatta.
Miksi lataukseni käynnistyy uudelleen jatkumisen sijaan?
Palvelin ei kunnioittanut aluepyyntöä. Sen huomaa koska edistyminen palaa nollaan jatkamisen sijaan. Jotkin isännät tukevat alueita vain allekirjoitetuilla latausosoitteillaan, jotkin poistavat ne kokonaan käytöstä, ja muutamat kunnioittavat niitä pienille tiedostoille mutta eivät suurille.
Onko striimin muuntaminen MP4:ksi sama kuin sen uudelleenkoodaus?
Ei. Uudelleenkäärintä siirtää olemassa olevan video- ja äänisisällön MP4-säiliöön koskematta niihin — häviötöntä, ja tarpeeksi nopeaa valmistuakseen sekunneissa. Uudelleenkoodaus rakentaa kuvan uudelleen eri koodekilla ja häviää aina laatua. Jos kaksituntisen striimin tallentaminen kestää kaksi tuntia, jokin koodaa uudelleen vaikkei sen tarvitsisi.
Miten FoxDL lataa
Moottorilla on kaksi kaistaa: prosessin sisäinen joka on nopea kun sovellus on näytöllä, ja järjestelmän taustaistunto joka ottaa vallan samasta tavusta kun se ei ole.
- Rinnakkaiset lohkot yksittäiselle tiedostolle, kirjoitettuna suoraan lopulliseen sijaintiinsa levyllä väliaikaisten osien sijaan joita pitäisi liittää jälkikäteen.
- Taustasiirrot jotka jatkuvat kun sovellus poistuu ruudulta, ja jatkavat viimeisestä sitoutuneesta siirtymästä — ei siitä viimeisestä tavusta jonka sovellus luuli saaneensa.
- Jatkaminen katkoksen, uudelleenkäynnistyksen tai pakkosulkemisen jälkeen, edellyttäen että palvelin kunnioittaa aluepyyntöjä. Kun se ei tee, FoxDL sanoo niin sen sijaan että silmukoisi.
- HLS-striimit uudelleenkäärittynä MP4:ksi, joten se mikä laskeutuu kirjastoon on tavallinen tiedosto, ei kansio segmenttejä.
- Latausten tarkastaja joka raportoi linkin todellisen koon, tyypin ja jatkamistuen ennen aloittamista.
- Kaikki laskeutuu tavalliseen kansioon jonka Tiedostot-sovellus näkee.
Ilmaiset kiintiöt eroavat alustan mukaan: iPhonessa ja iPadissa pieni määrä kertoja täydentyneenä lyhyellä palkitulla videolla jonka käynnistät itse; Macilla, missä ei ole lainkaan mainontaa, kiinteä päivittäinen määrä. Pro poistaa rajan jokaisella laitteella.
Usein kysytyt
- Jatkuvatko lataukset kun poistun sovelluksesta?
- Voiko keskeytynyt lataus jatkua siitä mihin se pysähtyi?
- Voiko FoxDL ladata HLS-striimin (m3u8)?
- Miksi lataukseni on hidas, ja voinko nopeuttaa sitä?
- Kuinka monta latausta voin tehdä ilmaisversiossa?
Lue lisää
Mitä täytyy tapahtua ennen kuin verkkosivu antaa sinulle tiedostonsa
Neljä tapaa joilla sivu toimittaa videota, ja miksi vain yksi niistä on tiedosto jonka voit säilyttää.
Missä tiedostosi oikeasti asuvat iPhonessa, ja kuka näkee ne
Sandbox, mihin lataukset oikeasti menevät, ja miksi tiedoston uudelleennimeäminen rikkoo niin monta sovellusta.
Miksi iPhone avaa yhden videotiedoston ja hylkää seuraavan
Säilöt, koodekit ja kolme tapaa katsella tiedostoa, jota iOS kieltäytyy avaamasta.
Kirjastosi, vihdoin yhdessä paikassa.
Ilmainen lataus. Ei tiliä eikä rekisteröitymistä — koko ominaisuusjoukko on ilmaisversiossa.