Skip to content

Commit 4e333a6

Browse files
committed
Add webcam stream type selection
- add moonraker presets for mjpeg and h264 stream selection Enables users to easily change the default Moonraker stream types for internal camera.
1 parent bd5504b commit 4e333a6

5 files changed

Lines changed: 70 additions & 5 deletions

File tree

docs/camera_support.md

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,16 @@ The extended firmware includes hardware-accelerated camera support.
1616
### Internal Camera
1717

1818
Access the native camera at:
19-
```
19+
20+
```shell
2021
http://<printer-ip>/webcam/
2122
```
2223

2324
### USB Camera
2425

2526
Access USB camera at:
26-
```
27+
28+
```shell
2729
http://<printer-ip>/webcam2/
2830
```
2931

@@ -32,12 +34,54 @@ settings for the best performance:
3234

3335
<img src="images/usb_cam.png" alt="Fluidd USB camera" width="300"/>
3436

37+
## Change Internal Camera Stream Type
38+
39+
By default the internal camera stream uses WebRTC for low-latency streaming.
40+
Not all apps/integrations support WebRTC.
41+
To switch internal camera to MJPEG or h264 stream, simply rename existing preset files using either Fluidd or SSH interface:
42+
43+
<details>
44+
<summary>Click to expand Fluidd instructions</summary>
45+
46+
1. In web browser go to Fluidd Configuration editor at `http://<printer-ip>/#/configure`
47+
2. Enter `moonraker` directory and right-click on the preset files to rename them
48+
- Disable WebRTC stream to prevent having multiple cameras in Fluidd:
49+
- Rename `02_webrtc_internal_camera.cfg` to `02_webrtc_internal_camera.cfg.disabled`
50+
- Enable mjpg-adaptive stream:
51+
- Rename `03_mjpg_internal_camera.cfg.disabled` to `03_mjpg_internal_camera.cfg`
52+
- Enable h264 stream:
53+
- Rename `04_h264_internal_camera.cfg.disabled` to `04_h264_internal_camera.cfg`
54+
55+
</details>
56+
57+
<details>
58+
<summary>Click to expand SSH instructions</summary>
59+
60+
```bash
61+
# Disable WebRTC stream to prevent having multiple cameras in Fluidd
62+
cd /home/lava/printer_data/config/moonraker/
63+
mv 02_webrtc_internal_camera.cfg 02_webrtc_internal_camera.cfg.disabled
64+
65+
# Enable mjpg-adaptive stream
66+
cd /home/lava/printer_data/config/moonraker/
67+
mv 03_mjpg_internal_camera.cfg.disabled 03_mjpg_internal_camera.cfg
68+
69+
# Enable h264 stream
70+
cd /home/lava/printer_data/config/moonraker/
71+
mv 04_h264_internal_camera.cfg.disabled 04_h264_internal_camera.cfg
72+
73+
# Restart moonraker to apply changes
74+
/etc/init.d/S61moonraker restart
75+
```
76+
77+
</details>
78+
3579
## Switch to Snapmaker's Original Camera Stack
3680

3781
By default, the extended firmware uses a custom hardware-accelerated camera stack.
3882
If you prefer to use Snapmaker's original camera stack instead, create:
3983

40-
```bash
84+
```shell
4185
touch /oem/.camera-native
4286
```
4387

@@ -47,7 +91,7 @@ Note: Only one camera stack can be operational at a time.
4791

4892
To enable syslog logging for camera services (useful for debugging), create:
4993

50-
```bash
94+
```shell
5195
touch /oem/.camera-log
5296
```
5397

overlays/camera-v4l2-mpp/root/home/lava/moonraker-config/02_internal_camera.cfg renamed to overlays/camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/02_webrtc_internal_camera.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 1. Rename this file to `02_webrtc_internal_camera.cfg to enable WebRTC internal camera support.
2+
# 2. Restart Moonraker
3+
14
# Enable internal camera using WebRTC
25
[webcam case]
36
service: webrtc-camerastreamer
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 1. Rename this file to `03_mjpg_internal_camera.cfg` to enable mjpeg-adaptive stream for internal camera
2+
# 2. Restart Moonraker
3+
4+
# Enable mjpeg-adaptive stream for internal camera
5+
[webcam mjpeg]
6+
service: mjpegstreamer-adaptive
7+
stream_url: /webcam/stream.mjpg
8+
snapshot_url: /webcam/snapshot.jpg
9+
aspect_ratio: 16:9
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# 1. Rename this file to `04_h264_internal_camera.cfg to enable h264 stream using embedded player
2+
# 2. Restart Moonraker
3+
4+
# Enable h264 embedded player for internal camera
5+
[webcam h264]
6+
service: iframe
7+
stream_url: /webcam/player
8+
snapshot_url: /webcam/snapshot.jpg
9+
aspect_ratio: 16:9

overlays/camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/usb_camera.cfg.disabled renamed to overlays/camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/09_usb_camera.cfg.disabled

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 1. Rename this file to `03_usb_camera.cfg` to enable USB camera
1+
# 1. Rename this file to `09_usb_camera.cfg` to enable USB camera
22
# 2. Restart Moonraker
33

44
# Enable USB camera using WebRTC

0 commit comments

Comments
 (0)