视频直播思路

用live555获取h264视频流 然后把它推到ffmpeg里面解码 再用句柄(view)显示
音频另外单独处理 最后进行同步就ok了
 
Live555
openRTSP客户端流程
1、创建TaskScheduler和BasicUsageEnvironment类;
2、命令行解析,获取流媒体地址和其他选项;
3、创建RTSPClient对象;
4、如果需要,RTSPClient对象发送OPTIONS命令并解析服务端响应,获取可以使用命令集。
5、RTSPClient对象发送DESCRIBE命令,并从获服务端反馈中获取流媒体相关描述SDP字串。
6、创建MediaSession对象,解析SDP字串,创建了相应的子会话对象。在这个过程中还完成了RTP和RTCP通信使用的GroupSock对象的创建,包括协议和端口的选择。
7、根据流媒体不同类型,实例化具体的RTP会话的Source和Sink对象。
8、RTSPClient对象发送SETUP和PLAY命令,服务端开始传输流媒体数据。
9、TaskScheduler开始事件处理循环,通过select监听数据包到达并调用注册函数进行处理。
 
ffmpeg

iOS下基于H264的音视频

先说下总的流程如下:

 
a)从网络接收H264视频数据 adpcm音频数据
 
b)网络数据输入到ffmpeg解码库 音频数据输入到音频解码库

c)ffmpeg解码出YUV420P视频数据 音频解码出PCM数据

d)将YUV420P数据转换为RGB24图像 用UIImageview输出 用OPENGL ES输出也可以(两种方法均验证过可行)

e)将音频PCM数据输入OPEN AL中输出
 
f)以上为整个流程,d1在iphone5上可以达到16桢 左右的效率
posted @ 2016-07-18 19:13  graveliang  阅读(233)  评论(0编辑  收藏  举报