2012-05-17 20 views
5

Sto ricevendo un flusso MJPEG dalla mia fotocamera. Quando guardo i dati del video con un editor esadecimale, sembra che non contenga informazioni di streaming. Vedo solo un JPEG grezzo dopo l'altro, ma nessuna informazione sul framerate ecc.MJPEG Stream Information

È la mancanza di qualsiasi meta informazione normale per MJPEG o è solo in relazione alla telecamera che sto usando? Se non ci sono informazioni sul flusso, come può un giocatore sapere quanto velocemente giocare al video?

risposta

6

L'assenza di metadati è normale. Le telecamere IP in genere inviano MJPEG come tale, un'immagine JPEG dopo l'altra come uno stream. Questo è il file MJPEG valido più semplice. Se dovessi prendere un gruppo di jpeg, inserirli in un grande file gigante e inviarlo a ffmpeg, lo vedrebbe come un file di formato mjpeg valido. Alcune fotocamere aggiungeranno un'intestazione aggiuntiva per contenere i dati audio, ma non è necessaria per essere considerata jpeg motion valido.

Molte telecamere includono un'intestazione come X-Framerate, nell'intestazione HTTP quando lo stream viene inizialmente inviato, oppure è possibile impostarlo come parte della configurazione della telecamera. Tuttavia, quando una telecamera invia solo jpeg, non c'è modo di dire dal flusso stesso quale sia il framerate.

0

Normalmente i dati MJPEG vengono inviati all'interno di un involucro di streaming media come AVI o MOV (quicktime). Il formato del wrapper conterrà il framerate e le informazioni sui dati audio opzionali.

+0

Ma i dati MJPEG non contengono tali informazioni? – Toby

+0

Hai verificato i metadati all'interno del flusso JPEG (ad esempio il marcatore APPxx) per le informazioni? Pubblica un frame di esempio e lo analizzerò. – BitBank

3

È la mancanza di qualsiasi meta informazione normale per MJPEG o è solo in relazione alla telecamera che sto usando? Se non ci sono informazioni sul flusso, come può un giocatore sapere quanto velocemente giocare al video?

Per aggiungere a una risposta già ricevuta, la telecamera IP è una fonte di video in diretta e i frame vengono generalmente presentati non appena arrivano dalla fotocamera. La telecamera IP rara allega informazioni extra per frame diverse dalla dimensione della fama (alcune non fanno nemmeno questo! Inviano solo dati e separatori). Alcuni ancora aggiungono timestamp e dati extra come lo stato di rilevamento del movimento.

La maggior parte delle telecamere IP non esegue una frequenza fotogrammi costante. Cioè, la frequenza fotogrammi potrebbe variare, esp. più in basso in condizioni di scarsa illuminazione. È responsabilità della parte ricevente allegare timestamp per frame quando si esegue il multiplexing dei dati nel formato contenitore. La data e l'ora potrebbero essere recuperate dai metadati (che raramente esistono) o - più frequentemente - i timbri del destinatario un frame con il tempo di ricezione locale.

Questo è il modo per il lettore di riprodurre la sequenza video nella giusta frequenza. Il feed live viene in genere presentato sulla base di "mostra il frame ricevuto il più presto possibile".