关闭

[置顶] 基于iOS的网络音视频实时传输系统(一)- 前言

标签: 网络摄像头音视频实时传输socket
172人阅读 评论(1) 收藏 举报
分类:

演示图


(由于GIF大小限制,图做得比较模糊和不太流畅,实际的效果是不错的,可以自己下下来实际跑一下)

client端:




server端:





下载


GitHub:

client 端:https://github.com/AmoAmoAmo/Smart_Device_Client

server端:https://github.com/AmoAmoAmo/Smart_Device_Server

另还写了一份macOS版的server,但是目前还有一些问题,有兴趣的去看看吧:https://github.com/AmoAmoAmo/Server_Mac



简介


之前在做类似的网络协议的时候,突发奇想,想写一个网络视频监控,基于局域网的情况下,将MacBook摄像头捕获到的视频,在手机端显示,但是由于对macOS不是很熟悉,最终导致该计划流产。所以后来干脆使用手机捕获视频数据。

为了简化项目工作量,socket协议也只用到了一些必要的功能,其他细节如client端退出监控视频时,server端会crash,各位有需要可以自行去添加一些如设置select()函数,或者设置signal()函数忽略这个断开的信号。等等

项目中没有写录制设备视频的功能,所以没有用到MP4封装

更多其他的细节已经搭建过程,有兴趣的可以去我的GitHub上回退到各个版本看循序渐进的过程。关于音视频我也是初学者,欢迎各位斧正。



主要功能


client端:

1. udp局域网搜索设备(模拟设备的代码在这里),或者手动添加其他设备(并没有功能) 到plist
2. 点击已添加的监控设备,开始TCP音视频数据传输
3. 接收到音视频数据,进行解码,并用OpenGL es渲染显示到界面上 或openAL播放音频
4. 横竖屏功能

server端(摄像头):

1. 点击“reset”,进入“配对模式”,即开始UDP监听AP
2. 连接成功后,将自己的设备信息发送给client
3. 开始捕获音视频,并进行硬编码,发送给client



使用方法


第一次使用时,先点击“server”端的“reset”按钮,表示开始处于配对模式,

“client”端点击“+”按钮,开始去局域网里搜索(UDP)设备,就会得到设备的IP地址等信息,后面音视频传输就是用这个IP地址来建立TCP通信的。这个过程模拟实际应用中

这里音视频传输用TCP还是UDP没有什么讲究,主要是根据嵌入式工程师给的音视频协议文档里用到的是哪个。

这里就是用“server”端来模拟一种型号的监控摄像头。

找到设备后,信息会自动被填写到textField上,点击“添加”,设备就被写入plist文件里。

点击已添加的监控视频,即可开始音视频传输



相关文章


基于iOS的网络音视频实时传输系统(一)- 前言

基于iOS的网络音视频实时传输系统(二)- 捕获音视频数据

基于iOS的网络音视频实时传输系统(三)- VideoToolbox编码音视频数据为H264、AAC

基于iOS的网络音视频实时传输系统(四)- 自定义socket协议(TCP、UDP)

基于iOS的网络音视频实时传输系统(五)- 使用VideoToolbox硬解码H264

基于iOS的网络音视频实时传输系统(六)- AudioQueue播放音频,OpenGL渲染显示图像


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6342次
    • 积分:441
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:5篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论