如何进行视频的实时传输?

big_welley 2003-08-13 05:52:44
从摄像头采集一直到远程的播放该怎么做?请高手们指教!
...全文
356 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
free_card 2003-08-13
  • 打赏
  • 举报
回复
我去年做了一段时间局域网上的实时视频传输,如果是服务器对多用户进行实时的视频传输,以我的经验:
1.服务器软件用多线程:
(1)主线程:读出(看你的图象具体怎么上PC机了)一帧视频数据,送给拆分线程。
(2)拆分线程:接到一帧视频,开始拆包、做帧标记、打序列号,送给发送线程。
(3)发送线程:用RTP socket把封装好的数据包发给客户端。此socket是点对多点、单向
有根方式的组播套接字,实际上是基于UDP派生的,但他用到了RTP和RTCP(实时传输
协议和实时传输控制协议),如果你传输的不是实时数据,直接用UDP就行了。

2.客户端软件结构一般用多线程,线程间用事件对象进行同步,而共享数据区用临界区对象进
行同步。
(1)主线程:接收网络数据包的线程,优先级最高,可以尽量保证不丢数据,也采用RTP协
议,用网络事件来触发。主线程接收到视频数据包后,将数据放入一个链表中,然后
用事件对象触发组装线程。
(2)组装线程:从链表中读出数据包,要进行帧确认、排序等工作,当把一帧图象的所有
包都取到时,再调用组装模块(可以是一个函数),将这些数据包组装成完整的一个
帧,然后送到解压线程。
(3)若干解压播放线程。主要考虑到如果你客户端软件想同时播放多画面,比如说4画面图
象,就要用4个解压播放线程。
(4)至于图象存储,要看你的客户需要怎么存了,如果是手工存当然不需要单开线程,如果
是规定定时存或在某个事件发生时自动存盘,就需要单开一个线程,由定时器到时消息
或此事件发生来触发。



 
课程摘要1 Qt音视频开发实战 是陈超老师用10年以上音视频一线实战开发经验,四年音视频开发教学经验打造的Qt音视频开发课程。2 Qt音视频开发实战以Qt c++开发为中心。所有课程全部围绕Qt音视频开发展开。3 非常适合那些只做Qt开发的工程师来学习,学习更容易一些。学习目标,培养高级Qt音视频开发工程师.4 Qt音视频开发实战适合那些掌握Qt基础开发,初级开发工程师,月薪在20k以下,通过学习,达到更高薪水的Qt高级开发工程师。 课程优势1 老师过去15年+ 音视频,网络通讯,数字图像处理一线实战经验。过去四年积累了丰富的音视频开发教学经验,学员从年薪30w~50w,就职于腾讯,阿里等各大互联网公司。2 老师10多年Qt开发经验,长期大量使用Qt开发项目,国内最早一批使用Qt的程序员。3 QQ 一对一教学指导,阶段性作业案例小项目指导,就业面试指导。 课程内容1 Qt 核心基础加强。对于那些学了很多年Qt开发而不得要领的学员非常友好。2 音视频开发基础。音视频原理,RGB YUV, 音频原理。图像压缩编码,音频压缩编码,H.264压缩,H.264编码原理 I P B SPS PPS解析,   视频存储容器,mp4 , AAC.  Qt音频视频采集,FFmpeg编码,解码,x264编码,AAC编码。mp3编码。格式转换。视频播放器内核。图像渲染。3 OpenGL数字图像处理基础。OpenGL基础,渲染管线,shader编程。滤镜,美颜,后期处理。编写渲染引擎。4 网络socket通讯编程,自定义私有协议。TCP/UDP音视频传输。 学员要求1 熟悉c/c++,掌握Qt基本控件,类基础。2 每天学习两小时,学习周期3~5个月,做完练习,小项目。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧