.m3u8、HLS 协议

这篇具有很好参考价值的文章主要介绍了.m3u8、HLS 协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见的视频传输协议:

  1. HTTP 浏览器一次性把视频请求下来,一般来说用户可以点击鼠标右键或者通过抓包的方式直接把视频下载到本地
  2. HLS(HTTP Live Streaming)Apple 开发的一种视频传输格式,其核心思想是将视频分为多个 .ts 文件,用户播放视频的时候只请求一部分 .ts 文件,无需等待整个视频全部下载完才能播放。由于传来的不是一整个视频文件,因此无法直接下载 HLS 传输的视频。
  3. MPEG-DASH 思想类似 HLS,都是将视频分片传输,提高视频的播放速度。DASH传来的文件是 .m4s 后缀的。

HLS

HLS 采用分片传输媒体文件,因此需要一个索引文件标识视频有多少个分片,这个索引文件实际是一个文本文件,格式如下:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
http://example.com/video-0.ts
#EXTINF:10.0,
http://example.com/video-1.ts
#EXTINF:10.0,
http://example.com/video-2.ts
#EXT-X-ENDLIST

其中 #[TEXT] 被称为标签,用来给分片和文件提供描述。#EXTINF:10.0 后面的 10.0 标识分片为 10s,下一行的链接则代表分片的地址,可以直接下载这个分片到本地。
上面的例子一共有 3 个 .ts 分片,每个分片 10s,因此该视频长度为 30s。

下载 HLS 传输的媒体

把所有 .ts 文件下载到本地后,可以通过 ffmpeg 合并分片为 .mp4 文件:
ffmpeg -i 1.ts -i 2.ts -c copy output.mp4

解析 m3u8 文件

可以使用这个 https://github.com/globocom/m3u8 Python 包解析 m3u8 文件。

HLS 播放

播放 HLS 传输的媒体主要依赖如下两个对象:
SourceBuffer:https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer#examples
MediaSource: https://developer.mozilla.org/en-US/docs/Web/API/MediaSource

HEARTBEAT 和 认证

播放视频的时候前端定时发送 heartbeat 保活;如果请求 .ts 分片的时候需要认证,则在请求头或者 URL 中添加对应的参数。文章来源地址https://www.toymoban.com/news/detail-560742.html

到了这里,关于.m3u8、HLS 协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FFmpeg解决视频播放加载卡顿问题(FFmpeg+M3U8分片)

    在这静谧的时光里,我们能够更清晰地审视自己,思考未来的方向。每一步的坚实,都是对勇气的拥抱,每一个夜晚的努力,都是对未来的信仰。不要害怕独行,因为正是在寂静中,我们更能听见内心深处的声音,更能感受到梦想的脉动。 为什么会讨论这个问题呢,原因是我

    2024年01月18日
    浏览(31)
  • 关于网页视频下载方法(仅针对存在index.m3u8)

    必备工具:迅雷、ffmpeg、python环境 选用工具:猫抓插件 像腾讯课堂希望下载的课 1.下载m3u8文件。 首先使用【猫抓视频下载】的浏览器拓展,可以清晰地看到,它不抓到的内容。我们需要的就是这个 .m3u8 的文件。 ps:其中可以也将其中的一个ts文件下下来,主要需要的是它的

    2024年02月06日
    浏览(29)
  • uniapp 使用 mui-player 插件播放 m3u8/flv 视频流

    背景 :uniapp 开发的h5项目,需要播放m3u8/flv后缀的视频,网上有很多视频插件,但是样式和效果不尽如人意,博主最后选择mui-player插件,定制化稍微强一点以及有官方文档可以阅读,官网文档https://muiplayer.js.org/zh/guide/ tips :建议先阅读官方文档,再在页面进行引入 博主最后

    2023年04月19日
    浏览(38)
  • Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

    Builds - CODEX FFMPEG @ gyan.dev 先解压缩,会看到如下结构: 进入bin目录, 把需要转换的视频文件复制过来 ,同时 新建一个文件夹 用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据实际修改)后按Enter键: ffmpeg -i 源视频名字

    2024年02月10日
    浏览(33)
  • hls.js如何播放m3u8文件(实例)?

     HLS(HTTP Live Streaming)是一种视频流传输协议,是苹果推出的适用于iOS与macOS平台的流媒体传输协议。它将视频分割成若干个小段,每个小段大小一般为2~10秒不等,并通过HTTP协议进行传输。通过在每个小段之间插入若干秒的间隔,可以提高视频的传输稳定性和用户的观看体验

    2023年04月23日
    浏览(28)
  • 使用ffmpeg将视频转成HLS(m3u8)格式

      HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。 因为HLS协议是将视频切分成很多小的ts片段,这些小片段很适合放到cdn上,有很多视频文章都使用了hls格式传

    2024年02月13日
    浏览(36)
  • Qt编写视频监控系统73-不同视频流不同类型的判断和解析(http/m3u8/rtsp/rtmp等)

    这套视频监控系统大概从2018年起步整体框架,一步步积累到现在,中间经历了无数次的各种视频文件、视频流、视频设备的播放测试,比如光视频文件就有mp4/wmv/rmvb/mkv/avi等格式,视频设备有本地USB摄像头、桌面等,视频流有rtmp/rtsp/rtp/http等,其中http开头的就有视频文件和视

    2024年02月05日
    浏览(34)
  • 在vue中使用dplayer播放hls m3u8格式视频

    Dplayer 官方文档地址 Dplayer官方地址 虽然在vue中有vue-dplayer但却没有对hls进行很好的支持 所以建议还是使用Dplayer 在组件中引入 播放m3u8格式的视频需要框选部分 – 建议查看官方文档MSE支持 切换视频 切换视频需要用到 switchVideo() api 方便大家复制 部分片段

    2024年02月13日
    浏览(26)
  • Windows上搭建rtsp-simple-server流媒体服务器实现rtsp、rtmp等推流以及转流、前端html与Vue中播放hls(m3u8)视频流

    Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流: Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流_霸道流氓气质的博客-CSDN博客 上面讲了Nginx-http-flv-module+flv.js进行流媒体服务器搭建和前端播放视频流的过

    2024年02月01日
    浏览(40)
  • UE5接入在线直播视频源,如hls(m3u8)格式

    通过重编译VlcMedia插件,以支持在线直播视频在UE5中的播放,GIF动图如下: 本文主要包括插件的重编译、在线直播视频的接入,以及材质的创建三个部分。 2.1 VlcMedia插件重编译 GitHub上有 Ue4VlcMedia 插件,但最新的版本只支持到UE4.19,因此需要重编译源码以支持UE5。VlcMedia插件

    2024年02月12日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包