zoukankan      html  css  js  c++  java
  • 视频直播思路

    用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桢 左右的效率
  • 相关阅读:
    三维偏序(陌上花开)
    【题解】洛谷P4735最大异或和
    【题解】CF#229 E-Gifts
    【题解】JXOI2017颜色
    【题解】SDOI2009Bill的挑战
    【题解】CF#960 H-Santa's Gift
    【题解】Atcoder ARC#85 E-MUL
    【题解】CF#1012 C-Hill
    【题解】CF#852 E-Casinos and travel
    【题解】Atcoder ARC#90 F-Number of Digits
  • 原文地址:https://www.cnblogs.com/graveliang/p/5682360.html
Copyright © 2011-2022 走看看