Linux files

estrarre un singolo frame da uno stream mjpeg

by root on Feb.06, 2009, under scripts

Questa ricettina serve ad estrarre un singolo frame da uno stream mjpeg
Usa curl e mplayer.

curl -s <stream url> | mplayer  -demuxer +rawvideo -vc +ffmjpeg -fps 2  -rawvideo fps=2:w=640:h=480 -noextbased -vo jpeg -frames 1 -

Verrà creato nella directory corrente un file, “00000001.jpg”, con il frame catturato dalla streaming camera.
Praticamente dico a mplayer di fare il play di stdin (il nome del file è “-”), che viene fornito da curl tramite la pipe “|”, forzandogli la tipologia di codec e demuxer, altrimenti per default lui tenta di capirla dal file di ingresso facendo delle seek.
Gli dico inoltre di produrre file jpeg piuttosto che fare play su video ( -vo jpeg ) e di prendere un solo frame (-frames 1)
Dato che stdin non prevede seek, se non specificassi i parametri con cui è codificato lo stream otterrei questo errore:

Cannot seek backward in linear streams!
Seek failed

Prerequisiti sono curl e mplayer

sudo apt-get install mplayer curl

Riferimenti

:, ,
No comments for this entry yet...

Leave a Reply

Cerchi qualcosa?

Usa la form qui sotto per cercare nel sito

Links

Blogroll

Archivi

Tutti gli articoli in ordine cronologico...