ffmpeg - 将 MJPEG 流播放到 v4l2loopback 设备

标签 ffmpeg v4l2

我有一个带有 V1 摄像头的 RaspberryPi。
我想将它用作 Zoom、Teams 和其他虚拟 session 的摄像头。
我使用名为“Motion”的应用程序通过 http 获得 RaspberryPi 流式运动 JPEG。
我在我的 linux 笔记本电脑上创建了一个 v4l2 虚拟设备作为虚拟相机。
但是,我无法使用简单的命令让 mjpeg 流播放到 v4l2 虚拟设备:ffmpeg -i "http://milan.local:8081" -map 0:v -f v4l2 /dev/video4结果是:

Input #0, mpjpeg, from 'http://milan.local:8081':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 640x480 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[v4l2 @ 0x55a04567bbe0] Unknown V4L2 pixel format equivalent for yuvj420p
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --

我的 ffmpeg 命令缺少哪些选项?

最佳答案

添加 -vf format=yuv420p-vf format=yuyv422输出选项:

ffmpeg  -i "http://milan.local:8081" -vf format=yuv420p -f v4l2 /dev/video4

关于ffmpeg - 将 MJPEG 流播放到 v4l2loopback 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63125118/

相关文章:

c++ - 如何使用 ffmpeg 将 3840 nb_samples 编码为需要 1024 的编解码器

ffmpeg - 如何使用 FFmpeg 将两个图像合二为一?

Gstreamer错误: pipeline could not be constructed: no element "v4l2src"

c - DQBUF 的 ioctl 的 V4L2 无效参数

linux - 打开 V4L 接口(interface)时出错 : Operation not permitted

FFmpeg:对于 1 720p 和 1 1080p 视频,我如何将第一个视频放大到 1080p 并将它们堆叠在一个命令中?

java - FFmpeg 使用 Java 运行时在 Mac 上使用目录名称中的空格从 PNG 制作视频

video - FFMPEG - 将 MKV 转换为带有所有流(字幕)和水印的 MP4

c++ - V4L2相机设置帮助

opencv - 在 Linux 上使用 OpenCV 捕获多个网络摄像头 (uvcvideo)