peertube-plugin-lunacode-vaapi
v0.3.8
Published
Plugin that adds transcode profiles which use vaapi for hardware acceleration
Downloads
876
Readme
Hardware transcoding using VAAPI
This plugin enables hardware-accelerated transcoding profiles using VAAPI on Linux. It should be considered experimental and some tuning may be required for your hardware.
Profiles and bitrate control
The plugin registers two video encoder profiles:
VAAPI H264(h264_vaapi)VAAPI H265(hevc_vaapi)
Both profiles use constrained variable bitrate (VBR):
- target bitrate is set with
-b:v - peak bitrate is capped with
-maxrate:v - VBV buffer is set with
-bufsize:v
You can tune VBR burst behavior with plugin setting VBR maxrate multiplier.
For example, 1.5 means maxrate is 150% of the target bitrate.
Migration note: the old profile label vaapi was renamed to VAAPI H264.
If you previously selected vaapi explicitly, review profile selection after upgrading.
For more information on vaapi and hardware acceleration:
- https://jellyfin.org/docs/general/administration/hardware-acceleration.html#enabling-hardware-acceleration
- https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Comparison_tables
Docker image
Use the sister Docker image repository, which already includes the required VAAPI dependencies:
- https://github.com/SharkyRawr/peertube-vaapi
This replaces the old "build your own Dockerfile" workflow from this README.
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.
services:
peertube:
# sister image with VAAPI dependencies preinstalled
image: ghcr.io/sharkyrawr/peertube-vaapi:production
# usual peertube configuration
# ...
# add these keys
group_add:
- <replace with the id of the render group>
devices:
# VAAPI Devices
- /dev/dri:/dev/dri