From d48e94b44476cc8b7a8b3ef5fdb0db314fb4fa56 Mon Sep 17 00:00:00 2001 From: cpu Date: Thu, 21 Dec 2023 15:05:39 +0100 Subject: [PATCH] transcode and intel_gpu_top --- README.md | 77 +++++++++++++++---------------------------------------- 1 file changed, 21 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 1c810f7..74a4553 100644 --- a/README.md +++ b/README.md @@ -20,34 +20,6 @@ ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'MJPG' (Motion-JPEG, compressed) - Size: Discrete 160x120 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 176x144 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 320x240 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 352x288 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.040s (25.000 fps) @@ -67,34 +39,6 @@ ioctl: VIDIOC_ENUM_FMT Interval: Discrete 0.100s (10.000 fps) Interval: Discrete 0.200s (5.000 fps) [1]: 'YUYV' (YUYV 4:2:2) - Size: Discrete 160x120 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 176x144 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 320x240 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) - Size: Discrete 352x288 - Interval: Discrete 0.033s (30.000 fps) - Interval: Discrete 0.040s (25.000 fps) - Interval: Discrete 0.050s (20.000 fps) - Interval: Discrete 0.067s (15.000 fps) - Interval: Discrete 0.100s (10.000 fps) - Interval: Discrete 0.200s (5.000 fps) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.040s (25.000 fps) @@ -161,6 +105,27 @@ Use the dockerized ffmpeg with precompiled vaapi support, adjust `/dev/video2` Adjust `/dev/video2`, `-video_size 1920x1080 -framerate 60` and stream to peertube (if it can handle that much) > `ffmpeg -hide_banner -y -f v4l2 -input_format mjpeg -video_size 1920x1080 -framerate 60 -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i /dev/video2 -vf 'scale_vaapi=format=nv12' -c:v h264_vaapi -b:v 10M -f flv rtmp://peertube.virtonline.eu:1935/live/LIVE-STREAM-KEY` +### Transcode and scale video file (and copy audio) using VAAPI +> `alias ffmpeg='docker run --rm -w $(pwd) -v $(pwd):$(pwd) --device=/dev/dri jrottenberg/ffmpeg:vaapi'` + +> `ffmpeg -y -hide_banner -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i 'https://github.com/bower-media-samples/big-buck-bunny-1080p-60fps-30s/raw/master/video.mp4' -c:v h264_vaapi -vf 'fps=60,scale_vaapi=w=1280:h=-2:format=nv12' -c:a copy -f mp4 big-buck-bunny-720p-60fps-30s-h264_vaapi.mp4` + +See iGPU load while transcoding +> `sudo apt install intel-gpu-tools` +> `sudo intel_gpu_top` +``` +intel-gpu-top: Intel Skylake (Gen9) @ /dev/dri/card0 - 0/ 0 MHz; 100% RC6; 0.00/ 2.40 W; 0 irqs/s + + IMC reads: 166 MiB/s + IMC writes: 30 MiB/s + + ENGINES BUSY MI_SEMA MI_WAIT + Render/3D 0.00% | | 0% 0% + Blitter 0.00% | | 0% 0% + Video 0.00% | | 0% 0% + VideoEnhance 0.00% | | 0% 0% +``` + Adjusting camera functions -------------------------- Brightness, zoom, focus, etc, can be adjusted