transcode and intel_gpu_top
This commit is contained in:
77
README.md
77
README.md
@@ -20,34 +20,6 @@ ioctl: VIDIOC_ENUM_FMT
|
|||||||
Type: Video Capture
|
Type: Video Capture
|
||||||
|
|
||||||
[0]: 'MJPG' (Motion-JPEG, compressed)
|
[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
|
Size: Discrete 640x480
|
||||||
Interval: Discrete 0.033s (30.000 fps)
|
Interval: Discrete 0.033s (30.000 fps)
|
||||||
Interval: Discrete 0.040s (25.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.100s (10.000 fps)
|
||||||
Interval: Discrete 0.200s (5.000 fps)
|
Interval: Discrete 0.200s (5.000 fps)
|
||||||
[1]: 'YUYV' (YUYV 4:2:2)
|
[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
|
Size: Discrete 640x480
|
||||||
Interval: Discrete 0.033s (30.000 fps)
|
Interval: Discrete 0.033s (30.000 fps)
|
||||||
Interval: Discrete 0.040s (25.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)
|
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`
|
> `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
|
Adjusting camera functions
|
||||||
--------------------------
|
--------------------------
|
||||||
Brightness, zoom, focus, etc, can be adjusted
|
Brightness, zoom, focus, etc, can be adjusted
|
||||||
|
|||||||
Reference in New Issue
Block a user