使用gstreamer将视频文件馈送到v4l2sink

使用gstreamer将视频文件馈送到v4l2sink,gstreamer,v4l2,v4l2loopback,Gstreamer,V4l2,V4l2loopback,我想使用gstreamer和v4l2loopback将视频文件提供给我的虚拟视频设备 使用videotestsrc,类似的方法可以工作(即,我可以从VLC打开我的虚拟设备): 但是,完全相同的代码不适用于我的视频文件: gst-launch filesrc location=~/Documents/my_video.ogv ! queue ! decodebin2 name=dec ! queue ! ffmpegcolorspace ! v4l2sink device=/dev/video0

我想使用gstreamer和v4l2loopback将视频文件提供给我的虚拟视频设备

使用
videotestsrc
,类似的方法可以工作(即,我可以从VLC打开我的虚拟设备):

但是,完全相同的代码不适用于我的视频文件:

gst-launch filesrc location=~/Documents/my_video.ogv ! queue ! decodebin2 name=dec ! queue ! ffmpegcolorspace ! v4l2sink device=/dev/video0
它实际上陷入了“预滚动”阶段:


有人知道为什么吗?我是否错过了
filesrc
decodebin2
之间的一些转换?

我不知道确切原因,但我错过了
!电子秤步骤。还有
!排队

这是工作路线:

gst-launch filesrc location=~/Documents/my_video.ogv ! decodebin2 ! ffmpegcolorspace ! videoscale ! ffmpegcolorspace ! v4l2sink device=/dev/video0

您的命令导致
错误:来自元素/GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:Device'/dev/video0'不是我的计算机上的输出设备。
。为什么会这样?我正在尝试将视频重定向到1.0的
/dev/video0
gst-launch-1.0 filesrc location=“test.mkv”!德克宾!视频转换!电子秤!视频转换!V4L2Link设备=/dev/video0
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
gst-launch filesrc location=~/Documents/my_video.ogv ! decodebin2 ! ffmpegcolorspace ! videoscale ! ffmpegcolorspace ! v4l2sink device=/dev/video0