一、使用 sz 工具
sudo apt-get install lrzsz
sz /path/to/your/file
二、v4l2-ctl 工具
1. 查看v4l2相机帧率及是否已经有数据了
v4l2-ctl -d /dev/video1 –set-fmt-video=width=1920,height=1080 –stream-mmap
2. 查看相机支持的格式和分辨率
v4l2-ctl –device=/dev/video0 –list-formats-ext
三、相机问题排查
1. 查看相机是否被占用
lsof /dev/video0
2. 使用 v4l2-ctl 查看一下相机支持的格式和分辨率
v4l2-ctl –device=/dev/video0 –list-formats-ext
3. 采集保存为 yuv 格式数据或者一张图片 png
·ffmpeg -f v4l2 -input_format yuyv422 -video_size 1920×1080 -framerate 30 -vsync 2 -i /dev/video0 -frames:v 5 output.yuv
·ffmpeg -f v4l2 -input_format yuyv422 -video_size 1920×1080 -framerate 30 -i /dev/video0 -frames:v 1 output.png
4. 播放显示
ffplay -f rawvideo -pixel_format yuyv422 -video_size 1920×1080 output.yuv
如果不能采集中报错、不能播放或显示照片,请排查相机问题。
四、iperf 打流使用
1. 安装 iperf
sudo apt-get install iperf3
2. 服务端 (默认监听5201端口)
iperf3 -s
3. 端侧
iperf3 -c 192.168.1.1 -u -b 10M -t 10
-u 表示使用 UDP、-b 10M 表示带宽 10 Mbps、-t 10 表示测试时长 10 秒
五、ASAN 工具
1. 编译的时候需要加新的编译选项
-fsanitize=address -g
例如:trro-test 编译
g++ trro_sample.cpp -o trro-test -I ./include -L ./sdk_lib/ -L ./sdk_lib/soft -ltrro_field -lrtc_media -lrtc_engine -pthread -ldl -Wl,–rpath-link=./sdk_lib/ffmpeg3 -fsanitize=address -g
2. 导入 libasan.so 链接库
export LD_PRELOAD=/usr/lib/gcc/aarch64-linux-gnu/11/libasan.so
查找 libasan.so
sudo find / -name "libasan.so*" ldconfig -p | grep libasan.so
3. 导 入 ASAN_OPTIONS 选项
export ASAN_OPTIONS=halt_on_error=0:detect_leaks=1:malloc_context_size=50:log_path=./asan/asan_%p.log
运行可执行文件
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./sdk_lib/ffmpeg3:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./sdk_lib/nvidia:$LD_LIBRARY_PATH ./trro-test
六、tcpdump 抓包
1. 抓取经过 eth0 网卡,且与 IP 地址 120.53.67.39 通信的 HTTPS(端口443)流量,包括发往该 IP 的和从该 IP 发出的数据包
tcpdump -i eth0 host 120.53.67.39 and port 443
| 字段 | 说明 |
| -i eth0 | 指定在网卡 eth0 上抓包。 |
| host 120.53.67.39 | 抓取与 IP 地址 120.53.67.39 相关的所有数据包(无论是源地址还是目的地址)。 |
| and port 443 | 只抓取端口号为 443(HTTPS 默认端口)的数据包。 |
2. 只抓取源 IP 是某地址的包
tcpdump -i eth0 src 192.168.1.100
3. 抓取目的端口是 22
tcpdump -i eth0 dst port 22
七、控制消息时延测试
100Hz,500字节回环测试,Windows 拉流版本
单击下载 控制消息时延测试包
单击 RepeatTest 进行控制消息发送测试,再次单击结束,时延报告生成。
八、GDB 调试
1. 修改run_loader.sh文件,直接在可执行文件 trro-test 前加入 gdb。
#!/bin/sh export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib/ffmpeg3:$LD_LIBRARY_PATH while :do echo "Current DIR is " $PWD stillRunning=$(ps -ef |grep "$PWD/trro-test" |grep -v "grep") if [ "$stillRunning" ] ; then echo "TRRO service was already started by another way" echo "Kill it and then startup by this shell, other wise this shell will loop out this message annoyingly" killall $PWD/trro-test else echo "TRRO service was not started" echo "Starting service …" gdb $PWD/trro-test echo "TRRO service was exited!" fi sleep 3done
2. 导入环境变量后执行 trro-test。
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib/ffmpeg3:$LD_LIBRARY_PATHgdb trro-test