Domanda

Devo creare qualcosa che inizi a fornire un video codificato H.264 a un flash player a metà del file (per supportare il salto a un punto del video che non è stato ancora memorizzato nel buffer).

Attualmente i video sono nel formato contenitore FLV, ma la transcodifica è un'opzione.Sono riuscito a riscrivere l'intestazione del file e le informazioni sui metadati per un determinato offset di byte.Funziona con i video più vecchi, ma non con i file codificati H.264.Sospetto che ciò sia dovuto al fatto che anche i tag video all'interno del file devono essere modificati, il che non è fattibile (richiederebbe troppa potenza di elaborazione).

Qual è il modo "corretto" per farlo?

È stato utile?

Soluzione

Il flash player può iniziare a riprodurre video H.264 solo dopo aver scaricato MOOV atom.I fornitori di pseudo-streaming esistenti ti forniscono semplicemente un'intestazione FLV - i primi 13 byte del file o un'intestazione hardcoded - e quindi servono il file dall'offset specificato.Se vuoi creare uno pseudo-streamer H.264, dovrai fare in modo che emetta l'intestazione FLV, quindi un atom MOOV e quindi servire il resto del file dall'offset specificato.Se non utilizzi un contenitore FLV, non avrai bisogno dell'intestazione FLV, ma avrai comunque bisogno dell'atom MOOV.

Sfortunatamente, non penso che sarai in grado di utilizzare l'atomo MOOV dal file su disco;le informazioni in esso contenute non saranno adatte al frammento di file che servi.Quindi dovresti analizzare l'atomo esistente e generarne uno tuo che fosse appropriato per la parte servita del file.

Se sono presenti strutture complicate all'interno del file H.264, lo pseudo-streaming potrebbe essere ancora più complicato.Se l'analisi del file non è fattibile, temo che potresti non essere in grado di eseguire lo pseudo-streaming dei tuoi contenuti multimediali.

Altri suggerimenti

@yoavf - Penso che l'OP sia interessato agli aspetti lato server dello streaming h.264 su richiesta all'interno dei file FLV.Penso che riutilizzare i giocatori esistenti sarebbe carino per lui.O forse sono i miei bisogni che vengono fuori?<:S

Dal secondo collegamento di yoavf, c'è un altro collegamento a quello di Tinic Uro Che cosa è successo ai video sul web? .Una citazione rilevante:

Sarà possibile inserire flussi H.264 nella tradizionale struttura di file FLV?Lo farà, ma incoraggiamo fortemente tutti ad abbracciare il nuovo formato di file standard.Ci sono limiti funzionali con la struttura FLV durante lo streaming H.264 che non potremmo superare senza una riprogettazione del formato file.Questo è uno dei motivi per cui ci stiamo allontanando dalla tradizionale struttura dei file FLV.Gestire specificamente le intestazioni e i finali delle sequenze è complicato con i flussi FLV.

Quindi, sembra che si possa armeggiare con la codifica ffmpeg (se è così che ottieni i tuoi FLV, come me) o si può entrare nel nuovo formato.Hmmmm....

due cose che puoi fare:

1) usa lighttpd ed è il plug-in di streaming mp4 che genererà al volo il contenitore di streaming richiesto

2) crea un FLV con fotogrammi chiave e utilizza uno script di pseudo-streaming (come XMOOV) per trasmettere in streaming il tuo file.

se hai bisogno di mp4/aac puoi semplicemente inserirli nel contenitore FLV, con grande dispiacere di Adobe, ma funziona.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top