Hi, I would like to create a small app that displays an http video stream coming from a remote Pi running mjpg-streamer
I’ve got a look at ofxIpVideoGrabber, but I’m not sure if this addon will be able to compile and run on a Pi.
Furthermore, I really wonder if I need a full blown addon, provided that few lines of Python seems to do the job :
import numpy as np
a = bytes.find('\xff\xd8')
b = bytes.find('\xff\xd9')
if a!=-1 and b!=-1:
jpg = bytes[a:b+2]
i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR)
if cv2.waitKey(1) ==27:
While the above code works OK on a Pi it has two drawbacks :
- it relies on openCV
- it works only under XWindow and is very slow
I just would like a very simple piece of of code to decode the stream and get (for each frame) an image I could project on a texture… Any barebone addon anywhere ? I may have missed a message in the forums but I didn’t found anything…
ofxIpVideoGrabber is simple and should run fine on a Pi. If you want to broadcast a an mjpeg stream from a pi, check out https://github.com/bakercp/ofxHTTP/tree/master/example_basic_ip_video_server.
Thanks, I’ll try with ofxIpVideoGrabber !
BTW, the audio stream is captured from a webcam - Whilst mjpg-streamer does a good job (it’s very fast) I wonder how difficult it would be to create a live broadcaster with OF instead…
Christopher, I did a try with a very simple ofApp with OF0.8.4
Connecting to the mpeg stream seems ok, but I get this error
[ error ] IPVideoGrabber: Exception : [CAM1]: Exception: Invalid HTTP Reponse : ???
./mjpg_streamer -i “./input_uvc.so -f 60 -r 320x240” -o “./output_http.so -w ./www”
SharedIPVideoGrabber grabber = IPVideoGrabber::makeShared();
grabber->connect(); // connect immediately
Did I missed something or is there any incompatibility between mjpg-streamer and ofxIpVideoGrabber ?
Just in case, curl first chunk is
Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0
Expires: Mon, 3 Jan 2000 12:34:56 GMT
Hey, sorry I haven’t had a chance to test this. Could you post it as a bug over at the repo? I’m hoping to get it all updated soon.