ffplay -fflags nobuffer -flags low_delay -framedrop -fflags discardcorrupt -preset ultrafast -tune zerolatency -fpsprobesize 1 -max_delay 1 -probesize 32 -analyzeduration 0 -sync ext "http://192.168.0.104:8080/stream?topic=/multi/front/image_raw&type=h264"
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision
weijiz 发布的帖子
-
ffplay 超低延迟播放网络视频流指令
-
Ubuntu 16.04 更新cmake
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null sudo apt update sudo apt install cmake --upgrade -y
-
RE: 二维码自动充电模块一直在报开始充电和停止充电
@小助理 经过排查发现是由于充电模块的usb接在usb hub上导致usb电压只有4.3V左右。充电模块继电器无法正常动作接通充电电路。提高usb上的电压可以解决这个问题。
-
RE: 在gmapping下使用激光雷达进行建图无法保存地图
@potterson 你的执行路径有问题,在home文件夹下执行的指令。要root权限才能写入。换到自己的主目录执行保存指令就行了
-
如何修改dd出的磁盘镜像里的文件
对于arm64的系统镜像一般都采用dd的方法进行备份。如果dd出的镜像中有个别的文件要改,重新dd就很麻烦。我们可以采用下面的方法进行操作直接修改。
sudo losetup -f
创建一个loop设备,正常应该有下面的输出
/dev/loop0
mkdir tmp sudo losetup /dev/loop0 3588.img # 这里3588.img就是磁盘镜像 sudo partprobe /dev/loop0 sudo mount /dev/loop0p2 ./tmp # 把磁盘镜像的第二个分区挂的tmp文件夹
这我们就可以直接修改tmp文件夹的内容了。对应的磁盘镜像内部文件也会修改
修改完成后卸载挂载
sudo umount tmp sudo losetup -d /dev/loop7
-
新版本gsteamer mp4mux插件问题
在我们以前的程序中一直采用HTTP 传 MP4 包装的视频流的方式进行图传。整体工作流程如下
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480 ! videoconvert ! queue ! mpph264enc ! h264parse ! mp4mux faststart=true fragment-duration=100 streamable=true ! tcpserversink host=0.0.0.0 port=8080
这个工作流在20.04的gstreamer上是没问题,但是在22.04上就不能用了,会报NAL size错误。感觉应该是这个插件的bug。如果把mp4mux换成mkv的插件这个pipeline在22.04上也是可以用的。但是这样浏览器就没办法播放这个流了。目前也没找到很好的方法。
-
rtk3588 gstreamer 插件安装
安装mpp
git clone https://ghproxy.com/https://github.com/rockchip-linux/mpp --depth=1 cd mpp mkdir build cd build cmake .. make && sudo make install
安装 gstreamer-rockchip
git clone https://ghproxy.com/https://github.com/JeffyCN/rockchip_mirrors --branch gstreamer-rockchip --depth=1 gstreamer-rockchip # 如果没有装meson要先装meson sudo apt install meson ninja-build cd gstreamer-rockchip meson build cd build meson configure --prefix=/usr ninja build sudo ninja install
这时候gstreamer mpp插件就安装好了
gst-inspect-1.0 --plugin | grep mpp
上面指令应该会有以下输出
rockchipmpp: mpph264enc: Rockchip Mpp H264 Encoder rockchipmpp: mpph265enc: Rockchip Mpp H265 Encoder rockchipmpp: mppjpegdec: Rockchip's MPP JPEG image decoder rockchipmpp: mppjpegenc: Rockchip Mpp JPEG Encoder rockchipmpp: mppvideodec: Rockchip's MPP video decoder rockchipmpp: mppvp8enc: Rockchip Mpp VP8 Encoder rockchipmpp: mppvpxalphadecodebin: VP8/VP9 Alpha Decoder typefindfunctions: audio/x-musepack: mpc, mpp, mp+
测试一下编码
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=100 ! video/x-raw, width=640, height=480 ! videoconvert ! queue ! mpph264enc ! h264parse ! mp4mux ! filesink location=video.mp4
这样会生成一个video.mp4文件,可以看到在编码过程中CPU消耗是极小的。如果一切正常就可以用mpv之类的播放器播放这个文件。
-
RTK3588 gstreamer mpp 图传显示错误问题
使用RTK3588的mpp做GPU加速编码图传的时候,图像可能会出现分辨率不对,显示不正常的问题。这时候要检查自己输入的图像格式是否是其默认支持的格式。mpp默认支持以下格式
static const MppFrameFormat gst_mpp_enc_formats[] = { MPP_FMT_YUV420SP, MPP_FMT_YUV420P, MPP_FMT_YUV422_YUYV, MPP_FMT_YUV422_UYVY, MPP_FMT_RGB565LE, MPP_FMT_BGR565LE, MPP_FMT_ARGB8888, MPP_FMT_ABGR8888, MPP_FMT_RGBA8888, MPP_FMT_BGRA8888, };
如果格式不在支持范围内,mpph264enc会自动尝试用rga去转换成支持的格式。rga是3588的图形加速器,可以转换格式或者裁剪拉伸旋转图像。但是默认的rga的驱动是有问题的。导致这个转换会失败。最终的表现就是输出视频显示错误。
所以如果输入格式没法改可以在gstreamer的流水线里面加上videoconvert转换到支持的格式。当然这个过程是需要额外消耗CPU的。更好的方式还是解决rga的驱动问题。不过目前还我还没找到很好的解决方法。