【发布时间】:2018-08-08 07:33:21
【问题描述】:
我正在尝试捕获和存储网络摄像头流。要求为 1920x1080@30fps。它必须由单板计算机(Raspberry)完成。 捕获的持续时间为 10 分钟。 (目前我只捕捉 10 秒进行测试)
一般来说,相机(来自 ELP 的 usbfhd01m)能够提供 1920x1080@30fps 的 MJPEG 流。我只是无法存储它。我不知道为什么。我使用以下管道进行了尝试:
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=300 do-timestamp=true ! image/jpeg,width=1920,height=1080,framerate=30/1 ! queue ! avimux ! filesink location=test.avi
结果是一个远离流畅的视频文件。我的管道中缺少什么?
当我使用相同的管道,但解码流并将其保存在这样的原始文件中时:
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=300 do-timestamp=true ! image/jpeg,width=1920,height=1080,framerate=30/1 ! queue ! jpegdec ! filesink location=test.yuv
那么原始视频绝对流畅。因此,我认为管道和设备能够以 1920x1080@30fps 录制,但保存流似乎有问题。
将流存储为 matroska 文件格式不会改变我的问题。对于即时转码到 H264,Raspberry Pi 3 似乎还不够强大。 (即使使用 omxh264enc)
【问题讨论】:
-
尝试使用
-ev选项运行命令。