【问题标题】:Parsing frames from raspberry pi video stream从树莓派视频流中解析帧
【发布时间】:2014-06-11 10:28:04
【问题描述】:

问题

我正在进行的一个项目需要我解析帧,并使用树莓派相机以大约 10Hz 的频率进行一些非常简单的图像处理。

我尝试使用 raspistill 和 raspiyuv(原始静止)应用程序来生成图像,但是它们都无法达到我正在寻找的 10Hz 帧速率(即使在 128x64 的低分辨率下,这也是我所需要的,在延时摄影模式下,每张图像每秒播放约 1/2 秒,延时摄影设置为 100 毫秒)。

raspivid 应用程序允许我以高于必要的 10 帧/秒的速度输出视频,但是我不确定从 .h264 流中抓取帧以进行图像处理的最佳方法是什么。

我看过的内容

我发现Capturing jpegs from an h264 stream with gstreamer on a Raspberry Pi 有人设法使用 gstreamer 从 .h264 相机流中获取 1Hz 的 jpeg,这表明可以使用 gstreamer 简单地解析原始帧。

我尝试复制所做的事情,但是当我尝试调用他未修改的管道时,只是为了确保它在继续尝试修改它之前正常工作,它给了我一个从 videorate0 链接到 jpegenc0 的管道错误。

问题

我正在尝试使用 gstreamer 和可用插件(或者我应该查看其他工具,例如 ffmpeg)吗?如果是这样,任何人都可以提供帮助以使其正常工作吗?最后,是否可以进一步使用该工具将这些原始帧直接传送到 c 程序中进行解析? (可能使用 !filesink location=/dev/stdout?)

【问题讨论】:

  • 您使用的是 gstreamer 0.10 还是 1.0?
  • @MarkTolley 我相信我正在使用 gstreamer 1.0,虽然我应该注意我对 gstreamer 的使用经验不是很丰富,所以我使用了 this pastebin 中的构建脚本,它似乎运行正确,并安装所需的插件等。这可能会过时吗?
  • 您找到解决方案了吗?

标签: camera raspberry-pi gstreamer h.264


【解决方案1】:

@MarkTolley 我相信我使用的是 gstreamer 1.0,虽然我应该注意我对 gstreamer 的使用经验不是很丰富,所以我使用了这个 pastebin 中的构建脚本,它似乎运行正确,并安装了所需的插件,等等。这可能会过时吗?

它已经过时了,但它仍然是 gstreamer-1.0。由于 1.1.x 中的错误,该脚本似乎正在使用 1.0.x 分支。不幸的是,我不知道这个错误是否在 1.2.x 中得到修复。

在浏览了作者链接到的邮件列表线程后,我找到了他终于成功的帖子:http://gstreamer-devel.966125.n4.nabble.com/Capturing-jpegs-from-an-h264-stream-tp4660254p4660459.html

raspivid -n -t 1000000 -vf -b 2000000 -fps 25 -o - | gst-launch-1.0 fdsrc ! video/x-h264,framerate=25/1,stream-format=byte-stream ! decodebin ! videorate ! video/x-raw,framerate=10/1 ! videoconvert ! jpegenc ! multifilesink location=img_%04d.jpg

试试他在那篇文章中使用的管道。如果您仍然遇到问题,我建议您发布到邮件列表或访问 IRC 频道,因为这些地方比 SO 更适合进行故障排除。


我将尝试回答您原始帖子中的其他问题:

我正在尝试使用 gstreamer 和可用插件吗

绝对! Gstreamer在rpi上也支持硬件编码/解码h264,不知道其他工具有没有。

最后,是否可以进一步使用此工具将这些原始帧直接通过管道传输到 c 程序中进行解析

我看到你已经在使用fdsrc,有一个对应的fdsink可以写入标准输出。

但是,如果您仍然要编写 C 程序,则最好实现 appsink 并让 gstreamer 将缓冲区直接提供给您的代码。

【讨论】:

    猜你喜欢
    • 2018-07-14
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多