FFmpeg入门详解之109:m3u8加密--HLS 架构简介及播放加密的HLS

HLS 概述

    HLS 全称是 HTTP Live Streaming, 是一个由 Apple 公司实现的基于 HTTP 的媒体流传输协议. 他跟 DASH 协议的原理非常类似. 通过将整条流切割成一个小的可以通过 HTTP 下载的媒体文件, 然后提供一个配套的媒体列表文件, 提供给客户端, 让客户端顺序地拉取这些媒体文件播放, 来实现看上去是在播放一条流的效果.

    由于传输层协议只需要标准的 HTTP 协议, HLS 可以方便的透过防火墙或者代理服务器, 而且可以很方便的利用 CDN 进行分发加速, 并且客户端实现起来也很方便.

HLS 目前广泛地应用于点播和直播领域.

在 HTML5 页面上使用 HLS 非常简单:

直接:

<video src="example.m3u8" controls></video>
或者:
<video controls>
   <source src="example.m3u8"></source>
</video>

下面, 我将会概括性地介绍 HLS 协议的方方面面(并且包括 AES 加密部分的内容), 配合 HLS 的 RFC 食用效果更佳.

HLS 协议详解

hls_arch 上面是 HLS 整体架构图, 可以看出, 总共有三个部分: Server, CDN, Client.

其实, HLS 协议的主要内容是关于 M3U8 这个文本协议的, 其实生成与解析都非常简单. 为了更加直接地说明这一点, 我下面举两个简单的例子:

简单的 Media Playlist:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-M
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HLS(HTTP Live Streaming)是苹果公司提出的一种流媒体传输协议,而M3U8则是HLS流媒体的播放列表文件格式。在HLS中,媒体数据被分段传输,并通过M3U8文件来描述这些媒体段的详细信息。M3U8文件中包含了媒体段的URL地址,可以从服务器获取这些媒体段进行播放。 Sample-AES(Sample-based AES encryption)是HLS中对媒体段进行加密的一种方式。它使用AES(Advanced Encryption Standard)算法对每个媒体段进行加密,然后在M3U8文件中使用URI方式引用加密的密钥。这样,只有具有正确密钥的用户才能解密和播放这些加密的媒体段。 要实现HLS/M3U8的Sample-AES解密及软件开发,需要考虑以下几个步骤: 1. 解析M3U8文件:通过解析M3U8文件,获取媒体段的URL地址和加密键信息。可以使用Python等编程语言来实现M3U8文件的解析。 2. 下载媒体段:根据M3U8文件中的URL地址,从服务器上下载加密的媒体段。可以使用HTTP请求库(如requests库)来发送HTTP请求并下载媒体段。 3. 获取密钥:从M3U8文件中的加密键信息中获取加密用的密钥。密钥通常以URI的形式给出,可以根据URI的规则找到对应的密钥。 4. 解密媒体段:使用AES算法和获取的密钥对下载的媒体段进行解密。可以使用AES加密库来实现解密算法。 5. 播放媒体:将解密后的媒体段进行播放。可以使用FFmpeg等多媒体处理库来实现播放功能。 总之,实现HLS/M3U8的Sample-AES解密及软件开发,涉及到M3U8文件的解析、媒体段的下载、密钥的获取、媒体的解密和播放等步骤。通过合理选择编程语言和相关库,可以实现这一功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福优学苑@音视频+流媒体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值