Archived
2
0

update arm build #93

This commit is contained in:
Miroslav Šedivý 2021-10-03 11:14:58 +02:00
parent 21f1415d0e
commit cc4a325fa4
4 changed files with 13 additions and 14 deletions

View File

@ -117,11 +117,6 @@ ENV NEKO_PASSWORD=neko
ENV NEKO_PASSWORD_ADMIN=admin ENV NEKO_PASSWORD_ADMIN=admin
ENV NEKO_BIND=:8080 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 static files from previous stages
COPY --from=server /src/bin/neko /usr/bin/neko COPY --from=server /src/bin/neko /usr/bin/neko

View File

@ -4,8 +4,8 @@ FROM $BASE_IMAGE
# #
# install neko chromium # install neko chromium
RUN set -eux; apt-get update; \ RUN set -eux; apt-get update; \
apt-get install -y --no-install-recommends chromium-browser openbox libwidevinecdm0; \ # TODO: Bring back DRM support with arm32v7/debian:buster-slim image.
ln -s /usr/bin/chromium-browser /usr/bin/chromium; \ apt-get install -y --no-install-recommends chromium openbox; \
# #
# clean up # clean up
apt-get clean -y; \ apt-get clean -y; \

View File

@ -4,8 +4,8 @@ FROM $BASE_IMAGE
# #
# install firefox-esr # install firefox-esr
RUN set -eux; apt-get update; \ RUN set -eux; apt-get update; \
apt-get install -y --no-install-recommends openbox firefox-esr libwidevinecdm0; \ # TODO: Bring back DRM support with arm32v7/debian:buster-slim image.
ln -s /usr/lib/firefox-esr/firefox-esr /usr/bin/firefox; \ apt-get install -y --no-install-recommends openbox firefox-esr; \
# #
# install extensions # install extensions
mkdir -p /usr/lib/firefox-esr/distribution/extensions; \ mkdir -p /usr/lib/firefox-esr/distribution/extensions; \

View File

@ -92,6 +92,7 @@ For n.eko room management software, visit https://github.com/m1k1o/neko-rooms.
- Fixed very fast scroll speed on macOS. - Fixed very fast scroll speed on macOS.
- Broadcast pipeline errors are reported to the user. - Broadcast pipeline errors are reported to the user.
- On stopping server all websocket connections are going to be gracefully disconnected. - On stopping server all websocket connections are going to be gracefully disconnected.
- ARM-based images not bound to Raspberry Pi only.
# Getting started & FAQ # 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-chromium` - for Chromium.
- `m1k1o/neko:arm-base` - for custom arm based. - `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: ### Networking:
- If you want to use n.eko in **external** network, you can omit `NEKO_NAT1TO1`. It will automatically get your Public IP. - 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 ## 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 ```yaml
version: "3.4" version: "3.4"
@ -346,14 +347,16 @@ services:
ports: ports:
- "8088:8080" - "8088:8080"
- "52000-52100:52000-52100/udp" - "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 privileged: true
environment: environment:
NEKO_SCREEN: '1280x720@30' NEKO_SCREEN: '1280x720@30'
NEKO_PASSWORD: 'neko' NEKO_PASSWORD: 'neko'
NEKO_PASSWORD_ADMIN: 'admin' NEKO_PASSWORD_ADMIN: 'admin'
NEKO_EPR: 52000-52100 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: | NEKO_VIDEO: |
ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false
! video/x-raw,framerate=30/1 ! video/x-raw,framerate=30/1
@ -363,6 +366,7 @@ services:
! v4l2h264enc extra-controls="controls,h264_profile=0,video_bitrate=1250000;" ! v4l2h264enc extra-controls="controls,h264_profile=0,video_bitrate=1250000;"
! h264parse config-interval=3 ! h264parse config-interval=3
! video/x-h264,profile=baseline,stream-format=byte-stream ! video/x-h264,profile=baseline,stream-format=byte-stream
NEKO_H264: 1
``` ```
## Not using docker? ## Not using docker?
@ -442,6 +446,6 @@ NEKO_ICESERVERS:
- [More information](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer) - [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. Navigate to [.m1k1o/README.md](.m1k1o/README.md) for further information.