2010-10-11 11 views
13

Qual è il modo migliore per aggiungere funzionalità di caricamento, codifica e streaming video alla mia app Rails?Il modo migliore per aggiungere funzionalità di caricamento, codifica e streaming video alla mia app Rails?

Sto pensando a un mix come: Rails app + Video Online Encoder + Amazon S3. Cosa ne pensi ?

Per il Video Online Encoder (VOE), qual è il più facile da usare con Rails: heywatch, panvidea, encoding.com, pandastream, ...?

A proposito, l'applicazione consentirà agli utenti di riprodurre video in streaming con testi dinamici, schemi e suoni aggiunti a loro in fase di esecuzione. C'è un esempio:

  1. a rotaie app (backoffice o di front-office): caricare video (.mov, .avi, ...)
  2. VOE: la codifica video in formato FLV + storage di Amazon S3
  3. in rails app, backoffice: in un'applicazione Flash fatta in casa, "aggiungi" al video un testo e uno schema visualizzati dopo 1 minuto ad esempio (informazioni memorizzate nel DB dell'app Rails).
  4. nell'app rails, frontoffice: riprodurre il video in streaming da Amazon S3 (+ Cloudfront) in un player Flash fatto in casa che mostra dinamicamente il testo e lo schema sul video dopo 1 minuto di riproduzione.

La parte che davvero non capisco è il flusso video FLV. Stavo pensando che Cloudfront potrebbe farlo.

Spero abbastanza chiaro ;-)

Grazie a tutti per le vostre risposte!

risposta

7

Zencoder sembra freddo ed ha probabilmente il supporto API che si desidera. Usa il flash per il giocatore che sto indovinando? Avrai bisogno di FMS o Red5 per questo. Ecco un link ad un esempio davvero semplice che trascrive qualcosa memorizzato in S3 per te, in Ruby ovviamente !: http://zencoder.com/docs/integration-libraries/#library

+0

Thx! Sì, creerò una piccola app Flash per visualizzare i video in streaming. Stavo pensando che Amazon CloudFront potesse riprodurre in streaming il film FLV, ma se ho capito bene, ho ancora bisogno di una soluzione di streaming sul mio server Rails? –

+0

Non credo di sì, ma non ho mai giocato con me stesso. Potresti essere in grado di scaricare Flash per caricare un flv da remoto, ma non sarà un flusso (quindi non supporterà la ricerca senza il buffering prima), quindi l'esperienza utente ne risentirà. –

+0

Dannazione! Gestire la creazione dell'app Video in streaming è più difficile di quanto pensassi :-) Ma che dire di questo: http://www.learningapi.com/streamingmedia-articles/amazon-cloudfront-streaming/ Non è che un vero flusso video attraverso CloudFront senza FMS/Red5 sul mio server? –

1

Mi sentivo scettico usando un servizio online gratuito di terze parti. Vorrei prendere in considerazione l'utilizzo della codifica video lato server perché il servizio web di terze parti potrebbe avere prestazioni variabili e potrebbe fare praticamente qualsiasi cosa per il video. Se non hai molte CPU allora un servizio di terze parti potrebbe essere una buona scelta.

EDIT: This Link Dovrebbe aiutare un po '

+0

Thx. Potete consigliarmi qualche codifica video lato server che funzioni bene con Rails? Pensi che la mia soluzione (Rails + VOE + S3) sarà complessa da sviluppare/mantenere? –

+0

* Domanda modificata *. Penso che mi piaccia, il codificatore video online (come ho detto sopra) mi sembra un po 'scettico al riguardo. – alexy13

+0

Thx per il collegamento, proverò che .. –

9

Disclaimer: io sono un co-fondatore per transloadit.com.

Vorrei scoraggiare dal rotolare la propria soluzione. Il collegamento alexy13 pubblicato ti darà sicuramente un'applicazione in grado di ricevere video utente e codificarli. Tuttavia, finirai con alcune limitazioni:

  • I video ridimensionati verranno distorti a meno che le proporzioni siano 4: 3. Per evitare che sia necessario annusare la loro dimensione prima della conversione e quindi applicare un set di padding -vfilters a ffmpeg. Sniffare correttamente la dimensione richiederà un cocktail di almeno 2 strumenti a riga di comando (ffmpeg stesso e exiftool) + un mucchio di codice pazzo per gestire le proporzioni del display che differiscono dalle proporzioni pixel.
  • Non tutti i video verranno convertiti. A volte devi fare ulteriore sniffing sul contenuto del video e impostare alcuni flag personalizzati, altrimenti riceverai un errore. Certo, il 95% di tutti i video funzionerà probabilmente, ma ottenere questi ultimi 5% è difficile.
  • Avrete bisogno di un server web aggiuntivo che faccia la codifica video, altrimenti il ​​vostro sito sarà molto fiacco mentre un video viene codificato. È possibile aggirare questo problema utilizzando il comando nice per limitare le risorse della CPU utilizzate da ffmpeg, ma ciò si tradurrà in tempi di codifica significativamente più lunghi.

Questo è un breve elenco di problemi, ma in genere ci si trova a ~ 100 ore dall'avere un sistema che funziona senza intoppi e può sopportare un certo carico.

Quindi vorrei incoraggiarvi a ri-considerare di andare con un servizio. I nostri concorrenti sono molto gentili, ma naturalmente sarei anche molto felice se volessi controllare il nostro servizio (transloadit.com) o mandarmi una mail a [email protected] se hai qualche domanda.

V'è anche un'applicazione di esempio per l'utilizzo di Rails3 transloadit con graffetta e S3:

http://github.com/joerichsen/transloadit-paperclip-example

--fg

+0

Thx per la tua risposta. Sono d'accordo, non creerò il mio codificatore. Preferisco andare con un VOE come ho detto. Anche Transloadit è bello e il prezzo giusto. :-) Il mio problema principale riguarda la parte streaming. Pensi che io possa usare Transloadit + S3 + CloudFront + myOwnCustomFlashPlayer e godere di uno streaming video reale? Penso che sia possibile ma ho davvero bisogno di una conferma da parte di un esperto ;-) http://www.learningapi.com/streamingmedia-articles/amazon-cloudfront-streaming/ –

+1

Sì, in effetti uno dei nostri clienti sta facendo esattamente questo: Transloadit + S3 + CloudFront + FlowPlayer -> http://www.tvype.com/en/market. CloudFront gestisce perfettamente lo streaming, quindi puoi saltare all'interno del video. –

+0

@felixge grazie per questo commento. Hai riempito l'ultimo pezzo del mio puzzle (CloudFront). Transloadit sembra fantastico. – Palantir

Problemi correlati