【问题标题】:how to record video (1080p 30fps) from raspberry pi camera Using Gstreamer?如何使用 Gstreamer 从树莓派相机录制视频(1080p 30fps)?
【发布时间】:2019-09-29 02:37:48
【问题描述】:

我是 Gstreamer 的初学者。

我的目标是使用 Gstreamer 以下管道从我的 Raspberry pi 相机以 30 fps 的 H264 格式录制 1080p 分辨率的视频:

gst-launch-1.0 -v  v4l2src device=/dev/video0 ! capsfilter 
caps="video/x-raw, width=1920,height=1080,framerate=30/1" ! videoflip 
method=rotate-180 ! gst-debug ! videoconvert ! videorate ! x264enc! avimux 
! filesink location=test_video.h264

在我运行上述管道后, 我没有收到任何错误,录制的视频显示 1080p 和 30fps,但帧数严重下降。

这是否正确的流水线?

我是否缺少此管道中的任何元素?

【问题讨论】:

  • x264enc 是一个软件视频编码器。覆盆子 pi 并没有什么强大的功能可以使它足够有用。您需要直接从相机以 H.264 格式进行捕捉。
  • Burn baby burn……你会把你的 PI 付之一炬。
  • 如果您使用像罗技 c920 这样的网络摄像头,您可以在摄像头上对宽幅进行编码,获得 1920x1080@30 但不能翻转...

标签: raspberry-pi gstreamer h.264


【解决方案1】:

x264enc 是一个软件编码器,占用大量 CPU 资源。树莓派有一个 OpenMax 硬件 h264 编码器,可以通过 gstreamers gst-omx 绑定访问。您可以使用硬件编码器插入omxh264enc 元素而不是x264enc 元素。

【讨论】:

  • 经过大量更改后,我使用了此管道,但仍然存在帧丢失问题。 gst-launch-1.0 --gst-debug-level=3 -v v4l2src device=/dev/video0 ! capsfilter caps="video/x-raw, width=1920,height=1080,framerate=30/1" ! queue ! videoflip method=rotate-180 ! videoconvert ! videorate ! queue ! omxh264enc ! queue ! avimux ! filesink location = test_video.h264 CPU 使用率:htop :: 33%(高分辨率)内存使用率 ::2.4% (124 mb)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 2020-04-29
  • 2023-03-11
  • 2014-06-11
相关资源
最近更新 更多