-
-
Notifications
You must be signed in to change notification settings - Fork 582
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
For some reason Chrome doesn't detect the codec despite definitely supporting AV1 decoding. Nothing telling show up in console, chrome://webrtc-internals/, or chrome://media-internals/. Testing via `docker-compose up`.
- Loading branch information
Showing
10 changed files
with
164 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
From d84ef27b1b2ec2769aa2805bcc54f5601a4ba59a Mon Sep 17 00:00:00 2001 | ||
From: Ethan Waldo <[email protected]> | ||
Date: Sat, 7 Jan 2023 17:45:27 -0500 | ||
Subject: [PATCH] Fix MIME type | ||
|
||
--- | ||
gstreamer-plugin/gstsvtav1enc.c | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
diff --git a/gstreamer-plugin/gstsvtav1enc.c b/gstreamer-plugin/gstsvtav1enc.c | ||
index 108824c1..86ee29da 100644 | ||
--- a/gstreamer-plugin/gstsvtav1enc.c | ||
+++ b/gstreamer-plugin/gstsvtav1enc.c | ||
@@ -129,7 +129,7 @@ static GstStaticPadTemplate gst_svtav1enc_src_pad_template = | ||
GST_STATIC_PAD_TEMPLATE ("src", | ||
GST_PAD_SRC, | ||
GST_PAD_ALWAYS, | ||
- GST_STATIC_CAPS ("video/x-av1, " | ||
+ GST_STATIC_CAPS ("video/AV1, " | ||
"stream-format = (string) byte-stream, " | ||
"alignment = (string) au, " | ||
"width = (int) [64, 3840], " | ||
-- | ||
2.20.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,25 @@ | ||
# | ||
# STAGE 1: SERVER | ||
# | ||
FROM rust:1-bullseye as rav1enc | ||
WORKDIR /src | ||
|
||
RUN set -eux; apt-get update; \ | ||
apt-get install -y gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base; \ | ||
cd /tmp; \ | ||
git clone --depth=1 https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git; \ | ||
cd gst-plugins-rs; \ | ||
cargo build -r -p gst-plugin-rav1e; | ||
|
||
FROM golang:1.18-bullseye as server | ||
WORKDIR /src | ||
|
||
COPY .docker/base/0001-Fix-MIME-type.patch . | ||
# | ||
# install dependencies | ||
RUN set -eux; apt-get update; \ | ||
apt-get install -y --no-install-recommends git cmake make libx11-dev libxrandr-dev libxtst-dev \ | ||
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly; \ | ||
apt-get install -y --no-install-recommends git cmake make libx11-dev libxrandr-dev libxtst-dev python3-pip pkg-config yasm \ | ||
gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly; \ | ||
# | ||
# install libclipboard | ||
set -eux; \ | ||
|
@@ -18,8 +29,22 @@ RUN set -eux; apt-get update; \ | |
cmake .; \ | ||
make -j4; \ | ||
make install; \ | ||
cd /tmp; \ | ||
rm -rf /tmp/libclipboard; \ | ||
# | ||
# install libgstsvtav1enc.so | ||
pip3 install meson ninja; \ | ||
git clone --depth=1 --branch v1.4.1 https://gitlab.com/AOMediaCodec/SVT-AV1.git; \ | ||
git config --global user.email "[email protected]"; \ | ||
git config --global user.name "Your Name"; \ | ||
git -C SVT-AV1 am /src/0001-Fix-MIME-type.patch; \ | ||
SVT-AV1/Build/linux/build.sh debug; \ | ||
cp /tmp/SVT-AV1/Source/API/Eb*.h /usr/local/include; \ | ||
cmake -P SVT-AV1/Build/linux/Debug/Source/Lib/Encoder/cmake_install.cmake; \ | ||
cd SVT-AV1/gstreamer-plugin; \ | ||
meson -Dprefix=/usr build; \ | ||
ninja -C build install; \ | ||
# | ||
# clean up | ||
apt-get clean -y; \ | ||
rm -rf /var/lib/apt/lists/* /var/cache/apt/* | ||
|
@@ -70,7 +95,8 @@ RUN set -eux; \ | |
# | ||
# gst | ||
apt-get install -y --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ | ||
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio; \ | ||
gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio \ | ||
gstreamer1.0-vaapi gstreamer1.0-tools;\ | ||
# | ||
# install fonts | ||
apt-get install -y --no-install-recommends \ | ||
|
@@ -125,6 +151,11 @@ ENV NEKO_BIND=:8080 | |
# | ||
# copy static files from previous stages | ||
COPY --from=server /src/bin/neko /usr/bin/neko | ||
COPY --from=server /usr/local/lib/libSvtAv1Enc.so.1.4.1 /usr/lib/x86_64-linux-gnu/libSvtAv1Enc.so.1.4.1 | ||
COPY --from=server /usr/local/lib/libSvtAv1Enc.so.1 /usr/lib/x86_64-linux-gnu/libSvtAv1Enc.so.1 | ||
COPY --from=server /usr/lib/gstreamer-1.0/libgstsvtav1enc.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstsvtav1enc.so | ||
COPY --from=rav1enc /tmp/gst-plugins-rs/target/release/libgstrav1e.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrav1e.so | ||
|
||
COPY --from=client /src/dist/ /var/www | ||
|
||
HEALTHCHECK --interval=10s --timeout=5s --retries=8 \ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,24 @@ | ||
version: "3.4" | ||
services: | ||
neko: | ||
image: "m1k1o/neko:firefox" | ||
image: "m1k1o/neko:chromium" | ||
restart: "unless-stopped" | ||
shm_size: "2gb" | ||
ports: | ||
- "8080:8080" | ||
- "52000-52100:52000-52100/udp" | ||
cap_add: | ||
- ALL | ||
environment: | ||
NEKO_BIND: :8080 | ||
NEKO_SCREEN: 1920x1080@30 | ||
NEKO_MAX_FPS: 30 | ||
#NEKO_AV1: "true" | ||
NEKO_VIDEO_CODEC: av1 | ||
NEKO_VIDEO_BITRATE: 1000 | ||
NEKO_VIDEO: ximagesrc display-name=%s show-pointer=true use-damage=false ! video/x-raw,framerate=25/1 ! videoconvert ! queue ! rav1enc low-latency=true speed-preset=10 | ||
NEKO_PASSWORD: neko | ||
NEKO_PASSWORD_ADMIN: admin | ||
NEKO_EPR: 52000-52100 | ||
NEKO_ICELITE: 1 | ||
NEKO_ICELITE: "true" | ||
#GST_DEBUG: 3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.