在 Ubuntu 20.04 上使用 FFMPEG 将 MJPEG 写入环回设备失败。适用于树莓派

Writing MJPEG to loopback device with FFMPEG fails on Ubuntu 20.04. Works on Rasperry Pi

我有一个脚本可以将 MJPEG 从 HDMI 视频采集卡 (/dev/video0) 写入 v4l2loopback 设备 (/dev/video5)。我编译了 v4l2loopback 模块 from source。此脚本在 Raspberry Pi 上运行良好,但在 Ubuntu 上运行失败并出现以下错误: V4L2 output device supports only a single raw video stream。有没有办法解决这个问题,或者我是否被迫将 HDMI 捕获输出转码为原始视频?我希望以与 Raspberry Pi.

相同的方式在 Ubuntu 上运行

这是 FFMPEG 命令:

ffmpeg -input_format mjpeg -framerate 30 -s 1280x720 -i /dev/video0 -vcodec copy -f v4l2 /dev/video5

命令的完整输出:

Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 9137.845580, bitrate: N/A
Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
[video4linux2,v4l2 @ 0x55eb0d461b40] V4L2 output device supports only a single raw video stream
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Stream mapping:
  Stream #0:0 -> #0:0 (copy)

我使用的是过时版本的 FFMPEG (4.2.X)。我从 this PPA 更新到 4.4.1-3,现在一切正常。我希望这对有一天处理相同 hair-pulling 问题的人有用。