PeerTube plugin to enable H264 NVENC and HEVC NVENC (experimental) https://nicecrew.tv
Go to file
2023-05-16 22:49:18 +02:00
src fix error when quality was not present in preference store 2023-05-16 22:48:57 +02:00
.gitignore change from JS to TS, adapt to allow software decode 2023-05-06 16:54:41 +02:00
LICENSE Add LICENSE 2021-04-07 08:26:24 +00:00
package-lock.json fix missing files in npm package 2023-05-08 11:20:30 +02:00
package.json bump to version 0.2.6 2023-05-16 22:49:18 +02:00
README.md upadte readme 2023-05-06 17:00:53 +02:00

Hardware h264 encoding using vaapi

This plugin tries to enable hardware accelerated transcoding profiles using vaapi on linux. It should be considered experimental and tinkering will certainly be necessary to make this plugin work on your hardware.

For more information on vaapi and hardware acceleration:

Building a compatible docker image

Official docker images do not ship with required libraries for hardware transcode. You can build your own image with the following Dockerfile:

ARG VERSION=v4.2.0
FROM chocobozzz/peertube:${VERSION}-bullseye


# install dependencies for vaapi
RUN 	   apt update \
	&& apt install -y --no-install-recommends wget apt-transport-https \
	&& echo "deb http://deb.debian.org/debian/ $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) non-free" | tee /etc/apt/sources.list.d/non-free.list \
	&& apt update \
	&& apt install -y --no-install-recommends vainfo i965-va-driver-shaders \
	&& apt install -y --no-install-recommends python3 \
	&& rm /var/lib/apt/lists/* -fR

If you are using a recent Intel CPU (generation 8 and newer), replace i965-va-driver-shaders by intel-media-va-driver-non-free.

Running the docker image

In order to access the GPU inside docker, the docker-compose.yml should be adapted as follow. Note that you must find the id of the render group on your machine. You can use grep render /etc/group | cut -d':' -f3 to find the id.

version: "2"

services:
  peertube:
    # replace image key with
    build:
      context: .
      args:
        VERSION: v5.0.1
    # usual peertube configuration
    # ...

    # add these keys
    group_add:
      - <replace with the id of the render group>
    devices:
      # VAAPI Devices
      - /dev/dri:/dev/dri