一个项目有接触到网页视频播放,给到我的是一个m3u8的文件格式,之前并没有接触到视频这一块的技术,而且对于这种文件格式也是第一次,查资料写demo折腾一番,终于成功的在网页播放m3u8格式的视频文件,这里也整理记录一下自己查询到关于视频播放还有流媒体文件播放原理的资料。

视频播放主要技术

视频播放的主要技术点,封装技术,视音频压缩编码技术,流媒体技术
封装技术:就是把视频数据和音频数据打包成一个文件的规范。既我们生活中所看到的各种视频格式,包括avi、mp4、rmvb、flv、mkv、ts等。
视音频压缩编码技术:视频是由一张一张的照片组成的,每秒24帧,如果把所有的图片存储起来,数据量会很大,基于相邻的图片只会有比较微小的差别,视频压缩的原理就是存储每张图片和上一张不一样的地方,这样就大大的压缩的视频的体积,目前常用技术包括H.264、MPEG2、VP9、VP8等,音频编码压缩主要使用AAC、AC-3、MP3、WMA。
流媒体技术:流媒体技术主要用于网络视频播放和直播,在所有封装格式中,除了avi其他都支持流媒体。

视频播放原理

解协议:这一步主要针对流媒体,本地文件播放不需要,将流媒体协议数据解析为相应的封装格式。
解封装:输入的封装格式数据,分离成为视音频流的压缩编码数据。
解码:讲视音频流解码成非压缩的原始数据。

当前主要直播技术

目前最常用的是HLS协议,因为支持度高,技术简单,但是延迟相对于其他的直播技术非常严重

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime, Safari, OS X, and iOS software. It resembles MPEG-DASH in that it works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an overall potentially unbounded transport stream. As the stream is played, the client may select from a number of different alternate streams containing the same material encoded at a variety of data rates, allowing the streaming session to adapt to the available data rate. At the start of the streaming session, HLS downloads an extended M3U playlist containing the metadata for the various sub-streams which are available.[2]

这是wikipedia上关于HLS的介绍,他是由苹果公司推出的基于HTTP的流媒体网络传输协议。
主要由两部分构成,.m3u8的palylist索引文件,一个是ts封装格式的视频文件,客户端获取m3u8文件之后,根据索引再请求下载对应的ts文件,流程如下:

将录制的视频使用MPEG-2编码切片,生成索引文件和ts格式的切片视频,client客户端通过HTTP请求获取。
目前移动端和Safari可以用HTML5的viedo标签直接播放,其他浏览器需要做兼容,现在有很多的基于hls的兼容方案,包括video.js的videojs/videojs-contrib-hls、hls.js、Chimeejs/chimee等。
这些HLS的兼容方案工作原理大概相同:

  • 通过http请求获取索引文件
  • 将传输的视频流二进制数据封装成可直接播放的视频格式
    videojs-contrib-hls是利用video.js里SWF的一个特殊模块,将视频二进制数据打包成flv格式
    hls.js是转化成MP4格式
  • 使用appendBuffer将视频片段添加到SourceBuffer中

作者:水一川
链接:https://www.jianshu.com/p/8845b976fcaf
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2020最流行的几种直播技术汇总相关推荐

  1. 一种直播训练程序的技术方案设计

    申明:文中涉及到的图片以及文字内容均为原创,未经授权,不得使用.以下文章包含3100字,阅读需要12分钟,请合理安排时间. 公众号原文链接: 一种直播训练程序的技术方案设计 随着短视频和直播带货的爆火 ...

  2. 视频直播技术详解(3)编码和封装

    声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 作者:七牛云 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群 ...

  3. 【云中沙箱】视频直播技术浅析与实践!

    作者:鲍天舒  公司:上海驻云信息科技有限公司 云中沙箱,阿里云官方实验平台.网址:http://lab.aliyunedu.net 云中沙箱实验,教您如何部署视频直播平台! 1. "快速部 ...

  4. 视频直播技术:最大限度保障流畅性和清晰度

    直播和互动直播在2017年引起了人们的极大关注,应运而生的各种直播类APP多如牛毛.随着互动直播的逐渐兴起,交互成为直播APP的强需求.然而,实际网络中的丢包.延迟.抖动等问题仍然严重影响了直播的效果 ...

  5. 腾讯云快直播——超低延迟直播技术方案及应用

    正文字数:4361  阅读时长:7分钟 随着直播业务的发展,在线教育,连麦直播.赛事直播等高实时性直播场景的出现,用户对于直播流畅度.低延迟等性能的要求愈加严苛.腾讯云直播技术高级工程师陈华成 从5G ...

  6. 《视频直播技术详解》之(四):编码和封装

    七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣. 结合七牛实时流网络 LiveNet 和直播云解 ...

  7. WebRTC直播技术方案

    我们都知道,WebRTC是面向互联网的一种即时通信标准,由于被Chrome.火狐.Safari等主流浏览器支持,并提供了一致和简洁的API,使得开发WebRTC的视频通信应用非常简单和流行. 在大多数 ...

  8. 关于移动视频直播技术,关键干货都在这里了(三)编码和封装

    关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 视频编码是视频直播技术系 ...

  9. 只有两种直播:淘宝直播和其它直播

    [深几度·让互联网回归经济学系列] 撰稿|吴俊宇 「摘要:任何风口都要面临"回归均值"的考验.过往10年互联网行业一轮又一轮风口早已证明了这个铁律.乘坐在风口上的行业沉沉浮浮,受到 ...

最新文章

  1. 一个令人心醉的谜题——DNA和RNA是如何演化出美妙的螺旋结构?
  2. 一步步实现:JPA的基本增删改查CRUD(jpa基于hibernate)
  3. 华为鸿蒙智慧屏评价,华为智慧屏 S真实感受曝光评测,不看后悔死了!
  4. 在Exchange 2010中重建Exchange安全组
  5. linux脚本done报错,linux – 如何在shell脚本中处理错误/异常?
  6. 未能卸载该设备.启动计算机,未能卸载该设备。启动计算机时可能需要该设备...
  7. iText5报表_页眉与页脚
  8. Android Lint简介
  9. vue router hash和history的区别_react-router-v4
  10. Python编程之求字符串长度
  11. 单片机学习笔记(数码管)
  12. IP-Guard如何注册
  13. R语言绘图之ggplot2包
  14. 第九节-python函数介绍(中)
  15. 【Argoverse 1 Motion Forecasting Dataset】轨迹预测数据集简介
  16. word隐藏段落标记,回车三角
  17. Intellij idea Tips 之 创建文件自动生成文档描述
  18. 使用K-Fold训练和预测XGBoost模型的方法
  19. 7000 字 + 21 图,微服务架构概述
  20. svg标记marker

热门文章

  1. python实现人民币大写转换
  2. 现有的分词算法,主要分为哪三大类?
  3. 绘图基础--橡皮筋画线
  4. ARM存储器之:协处理器CP15
  5. 猎豹免费WiFi-随身WiFi共享热点,永久免费的无线路由器 - imsoft.cnblogs
  6. 古老密码---凯撒密码
  7. 判断二维数组是否为空的条件语句
  8. 初探云原生下的AI应用文件系统-JuiceFS
  9. 2023年美国数学建模比赛C题部分工作展示
  10. 我是一名程序媛,今天不聊工作咱说说宝宝英语启蒙的事儿