diff --git a/.m1k1o/base/Dockerfile.arm b/.m1k1o/base/Dockerfile.arm index 3771872..8b3e593 100644 --- a/.m1k1o/base/Dockerfile.arm +++ b/.m1k1o/base/Dockerfile.arm @@ -117,11 +117,6 @@ ENV NEKO_PASSWORD=neko ENV NEKO_PASSWORD_ADMIN=admin ENV NEKO_BIND=:8080 -# -# custom arm values -> video pipeline with GPU encoding -ENV NEKO_H264=1 -ENV NEKO_VIDEO='ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false ! video/x-raw,framerate=30/1 ! videoconvert ! queue ! video/x-raw,framerate=30/1,format=NV12 ! v4l2h264enc extra-controls="controls,h264_profile=0,video_bitrate=1250000;" ! h264parse config-interval=3 ! video/x-h264,profile=baseline,stream-format=byte-stream' - # # copy static files from previous stages COPY --from=server /src/bin/neko /usr/bin/neko diff --git a/.m1k1o/chromium/Dockerfile.arm b/.m1k1o/chromium/Dockerfile.arm index 208b51a..d77ec4d 100644 --- a/.m1k1o/chromium/Dockerfile.arm +++ b/.m1k1o/chromium/Dockerfile.arm @@ -4,8 +4,8 @@ FROM $BASE_IMAGE # # install neko chromium RUN set -eux; apt-get update; \ - apt-get install -y --no-install-recommends chromium-browser openbox libwidevinecdm0; \ - ln -s /usr/bin/chromium-browser /usr/bin/chromium; \ + # TODO: Bring back DRM support with arm32v7/debian:buster-slim image. + apt-get install -y --no-install-recommends chromium openbox; \ # # clean up apt-get clean -y; \ diff --git a/.m1k1o/firefox/Dockerfile.arm b/.m1k1o/firefox/Dockerfile.arm index 7e696d5..b0a598d 100644 --- a/.m1k1o/firefox/Dockerfile.arm +++ b/.m1k1o/firefox/Dockerfile.arm @@ -4,8 +4,8 @@ FROM $BASE_IMAGE # # install firefox-esr RUN set -eux; apt-get update; \ - apt-get install -y --no-install-recommends openbox firefox-esr libwidevinecdm0; \ - ln -s /usr/lib/firefox-esr/firefox-esr /usr/bin/firefox; \ + # TODO: Bring back DRM support with arm32v7/debian:buster-slim image. + apt-get install -y --no-install-recommends openbox firefox-esr; \ # # install extensions mkdir -p /usr/lib/firefox-esr/distribution/extensions; \ diff --git a/README.md b/README.md index 8318ede..94f1a6b 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ For n.eko room management software, visit https://github.com/m1k1o/neko-rooms. - Fixed very fast scroll speed on macOS. - Broadcast pipeline errors are reported to the user. - On stopping server all websocket connections are going to be gracefully disconnected. +- ARM-based images not bound to Raspberry Pi only. # Getting started & FAQ @@ -112,7 +113,7 @@ For ARM-based devices (like Raspberry Pi, with GPU hardware acceleration): - `m1k1o/neko:arm-chromium` - for Chromium. - `m1k1o/neko:arm-base` - for custom arm based. -Images are built using GitHub actions on every push and on weekly basis to keep all browsers up-to-date, +Images (except `arm-`) are built using GitHub actions on every push and on weekly basis to keep all browsers up-to-date, ### Networking: - If you want to use n.eko in **external** network, you can omit `NEKO_NAT1TO1`. It will automatically get your Public IP. @@ -333,7 +334,7 @@ services: ## Raspberry Pi -Note! Since this pipeline is using H264, that enables GPU HW acceleration for Raspberry Pi, you are only able to connect from browsers supporting H264 for WebRTC. At the time of implementing, [Firefox does not support this](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/WebRTC_codecs#supported-foot-1). +Note! Since HW accelerated pipeline is using H264, you are only able to connect from browsers supporting H264 for WebRTC. At the time of implementing, [Firefox does not support this](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/WebRTC_codecs#supported-foot-1). When omitting `NEKO_VIDEO` and `NEKO_H264` parameters, you get default CPU encoding with VP8. ```yaml version: "3.4" @@ -346,14 +347,16 @@ services: ports: - "8088:8080" - "52000-52100:52000-52100/udp" - # this is important since we need a GPU for hardware acceleration alternatively mount the devices into the docker. + # note: this is important since we need a GPU for hardware acceleration alternatively + # mount the devices into the docker. privileged: true environment: NEKO_SCREEN: '1280x720@30' NEKO_PASSWORD: 'neko' NEKO_PASSWORD_ADMIN: 'admin' NEKO_EPR: 52000-52100 - # optional: change target bitrate and framerate on this parameter. + # note: when setting NEKO_VIDEO, then variables NEKO_MAX_FPS and NEKO_VIDEO_BITRATE + # are not being used, you can adjust them in this variable. NEKO_VIDEO: | ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false ! video/x-raw,framerate=30/1 @@ -363,6 +366,7 @@ services: ! v4l2h264enc extra-controls="controls,h264_profile=0,video_bitrate=1250000;" ! h264parse config-interval=3 ! video/x-h264,profile=baseline,stream-format=byte-stream + NEKO_H264: 1 ``` ## Not using docker? @@ -442,6 +446,6 @@ NEKO_ICESERVERS: - [More information](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer) ``` -# How to contribute? +# How to contribute? How to build? Navigate to [.m1k1o/README.md](.m1k1o/README.md) for further information.