我可以使用V4L2读取h264视频文件输入流而不是摄像头流吗?

我可以使用V4L2读取h264视频文件输入流而不是摄像头流吗?

我试图找到一个在 C 或 C++ 中使用 V4L2 的清晰小示例,了解如何直接从磁盘上的 h264 视频文件读取。

或者,我如何将解析的全帧 h264 块/数据包传递到开放的 V4L2 解码设备。

有谁知道这是否可以完成或者是否有任何工作示例?

(顺便说一句,我知道 gstreamer、ffmpeg/avcodec,但我正在尝试为 v4l2 解决这个问题)

干杯!

答案1

我认为您正在寻找的是 v4l2loopback 设备,它基本上为您提供了一个虚拟/dev/videoX设备,该设备显示为您可能正在使用的工具的相机。

要使用它,您需要安装v4l2loopback-dkms发行版的软件包,并使用以下命令加载模块modprobe v4l2loopback

要将视频流式传输到该虚拟摄像机,请运行: ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0,其中input.mp4是您的输入视频文件,并且/dev/video0对应于 v4l2loopback 创建的虚拟设备(使用 检查哪一个是正确的v4l2-ctl --list-devices)。

相关内容