【问题标题】:Capture video stream frames from raspberry pi and save in jpgs从树莓派捕获视频流帧并保存为 jpgs
【发布时间】:2018-07-14 05:21:30
【问题描述】:

我必须首先说在使用 gstreamer 和 linux 时我是一条鱼,所以我希望有人能指出我正确的方向。我正在从事一个 ANN 项目,该项目涉及从树莓派获取视频流并将流保存在神经网络可以使用的 jpeg 中。

到目前为止,我可以在此处使用此代码将 pi 流式传输到我的计算机..

 raspivid -t 999999 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse !  rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=MY_IP_ADDRESS port=5000 

通过在我的笔记本电脑上运行它..

 gst-launch-1.0 -v tcpclientsrc host=SAME_IP port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false 

我遇到的问题是我无法保存帧。

我知道我需要使用 multifilesink 来保存文件,但问题是我对此太陌生了,我不知道如何将其合并到代码中。

【问题讨论】:

    标签: raspberry-pi video-streaming gstreamer


    【解决方案1】:

    我建议您阅读应用程序开发手册,以便了解 GStreamer 周围的概念:https://gstreamer.freedesktop.org/documentation/application-development/index.html

    阅读 gst-launch 手册也有助于您开始了解它的语法。您基本上构建了元素管道并使用! 将它们链接在一起。

    进入您的管道,接收器通过 tcp 连接获取其数据,它将对 GDP 格式进行卸载,然后进行 RTP 卸载、h264 解码并进行色彩空间转换并发送到屏幕。您想用 jpeg 格式保存的东西来替换屏幕部分。因此,让我们将输出部分替换为可以编码并保存到磁盘的内容:

    gst-launch-1.0 -v tcpclientsrc host=SAME_IP port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! queue ! jpegenc ! multifilesink location=output_%05d.jpg

    【讨论】:

    • 这正是我想要的。谢谢(你的)信息。在您的帮助下启动并运行
    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多