推流端将日志传到本地电脑的两种方式
使用 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/shexport LD_LIBRARY_PATH=./:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=./sdk_lib/ffmpeg3:$LD_LIBRARY_PATHwhile :doecho "Current DIR is " $PWDstillRunning=$(ps -ef |grep "$PWD/trro-test" |grep -v "grep")if [ "$stillRunning" ] ; thenecho "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-testelseecho "TRRO service was not started"echo "Starting service ..."gdb $PWD/trro-testecho "TRRO service was exited!"fisleep 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