工具使用

最近更新时间:2025-08-13 11:36:32

我的收藏

推流端将日志传到本地电脑的两种方式

使用 scp 直接传输

scp ubuntu@VM-253-114-ubuntu:trro-gateway-sdk-release/logs ./

使用 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 1920x1080 -framerate 30 -vsync 2 -i /dev/video0 -frames:v 5 output.yuv
ffmpeg -f v4l2 -input_format yuyv422 -video_size 1920x1080 -framerate 30 -i /dev/video0 -frames:v 1 output.png
4. 播放显示
ffplay -f rawvideo -pixel_format yuyv422 -video_size 1920x1080 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_PATH
export LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATH
export 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 3
done
2. 导入环境变量后执行 trro-test。
export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./sdk_lib/ffmpeg3:$LD_LIBRARY_PATH
gdb trro-test