Sto lavorando a un servizio TV online. Uno degli obiettivi è che il video venga riprodotto senza plug-in aggiuntivi del browser (ad eccezione di Flash).Streaming live tramite MP4
Ho deciso di utilizzare MP4, perché è supportato dalla maggior parte dei browser HTML5 e Flash (per fallback). I video vengono transcodificati da ASF su un server da FFMpeg.
Tuttavia, ho trovato che MP4 non può essere trasmesso in diretta perché ha un atomo moov per i metadati che deve specificare la lunghezza. FFMpeg non può trasmettere direttamente mp4 allo stdout, perché mette il moov alla fine del file. (Live transcoding and streaming of MP4 works in Android but fails in Flash player with NetStream.Play.FileStructureInvalid error)
Naturalmente, MPEG-TS esiste, ma non è supportato da HTML5 <video>
.
Quello che ho pensato è un metodo per transcodificare lo streaming in tempo reale su MP4 e su ogni nuova richiesta HTTP per esso, prima invia un moov che specifica un numero molto lungo per la lunghezza del video, quindi avvia l'invio il resto del file MP4.
È possibile utilizzare MP4 per lo streaming in questo modo?
Dopo alcune ricerche e la risposta di av501, capisco che le dimensioni dei frame devono essere conosciute in modo che possano funzionare.
Il file mp4 può essere segmentato in parti più piccole in modo che possa essere trasmesso in streaming?
Ovviamente, il passaggio a un altro contenitore/formato è un'opzione, ma l'unico formato compatibile sia con Flash sia con HTML5 è mp4/h264, quindi se devo supportare entrambi, dovrei effettuare la transcodifica due volte.
ecco una buona spiegazione, iniziando a sembrare come rtmp o qualche protocollo personalizzato è la strada da percorrere http://fabiensanglard.net/mobile_progressive_playback/index.php –
la tua risposta ha avvertenza, ha scritto sopra. Il tempo è materia per lo streaming e la riproduzione. quindi -1 – agfe2