使用gstreamer将视频文件提供给v4l2sink

时间:2013-12-30 10:36:33

标签: gstreamer v4l2 v4l2loopback

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

使用videotestsrc,这样的工作(即我可以从VLC打开我的虚拟设备):

gst-launch -v videotestsrc ! queue ! decodebin2 name=dec ! queue ! ffmpegcolorspace ! v4l2sink device=/dev/video0

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

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

它实际上陷入了“PREROLLING”阶段:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...

有人能看出原因吗?我是否会错过filesrcdecodebin2之间的转换?

1 个答案:

答案 0 :(得分:2)

我完全不知道为什么,但我错过了! videoscale !步骤。 ! queue !显然不是必需的。

这是工作线:

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