关闭

EasyDarwin手机直播是如何实现的快速显示视频的方法

标签: 手机直播秒开画面EasyPusherEasyDarwin映客花椒
3389人阅读 评论(0) 收藏 举报
分类:

前言

经常有人提到最近比较火的映客直播、花椒直播这种,是如何做到在打开手机直播中的某一个主播房间后,立即就能显示出主播视频,非常非常快,而且延时也比较小,是怎么做到的?

其实,这并不是什么高深的技术,就是最基本的关键帧索引/推送,在用户打开直播,请求直播流的时候,服务器将缓存中最新的关键帧开始推送给客户端,那么客户端收到关键帧就能够立即解码显示,一个720p的关键帧,一般的十几k,即使在网速不好的情况下,也是秒秒钟内就能下载完成,下载完成就能立即显示,这样就是快速第一时间出画面的效果了;

服务器端处理

我们在EasyDarwin服务端将接收到的推送端推送的数据都以队列的形式进行缓冲,我们在缓冲的同时,对帧进行过滤,区分音/视频RTP包和I/P视频帧,我们每次都将最新的I帧位置在Queue中进行标记,这样在每一个直播推送分发的时候,我们都从最新的I关键帧开始推送,这样既保证了能够第一时间显示画面,又能够非常低延时低进行直播分发,具体算法如图所示:
EasyDarwin关键帧索引

显示效果

视频秒开

版本及源码下载

  1. 流媒体服务器EasyDarwin:https://github.com/EasyDarwin/EasyDarwin
  2. 手机直播推送端EasyPusher:https://github.com/EasyDarwin/EasyPusher
  3. 手机直播客户端EasyClient:https://github.com/EasyDarwin/EasyClient

遗留问题

其实这里还有一个问题遗留,就是在视频检索到最新的关键帧开始发送的时候,而且音频队列还是从头开始发送给客户端的,这样当缓冲区开的比较大的时候,就会有很多无用的音频数据分发到客户端了,其实这里在做视频帧定位的时候,也要做一下音频帧的定位,不过这个还没想好怎么做,后续再完善!

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2016

EasyDarwin

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

EasyPusher/EasyDarwin/EasyPlayer实现手机直播版本及效果整理

EasyPusher手机直播实现功能最近很多EasyDarwin爱好者提出了手机移动端直播的功能需求,尤其是如何做出像映客这样能够快速出画面播放的效果,经过一段时间的移动端和服务端的优化,EasyPu...
  • xiejiashu
  • xiejiashu
  • 2016-05-19 00:46
  • 7348

从零开始学习EasyDarwin(概述篇)

从零开始学习EasyDarwin EasyDarwin教程 EasyDarwin 入门学习
  • haolipengzhanshen
  • haolipengzhanshen
  • 2016-03-02 22:46
  • 10958

海康IPC+NVR+EasyDarwin+EasyPusher+VLC实现Web实时播放RTSP视频

上篇博客是用ffmpeg+nginx实现web播放rtsp视频,原理是将rtsp转码成rtmp格式,再用flash插件播放 由于项目硬件条件有限,转码基本就不考虑了,因此只能直接播放获取到的rtsp...
  • qq229943249
  • qq229943249
  • 2017-04-06 15:37
  • 4504

EasyDarwin自动停止推流

原文转自:http://blog.csdn.net/ss00_2012/article/details/51441753        我们使用EasyDarwin的推流转发来进行媒...
  • xiejiashu
  • xiejiashu
  • 2016-05-18 11:46
  • 2146

EasyDarwin+ffmpeg进行PC(摄像头+麦克风)流媒体直播服务

上一回我们描述了用EasyDarwin+ffmpeg进行摄像机直播的过程:ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播 我们再进行一个方面的描述,那就是pc摄像头...
  • xiejiashu
  • xiejiashu
  • 2015-07-17 16:23
  • 14189

EasyDarwin拉流支持基本认证和摘要认证

RTSP认证作为RTSP标准协议的一部分,其内容在网上可以找到很多,在此就不在赘述。EasyDarwin作为RTSP服务器也提供了对RTSP请求的基本认证和摘要认证。 EasyDarwin用RTSP...
  • ss00_2012
  • ss00_2012
  • 2016-08-20 18:24
  • 904

从零开始学习EasyDarwin(RTSP篇之协议分析篇)

这篇文章主要从几个方面分析EasyDarwin的RTSP内容 RTSP协议概述 wireshark抓包实例分析 一次完整RTSP的交互流程 EasyDarwin项目代码中 RTSP的初始化 E...
  • haolipengzhanshen
  • haolipengzhanshen
  • 2016-03-04 14:22
  • 5594

EasyDarwin做转发延时太大?

很多人反映,在用EasyDarwin做流媒体转发服务时,延时太大,实际Darwin在转发模块中,有一个控制转发Buffer时间的配置reflector_buffer_size_sec,我们将这个配置改...
  • xiejiashu
  • xiejiashu
  • 2014-12-03 19:54
  • 6942

EasyDarwin_Windows__同屏直播

  • 2017-03-29 11:54
  • 1.39MB
  • 下载
    个人资料
    • 访问:1200190次
    • 积分:11634
    • 等级:
    • 排名:第1508名
    • 原创:169篇
    • 转载:163篇
    • 译文:0篇
    • 评论:379条
    #联系我#

    babosa(a)easydarwin.org


    QQ:289042893


    最新评论