Robobot webcam server: Difference between revisions
No edit summary |
|||
(29 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Back to [[Robobot_B]] | Back to [[Robobot_B | Robobot]] | ||
== View camera == | == View camera == | ||
=== Python cam server === | |||
The source is copied from https://medium.com/@studymattersinlife/building-a-simple-video-streaming-server-client-in-python-e88d3b9e7158 | |||
This server is part of the Robobot repository at ''svn/robobot/stream_server'' and should be started at boot-time. | |||
(see ~/on_reboot.bash) | |||
Or try: | |||
cd /home/local/svn/robobot/stream_server | |||
/usr/bin/python3 stream_server.py | |||
=== | === Watch result using a browser === | ||
Using the IP of the robot (in this case, robot Coco), the robot camera image can be viewed at this address: | |||
http://10.197.218.233:7123 | |||
[[file:web-streamer-coco.jpg | 300px]] | |||
=== Change configuration === | |||
Change the configuration in the streamer source code: | |||
/home/local/svn/robobot/stream_server/stream_server.py | |||
The resolution needs to be changed two places! | |||
In the HTML script at the beginning of the file, and the camera configuration near the end. | |||
Note that some configurations reduce the field of view. | |||
==== HTML file ==== | |||
Select one of these lines (comment <nowiki><!--img ... --> or uncomment <img... /></nowiki>) as needed | |||
Near the start of stream_server.py | |||
... | |||
<nowiki><body> | |||
<h1>Picamera2 MJPEG Streaming from {}</h1> | |||
<img src="stream.mjpg" width="820" height="616" /> | |||
<!--img src="stream.mjpg" width="1296" height="972" --> | |||
<!--img src="stream.mjpg" width="320" height="240" --> | |||
<!--img src="stream.mjpg" width="640" height="480" --> | |||
</body></nowiki> | |||
... | |||
==== Camera configuration ==== | |||
Select the matching line to the settings above: | |||
Near the end of stream_server.py | |||
... | |||
picam2 = Picamera2() | |||
#picam2.configure(picam2.create_video_configuration(main={"size": (1296, 972)},controls={'FrameDurationLimits': (200000, 200000)})) | |||
picam2.configure(picam2.create_video_configuration(main={"size": (820, 616)},controls={'FrameDurationLimits': (200000, 500000)})) | |||
#picam2.configure(picam2.create_video_configuration(main={"size": (1296, 972)},controls={'FrameDurationLimits': (200000, 500000)})) | |||
#picam2.configure(picam2.create_video_configuration(main={"size": (640, 480)},controls={'FrameDurationLimits': (200000, 500000)})) | |||
#picam2.configure(picam2.create_video_configuration(main={"size": (320, 240)},controls={'FrameDurationLimits': (200000, 500000)})) | |||
... | |||
Reboot or restart to see the effect. | |||
==== Restart streaming ==== | |||
Restart by first stopping the running version: | |||
pkill stream_server | |||
Then restart | |||
cd /home/local/svn/robobot/stream_server | |||
python3 stream_server.py | |||
Prints something like: | |||
[0:41:06.196852273] [12840] INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f | |||
[0:41:06.226600078] [12841] INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media1 and ISP device /dev/media3 | |||
[0:41:06.226689448] [12841] INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml' | |||
[0:41:06.233368984] [12840] INFO Camera camera.cpp:1033 configuring streams: (0) 320x240-XBGR8888 (1) 640x480-SGBRG10_CSI2P | |||
[0:41:06.233900943] [12841] INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA |
Latest revision as of 12:01, 2 February 2025
Back to Robobot
View camera
Python cam server
The source is copied from https://medium.com/@studymattersinlife/building-a-simple-video-streaming-server-client-in-python-e88d3b9e7158
This server is part of the Robobot repository at svn/robobot/stream_server and should be started at boot-time. (see ~/on_reboot.bash)
Or try:
cd /home/local/svn/robobot/stream_server /usr/bin/python3 stream_server.py
Watch result using a browser
Using the IP of the robot (in this case, robot Coco), the robot camera image can be viewed at this address:
Change configuration
Change the configuration in the streamer source code:
/home/local/svn/robobot/stream_server/stream_server.py
The resolution needs to be changed two places!
In the HTML script at the beginning of the file, and the camera configuration near the end.
Note that some configurations reduce the field of view.
HTML file
Select one of these lines (comment <!--img ... --> or uncomment <img... />) as needed
Near the start of stream_server.py
... <body> <h1>Picamera2 MJPEG Streaming from {}</h1> <img src="stream.mjpg" width="820" height="616" /> <!--img src="stream.mjpg" width="1296" height="972" --> <!--img src="stream.mjpg" width="320" height="240" --> <!--img src="stream.mjpg" width="640" height="480" --> </body> ...
Camera configuration
Select the matching line to the settings above:
Near the end of stream_server.py
... picam2 = Picamera2() #picam2.configure(picam2.create_video_configuration(main={"size": (1296, 972)},controls={'FrameDurationLimits': (200000, 200000)})) picam2.configure(picam2.create_video_configuration(main={"size": (820, 616)},controls={'FrameDurationLimits': (200000, 500000)})) #picam2.configure(picam2.create_video_configuration(main={"size": (1296, 972)},controls={'FrameDurationLimits': (200000, 500000)})) #picam2.configure(picam2.create_video_configuration(main={"size": (640, 480)},controls={'FrameDurationLimits': (200000, 500000)})) #picam2.configure(picam2.create_video_configuration(main={"size": (320, 240)},controls={'FrameDurationLimits': (200000, 500000)})) ...
Reboot or restart to see the effect.
Restart streaming
Restart by first stopping the running version:
pkill stream_server
Then restart
cd /home/local/svn/robobot/stream_server python3 stream_server.py
Prints something like:
[0:41:06.196852273] [12840] INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f [0:41:06.226600078] [12841] INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media1 and ISP device /dev/media3 [0:41:06.226689448] [12841] INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml' [0:41:06.233368984] [12840] INFO Camera camera.cpp:1033 configuring streams: (0) 320x240-XBGR8888 (1) 640x480-SGBRG10_CSI2P [0:41:06.233900943] [12841] INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA