问题 :Rk3568实现rtsp推流,概率出现推流停止
推流流程:camera2 通过Imagereader取流,转成nv12格式图像数据,送入mediacodec编码,编码完成后,送入rtspserver进行推流操作,在通过vlc客户端拉流。
分析过程:
1,通过log确认onImageAvailable 取流停止,CameraDevice.StateCallback 返回onerror错误,确定是取流停止导致。
2.怀疑散热导致,抓取温度传感器,确实soc达到高温73度,加外置风扇前后,降温到了57度。但是问题还是会复现,温度排除。
for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(cat $i/temp)"; done
3568的三个温度传感器位置
thermal_zone0 = soc-thermal
thermal_zone1 = gpu-thermal
thermal_zone2 =test_battery
查看日志发现系抓图超时导致,6911读取视频信号没有返回,进行了断流操作
07-16 16:41:26.188 E/RkCamera( 279): <HAL> V4L2DevBase: @pollDevices: Device[0] /dev/video0 poll failed (3000ms timeout)
串口日志查看,会出现和拔出HDMI视频线同样的log,分析系传输线不稳定导致,更换视频线
[16:41:24.272]收←◆
Goto PCR
RxState = 10
[INFO ] RX Set Event:04
[INFO ] TxEvent-4
[DEBUG] TxState = 0x03
[INFO ] DPRX_VIDEO_OFF_EVENT
[INFO ] MIPIVidInfoClear!!!!!!
[INFO ] Mipi Out Disable
测试15H没有出现断流,问题出在全功能数据线,信号不稳定导致的6911读取视频信号失败,导致camera取流停止,推流停止。
结论:数据线有问题。