2012-01-06 9 views
23

Ho provato molte, molte configurazioni diverse, file, codifiche, browser, ecc ..., ma questo è l'esempio più semplice che dimostra il problema che sto avendo.Come configurare S3 e Cloud Front per lo streaming di video HTML5? Provato tutto

Se si incolla l'URL del video di esempio per JSPlayer in FF 8.0.1, il video viene riprodotto in linea:

http://video-js.zencoder.com/oceans-clip.webm

se prendo quello stesso video e caricarlo al mio secchio S3, è trigger scaricare invece:

https://s3.amazonaws.com/turingvideos/oceans-clip.webm - o - http

(le autorizzazioni vengono lette per tutti sul file e secchio)

Quindi, proviamo Cloud Front.

d2yat6m71lu23b dot CloudFront dot net oblique oceani-clip.webm (download grilletto)

And Cloud anteriore streaming:

strzsu4h2ax96 dot CloudFront dot net oblique oceani-clip.webm (filatore infinito)

Le stesse cose di base accadono quando si utilizza anche un tag video html. Funziona bene da zencoder, borked su qualcosa di diverso dalla lettura del disco locale.

Quindi, quale magia è la gestione di zencoder che è completamente fuori dalla mia portata con S3/CloudFront? Sono completamente perplesso.

Edit:

Impostazione del tipo di contenuto e la disposizione a "video/WebM" e "in linea" ha fatto il trucco. Grazie per la risposta rapida ragazzi.

+1

Hai provato l'impostazione delle intestazioni HTTP 'Content-Type' e 'Content-Disposition' sui file su S3? –

+0

Ho appena fatto come suggerimento di seguito e che lo ha risolto. Grazie. – turing1

+0

Si prega di [accettare] (http://meta.stackexchange.com/a/5235/152479) la risposta se ti ha aiutato. http://meta.stackexchange.com/a/5235/152479 – Mischa

risposta

47

Utilizzando la console di S3 gestione web (https://console.aws.amazon.com/s3), selezionare il secchio, destro del mouse su uno dei file video, passare alla scheda metadati e impostare 2 intestazioni:

  • Content-Type: qualunque sia il vostro video tipo di contenuto del file è
  • Content-Disposition: inline

Inoltre, assicurarsi che la vostra distribuzione CloudFront è impostato come una distribuzione di "streaming" e non un "download" uno.

Edit:

Dalla documentazione AWS:

server CloudFront non determinano il tipo MIME per gli oggetti che servono. Pertanto, quando carichi un oggetto all'origine, devi impostare l'intestazione Content-Type dell'oggetto.

Fonte: http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/ObjectMIMEType.html

+0

Questo ha fatto il trucco. Grazie! – turing1

+8

@ turing1 - se questa risposta è stata la soluzione al tuo problema, devi contrassegnarlo come risposta accettata (segno di spunta a sinistra sotto i voti) –

+0

Ha funzionato anche per me. Ecco un altro punto. La console di amministrazione di s3 ha una selezione meta drop che non offre cose come "video/mp4", ecc ... Nessun problema però. Puoi semplicemente inserirne uno nella casella a discesa. Mi ci è voluto un po 'per capirlo. Grazie! –