我想使用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 ...
有人能看出原因吗?我是否会错过filesrc
和decodebin2
之间的转换?
答案 0 :(得分:2)
我完全不知道为什么,但我错过了! videoscale !
步骤。 ! queue !
显然不是必需的。
这是工作线:
gst-launch filesrc location=~/Documents/my_video.ogv ! decodebin2 ! ffmpegcolorspace ! videoscale ! ffmpegcolorspace ! v4l2sink device=/dev/video0