【问题标题】:Creating a virtual webcam from jpeg using GStreamer使用 GStreamer 从 jpeg 创建虚拟网络摄像头
【发布时间】:2016-02-23 13:42:33
【问题描述】:

我正在尝试使用 jpg 文件作为 Skype(或类似软件)的虚拟网络摄像头。图像文件每隔几秒钟就会重新加载一次,并且管道也应该始终传输最新的图像。 我开始创建这样的管道

gst-launch filesrc location=~/image.jpg ! jpegdec ! ffmpegcolorspace ! freeze ! v4l2sink device=/dev/video2

但它只流式传输第一个图像并忽略图像文件的较新版本。我阅读了一些关于 concat 和动态更改管道的内容,但我无法让它为我工作。

你能给我一些关于如何让它工作的提示吗?

【问题讨论】:

    标签: gstreamer webcam pipeline gst-launch


    【解决方案1】:

    动态刷新输入文件是不可能的(至少对于filesrc)。
    此外,您的示例使用freeze,这将阻止图像更改。

    一种可能的方法是改用multifilesrcvideoratemultifilesrc 可以读取很多文件(提供的模式类似于 scanf/printf),videorate 可以控制速度。

    例如,您创建 100 张图像,格式为 image0000.jpg、image0001.jpg、...、image0100.jpg。然后连续播放它们,每张图像在 1 秒内播放:

    gst-launch multifilesrc location=~/image%04d.jpg start-index=0 stop-index=100 loop=true caps="image/jpeg,framerate=\(fraction\)1/1" ! jpegdec ! ffmpegcolorspace ! videorate ! v4l2sink device=/dev/video2
    

    stop-index=100更改图像数量,在caps="image/jpeg,framerate=\(fraction\)1/1"更改速度
    有关这些元素的更多信息,请参阅 gstreamer.freedesktop.org/documentation/plugins.html 上的文档

    编辑:看起来您使用的是 GStreamer 0.10,而不是 1.x
    这种情况请参考旧文档multifilesrcvideorate

    【讨论】:

      【解决方案2】:

      如果您添加一些参数调整并将其与 identity 延迟配对,您可以使用带有 multifilesrc 的通用文件名。它有点脆弱,但只要您保持输入图像的尺寸和格式相同,它就可以用于临时的一次性程序。

      gst-launch-1.0 multifilesrc loop=true start-index=0 stop-index=0 location=/tmp/whatever ! decodebin ! identity sleep-time=1000000 ! videoconvert ! v4l2sink

      【讨论】:

      • 你能提供任何通用文件名工作@mpr 的例子吗?您提供的是列表还是目录?您能否粘贴更多或详细说明此答案?我会得到gstmultifilesrc.c(474): gst_multi_file_src_create (): /GstPipeline:pipeline0/GstMultiFileSrc:multifilesrc0: Error reading file '/home/pi/Data/Videos/TimeLapse/12_10_18': Is a directory ERROR: pipeline doesn't want to preroll. 如果我尝试将 *.jpeg 添加到目录中,那也会中断。只是在寻找管道配方!
      • 为了以上评论的完整性,我发现 Gstreamer 确实接受符号链接。因此,获得这种预处理的变化会很好:mkdir tmp curIdx=0; for curFile in *.JPG; do outFile=$(printf "./tmp/img_%04d.jpg" "$curIdx"); echo 'File: '$curFile '->' $outFile; ln -s $curFile $outFile; curIdx=$(expr $curIdx + 1); done 参考:devtalk.nvidia.com/default/topic/1038158/jetson-tx2/…
      猜你喜欢
      • 2011-02-02
      • 2011-09-08
      • 2016-02-15
      • 2012-08-16
      • 2019-09-01
      • 2023-01-17
      • 1970-01-01
      • 2017-05-27
      • 2010-12-10
      相关资源
      最近更新 更多