FireBreath开发实时播放接口(Yate + SIP + FFMPEG + SDL)
来源:互联网 发布:lol玩家数量 知乎 编辑:程序博客网 时间:2024/06/05 07:22
当时真的是需要这样的一个博文来指导做这个功能模块,可惜网上FireBreath的资料很少,本身对C++的不是很熟悉,所以一路上是不断尝试和摸索,好在马马虎虎的将这个模块实现了,现在记录下来。
首先说明一点,我们的Yate的 SIP Server和终端的SIP Client以及Android的上面的SIP Client还有Windows PC终端的SIP Client和Linux PC终端的SIP Client都实现了。
所以大家的是建议借助这个现有的条件去实现web service实时播放的功能。
加上刚对FireBreath认识,尝试在这上面调用SIP,RTP,FFMPEG以及SDL。
期间遇到的问题,断断续续在其他的文章里面有一些记录了,不知道为什么,RTP好像用不了,收包的时候导致插件直接挂掉了。后来直接使用的UDP,去掉了前面的12个字节。
通过FireBreath注册了3个接口给界面的JS调用,SipRegister();SipInvite();SipBye();
其余的功能就是在这三个函数下面启动的线程去完成的,在SipRegister里面调用一个接受SIP Message的线程SipMonitor;在SipMonitor里面接受到200OK的时候,也就是EXOSIP ANSWER里面创建了AudioRecv、VideoRecv、AudioPlay和VideoPlay的线程;
SipInvite就是发送Invite消息,请求获取实时视频数据;
SipBye是发送Bye消息,请求挂断本次视频请求;
在AudioRecv和VideoRecv线程里面进行收取AudioData和VideoData,并将他们写入环形缓冲区AudioCirBuf和VideoCirBuf;
在AudioPlay和VideoPlay线程里面将环形缓冲区AudioCirBuf和VideoCirBuf的数据取出来通过FFMPEG解码,通过SDL播放出来;
至此大概框架就出现了。
- FireBreath开发实时播放接口(Yate + SIP + FFMPEG + SDL)
- FireBreath开发实时播放接口(Yate + SIP + FFMPEG + SDL)
- ffmpeg+SDL+windows 视频播放器的开发(三)
- SDL 与 FFMPEG 音乐播放器开发(1)
- SDL 与 FFMPEG 音乐播放器开发(4)——使用FFMPEG库解码
- ffmpeg SDL播放视频
- ffmpeg+sdl播放类
- SDL 与 FFMPEG 音乐播放器开发(2)——混播多个音频
- SDL 与 FFMPEG 音乐播放器开发(3)——改变音量、跳转
- FFmpeg+SDL视频播放器(脱离开发环境)学习笔记
- 使用FFmpeg&SDL开发音视频播放器
- 使用FFmpeg&SDL开发音视频播放器
- FFMPEG+SDL简单播放器
- FFMPEG+SDL简单播放器
- FFMPEG + SDL音频播放分析
- ffmpeg+SDl+ 播放器 -01
- FFMPEG + SDL音频播放分析
- FFMPEG + SDL音频播放分析
- android网络通讯
- Codeforces 488B - Candy Boxes (构造)
- android显示屏的更换---环境建立
- win7共享网络
- iTween研究院之学习笔记Move移动篇
- FireBreath开发实时播放接口(Yate + SIP + FFMPEG + SDL)
- PLSQL使用技巧(持续补充...)
- java中url中文转码问题
- struct2的配置及理解
- Linux下面的终端
- java中JList的setSelectionMode()详解
- ios笔记-- 多线程应该知道的那几件事 GCD NSThread NSOperation
- 飞行员配对方案问题(二分图最大匹配)
- 计算机中负数的表示方法