# UsbToUdpTcpClient **Repository Path**: Zach_Develop/UsbToUdpTcpClient ## Basic Information - **Project Name**: UsbToUdpTcpClient - **Description**: 此用例用于QGroundControl开源地面站或对H264视频流解析处理,通过USB将读到的H264视频流解析成解码器需要显示的完整帧,再封装成标准的RTP打包格式,采用本地127.0.0.1回环地址,通过TCP/UDP通信,将数据流发送到QGroundControl进行视频解码显示,测试已经兼容Android 7.0以上版本。但发现6.0以下版本存在花屏和延时,尝试解决办法:用TCP传输时,和QT工程师商量不用QGroundControl的解码方式,采用FFMPEG和NDK层的Mediacodec硬解码,但是此方案还是存在花屏和延时,怀疑有两点问题导致:1、此需求本身存在合理性问题,传输流程为:USB接收视频数据>分析H264视频流>通过TCP/UDP跨进程视频流传输到QGroundControl(TCP/UDP视频流为发送服务端,QGroundControl解码显示为接收客户端);2、或和Android 6.0内存管理有关。 - **Primary Language**: Android - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2019-08-13 - **Last Updated**: 2022-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UsbToUdpTcpClient #### 介绍 此用例用于QGroundControl开源地面站或对H264视频流解析处理,通过USB将读到的H264视频流解析成解码器需要显示的完整帧,再封装成标准的RTP打包格式,采用本地127.0.0.1回环地址,通过TCP/UDP通信,将数据流发送到QGroundControl进行视频解码显示,测试已经兼容Android 7.0以上版本。但发现6.0以下版本存在花屏和延时,尝试解决办法:用TCP传输时,和QT工程师商量不用QGroundControl的解码方式,采用FFMPEG和NDK层的Mediacodec硬解码,但是此方案还是存在花屏和延时,怀疑有两点问题导致:1、此需求本身存在合理性问题,传输流程为:USB接收视频数据>分析H264视频流>通过TCP/UDP跨进程视频流传输到QGroundControl(TCP/UDP视频流为发送服务端,QGroundControl解码显示为接收客户端);2、或和Android 6.0内存管理有关。 #### 软件架构 传输流程:USB DEVICE接收数据流>FIFO传输数据>分析H264帧格式>打包RTP>TCP/UDP传输到QGroundControl。