视频讲解:
RISC-V 开发板 MUSE Pi Pro Gstreamer 编码UVC及MIPI CSI摄像头视频流
Gstreamer 在视频编码、解码、保存等场景下非常常用,其基于插件化的架构,可以玩的很花,进迭时空的Spacemit GStreamer 支持 spacemitdec 专有插件,参考官方文档https://bianbu-linux.spacemit.com/media/gstreamer_user_guide
安装相关工具依赖
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev
查看gst版本
列出支持的插件
接下来测试UVC,先插上UVC摄像头,使用如下指令可以实时保存视频
gst-launch-1.0 v4l2src device=/dev/video20 num-buffers=600 ! "image/jpeg,framerate=30/1,width=640,height=480" ! typefind ! spacemitdec ! spacemith264enc ! filesink location=uvc.h264
600帧,640x480的图像,30fps
保存的视频流文件为test.h264
使用播放器播放看下
接上MIPI CSI摄像头,使用如下指令
sudo cam-test /usr/share/camera_json/csi3_camera_detect.json
gst-launch-1.0 spacemitsrc location=/usr/share/camera_json/csi3_camera_auto.json close-dmabuf=0 num-buffers=100 ! "video/x-raw(memory:DMABuf),format=NV12,width=1920,height=1080" ! spacemith264enc ! filesink location=ov5647.h264
播放ov5647.h264