mirror of
https://github.com/openwrt/packages.git
synced 2026-04-15 19:02:09 +00:00
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. HACKS: MAKE_FLAGS += WITH_SETPROCTITLE=0 is added to workaround the following linker error: undefined reference to setproctitle_init This symbol is defined in libbsd, however adding the build dependency does not resolve the error, because -lbsd is added conditionally, only when uname -s contains linux. This is unreliable and fails when cross-compiling on a macOS host. An upstream fix is needed. An alternative is to use PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip=2 -xf $(DL_DIR)/$(PKG_SOURCE) however this modifies the directory structure, so patches would need path editing to maintain upstream compatibility. 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] https://github.com/openwrt/packages/pull/28344 [2] https://github.com/openwrt/luci/pull/8221 Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
11 lines
202 B
Plaintext
11 lines
202 B
Plaintext
case "$ACTION" in
|
|
add)
|
|
# start process
|
|
ls /dev/video* > /dev/null && /etc/init.d/ustreamer start
|
|
;;
|
|
remove)
|
|
# stop process
|
|
ls /dev/video* > /dev/null || /etc/init.d/ustreamer stop
|
|
;;
|
|
esac
|