尝试使用 AMD GPU 通过 VA-API 将 MJPEG 转码为 HEVC。
使用此命令:
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -c:v mjpeg -f v4l2 -input_format mjpeg -framerate 30 -video_size 1920x1080 -i /dev/video0 -vf 'scale_vaapi=format=nv12' -c:v hevc_vaapi -map 0:a? -map 0:s? -c:s copy -rc_mode 1 -qp 25 -map_chapters 0 output.mp4 -y
看起来运行良好,没有跳帧,转码流畅,CPU 使用率只有 2-3%。但是视频输出文件完全扭曲了。
由于某种原因,FFMPEG 将视频分成两部分,其中一半实际上是正确的视频,而另一半则完全倾斜。
以下是视频输出的图片:
注意:该摄像机是闭路电视摄像机,使用红外 LED 在暗室中拍摄。因此,由于摄像机的原因,它是灰度颜色,而不是基于转码的任何问题。
这是输出的视频文件:
有任何线索知道为什么会发生这种情况吗?
操作系统:Arch Linux
GPU:AMD Radeon Pro WX 2100。
谢谢您的任何建议。