因为毕业设计的需求,需要完成
1.使用Firefly ITX-RK3588,采集CAM-8MS1M送来的图像,并将图像送到hdmi接口显示。
2.使用Firefly ITX-RK3588,将采集到的图像进行压缩并通过网络推流,要求在另一个计算机上能够用vlc工具接收码流并解码显示。
经历了一些困难完成了这项工作,将最后的完成流程记录一下。
1.环境搭建
按照 Firefly官方 3588文档 ,在笔记本上使用 RKDevTool_Release_v3.15 通过USB
烧录 ITX-3588J_Ubuntu20.04-Gnome-r30028_v1.1.1b_230914 固件
固件可以在 itx-rk3588J资料 - firefly(Firefly-RK3399/firefly-rk3288/ROC-3328 - 深圳风火轮科技 (youyeetoo.cn)
去看百度网盘链接
2.FFmedia_release 使用
Firefly-Linux / ffmedia_release · GitLab
去官网下载 FFmedia_release ,按照readme完成demo安装
安装好CAM-8MS1M,使用demo历程
./demo /dev/video0 -o 1280x720 -d 0 -s
就可以将摄像头是视频推到HDMI上,使用ctrl+c就可以终止
3.Gstreamer推流
网络配置
我是使用有线网将开发板与笔记本连接在一起的
RK3588在网口网络配置,设置网口为共享
在笔记本端
网络选择为专用网路 IP地址自动分配
完成配置后,开发板和电脑都重启一下
推流与拉流
在电脑端新建test.sdp文件,写入下述内容并保存,其中6000为端口号,10.42.0.166为上面PC端的IPV4地址
v=0
m=video 6000 RTP/AVP 96
c=IN IP4 10.42.0.166
a=rtpmap:96 H264/90000
双击test.sdp,打开vlc
在RK3588端,命令行输入
//播放gstreamer测试视频
gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! video/x-raw,format=NV12 ! mpph264enc ! queue ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.42.0.166 port=6000
//播放本地视频
gst-launch-1.0 -v filesrc location=/home/firefly/3885.mp4 ! qtdemux ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.42.0.166 port=6000
//摄像头
gst-launch-1.0 -v v4l2src device=/dev/video0 ! video/x-raw,width=1920,height=1080,framerate=30/1 ! videoconvert ! video/x-raw,format=NV12 ! mpph264enc ! queue ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.42.0.166 port=6000
之后就可以正常收到视频了
第一次写文章,有不太好或者不清晰的地方欢迎大家一起交流。
学习过程中主要借鉴下述博客