一、前言

做音视频开发,会遇到将音视频重新转发出去的需求,当然终极大法是推流转发,还有一些简单的场景是直接自定义协议将视频传出去就行,局域网的话速度还是不错的。很多年前就做过类似的项目,无非就是将本地的图片上传到服务器,就这么简单,其实用http的post上传比较简单容易,无需自定义协议,直接设置好二进制数据即可,而采用TCP或者UDP通信的话,必须自定义协议,因为不知道什么时候数据接收完了是完整的图片数据,可能同时在发送很多图片数据,而且还不能区分收到的图片是哪个客户端发来的,TCP长连接的话,还需要有心跳来检测连接,所以必须自定义一套协议来支撑通信,这套协议采用的是上海监管平台的通信协议格式,拓展性比较强,其中头部信息包括了类型+当前完整包的数据长度,这个类型就是通信协议的标识,这样下次来一个其他类型的比如楼宇对讲可以叫IDOOR,服务端根据这个标识就能知道采用何种解析算法来处理后面的数据,而当前完整包的数据长度可以用来处理收到的数据,只有该长度的数据才表示接收完成一个完整的图片数据,再去解码处理。当传输的图片到了一定速度的时候比如一秒钟传输20张图片,其实就相当于传输视频了,一般人的肉眼看到一秒钟20张图片基本上认识就是视频了。

TCP理论上是稳定的连接,不会丢包,也不会随便一个包插入到一个包的中间,肯定能保证一个数据包的完整性,TCP连接也分两种,一种是长连接,一旦连接了就一直通信,主要用在频繁通信的场景中比如实时上传,还有一种叫短连接,客户端发完数据或者服务端接收完数据就立即断开连接,主要用在不频繁的通信场景中比如报警上传,毕竟报警的情况在一

Qt音视频开发45-视频传输TCP版相关推荐

  1. Qt/C++音视频开发45-音视频类结构体参数的设计

    一.前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结 ...

  2. C++/Qt音视频通话开发MetaRTC源码解读,视频推流和拉流

    本章内容解读MetaRTC开源代码,无任何二次开发,用于学习交流. MetaRTC是国人开发的开源项目,适用各种场景音视频二次开发,可以去git阅读README,我们使用相对成熟的版本测试: Rele ...

  3. Moviepy音视频开发:视频转gif动画或jpg图片exe图形化工具开发案例

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完 ...

  4. Qt音视频开发27-ffmpeg视频旋转显示

    一.前言 用手机或者平板拍摄的视频文件,很可能是旋转的,比如分辨率是1280x720,确是垂直的,相当于分辨率变成了720x1280,如果不做旋转处理的话,那脑袋必须歪着看才行,这样看起来太难受,所以 ...

  5. Qt音视频开发40-人脸识别离线版

    一.前言 上一篇文章写了在线调用人脸识别api进行处理,其实很多的客户需求是要求离线使用的,尤其是一些事业单位,严禁这些刷脸数据外泄上传到服务器,尽管各个厂家号称严格保密这些数据,但要阻止这些担心,唯 ...

  6. Qt音视频开发39-人脸识别在线版

    一.前言 关于人脸识别这块,前些年不要太火,哪怕是到了今天依然火的一塌糊涂,什么玩意都要跟人脸识别搭个边,这东西应该只是人工智能的一个很小的部分,人脸识别光从字面上理解就是识别出人脸区域,其实背后真正 ...

  7. 【Anychat音视频开发】视频直播系统的开发技术点

    视频直播是利用视频压缩.直播等流媒体技术,在装有电视卡或视频采集卡的电脑上安装一套视频直播服务软件,把采集到的视频信号进行一系列实时编码.处理,然后再广播出去,起到同步直播的效果.视频直播被广泛的应用 ...

  8. C++/Qt音视频通话开发MetaRTC源码解读,dtls交互流程,dtls抓包分析

    目录 dtls抓包分析 dtls流程,主叫发送Client Hello dtls流程,Application Data dtls流程,Encrypted Alert 本章内容解读MetaRTC开源代码 ...

  9. Android短视频开发都需要什么技术?

    今天我们来讲点干货,估计来看这篇帖子的人都知道短视频APP有多火,也都知道安卓系统在手机系统中占的市场份额有多大,那我就不多嘴巴拉巴拉一些行业背景了,以下我着重讲一讲Android端的短视频开发技术. ...

  10. 短视频开发,录制视频添加背景音乐功能实现

    短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...

最新文章

  1. 2020-11-25(多级页表的补充)
  2. XML file does not appear to have any style information associated with it. XHTML程序出现这个错误
  3. 迟到的2017年终总结与2018目标规划
  4. Linux系统:软链接与硬链接的原理分析
  5. 【ASP.NET Step by Step】之十六至二十三 Inserting, Updating, and Deleting Data
  6. Android开发笔记(一百七十二)第二代翻页视图ViewPager2
  7. 咸鸭蛋吃了对身体有什么好处?
  8. [USACO13OPEN]What's Up With Gravityp【最短路 / SPFA】
  9. AJAX——ASP.NET AJAX框架(一)ScriptManager
  10. android x86 精简版,逆天!Windows7终极纯净版x86,仅239MB | 殁漂遥
  11. java opencv 模板匹配算法_OpenCV模板匹配算法详解
  12. TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
  13. python里sample_python中的sample什么意思
  14. 轨道交通通信施工学习总结(四)漏泄同轴电缆安装
  15. Java学习lesson 06
  16. Vue 移动端实现调用相机扫描二维码或条形码
  17. BAPI_PO_CREATE1--单价增大10倍问题
  18. 7-20 sdust-Java-字符串集合求并集
  19. 【转载】研究生退学记——谨以此记录我半途而废的研究生生涯
  20. 通过jenkins构建服务,并发布服务,修改Jenkins以Root用户运行

热门文章

  1. iPhone长截图快捷指令(科技兽修改版)
  2. java免费单机游戏中心_虚拟网游(单机游戏)
  3. 夜神/逍遥/雷电/51/网易MUMU/腾讯手游助手等模拟器多开模拟器分配不同ip的办法
  4. python中关于object和type的个人理解
  5. bfptr算法(即中位数的中位数算法)
  6. ElacticSearch索引,文档,记录,常用指令
  7. 人工智能实战第六次作业_张绍恺
  8. Sense 406错误
  9. 液晶屏的接口信号RGB_TTL、LVDS、MIPI
  10. android+动态光圈效果,三星S9评测:安卓机皇是你,960帧拍摄+可变光圈