Skip to content

Conversation

@httpstorm
Copy link
Contributor

@httpstorm httpstorm commented Feb 1, 2026

📦 Package Details

Maintainer: @httpstorm

Description:
With mjpg-streamer pending removal [1], it would be nice if we add a compatible replacement which is under active development. ustreamer offers a better performance, especially when the camera supports MJPEG encoding in hardware.

Notable changes:
While the init.d script can run in the background when no camera is connected, it is more efficient to indicate no active instances. A hotplug script is introduced to start and stop the service when cameras are added or removed.

If the configured format or encoding are unsupported, a compatible alternative is automatically selected, so I changed the default configuration to use MJPEG encoding in hardware for better performance.

TODO:

  • luci-app-mjpg-streamer which is also pending removal [2] is able to open the HTTP stream from ustreamer. It would be nice to create luci-app-ustreamer based on that first. Any volunteers?

  • My experience with the OpenWRT make system is very basic, so please review the Makefile carefully.

  • PKG_MAINTAINER is the ustreamer author from the original ./pkg/openwrt/Makefile, let me know if I need to change it to blank or add myself, but I don't have any development experience with the package.

  • I copied the following line from mjpg-streamer, the build fails without it:

PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE)
  • The package already includes OpenWRT support files ./pkg/openwrt, but they needed heavy editing, so it is more efficient to copy the scripts and configuration, instead of using patches. I can submit my changes upstream, but first I wanted to see if anyone would suggest changes. It might also be a good idea to keep our own scripts and configuration.

[1] #28344
[2] openwrt/luci#8221

@GeorgeSapkin @robimarko @hnyman @thess @roger- @systemcrash @jow- @mdevaev


🧪 Run Testing Details

  • OpenWrt Version: main r32847+5-bc8424ab89
  • OpenWrt Target/Subtarget: mvebu/cortexa9
  • OpenWrt Device: WRT3200ACM
  • Camera tested: Logitech HD Pro Webcam C920 (UVC)
  • CPU usage: < 1% for 1920x1080 MJPG hardware encoding

✅ Formalities

  • I have reviewed the CONTRIBUTING.md file for detailed contributing guidelines.

With mjpg-streamer pending removal [1], it would be nice if we add
a compatible replacement which is under active development.

ustreamer offers a better performance, especially when the
camera supports MJPEG encoding in hardware.

The package already includes OpenWRT support files ./pkg/openwrt
but they needed heavy editing, so it is more efficient to copy
the scripts and configuration, instead of using patches.

Notable changes:
While the init.d script can run in the background when no camera is
connected, it is more efficient to indicate no active instances.
A hotplug script is introduced to start and stop the service when
cameras are added or removed.

If the configured format or encoding are unsupported, a compatible
alternative is automatically selected, so I changed the default
configuration to use MJPEG encoding in hardware for better performance.

TODO:
luci-app-mjpg-streamer which is also pending removal [2] is able to
open the HTTP stream from ustreamer. It would be nice to create
luci-app-ustreamer based on that.

[1] openwrt#28344
[2] openwrt/luci#8221

Signed-off-by: Georgi Valkov <[email protected]>
@httpstorm httpstorm force-pushed the ustreamer_2026-01-31 branch from dbb89cd to 561fa91 Compare February 1, 2026 04:20
@httpstorm
Copy link
Contributor Author

Ready. Anything else?

@mdevaev
Copy link

mdevaev commented Feb 1, 2026

Hey. I'm just letting you know, that you you need some assistance from uStreamer side - I'm open to action and PRs.

In addition, I want to note that the number of options provided in config for init is limited, so if you want to add all the remaining ones, I don't mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants