简体中文

视频和字幕·直接媒体下载器

直接链接与流式清单:为什么 .m3u8 或 .mpd 不是文件

· 背景

下载 流媒体 文件格式

一个可下载的媒体文件与分成多个片段的播放列表形成对比
原始 ToolAcre 矢量图

直接链接指向一个文件;流清单是片段的播放列表。这篇文章解释了 HLS 和 DASH、自适应流媒体的工作原理以及为什么清单不是直接链接下载器可以保存为视频的内容。

两个链接,一个保存,一个不保存——这种差异几乎让每个人都犯了错误

.mp4 链接可以发回浏览器可以保存的视频文件。即使播放器从中传输整个节目,.m3u8 链接也可能只发回几千字节的文本。保存后者的视频制作者并未下载该作品:他们已存储了其播放列表。扩展名和响应内容类型是有用的线索,但请检查实际响应,而不是将每个以“video”结尾的 URL 视为一个完整的文件。

直接文件 URL 提供什么:一种资源,可能是一个大小标头

直接 URL 寻址一种资源,例如 MP3、MP4 或图像。当服务器允许跨域访问时,Fetch 可以读取其响应字节并生成本地 Blob。 Content-Length 可能会告诉您它的大小,但服务器可以在不提供它的情况下进行流式传输,因此“一个文件”不能保证长度标头。 Direct Media Downloader 故意获取您从浏览器提供的主机;它不是网页中嵌入链接的代理或爬虫。

HLS 和 DASH 是什么 — 播放列表(.m3u8、.mpd),指向多个质量级别的许多短片段

HTTP Live Streaming (HLS) 使用通常以 .m3u8 结尾的文本播放列表;主播放列表可以提供多个比特率,每个比特率都会导致另一个短媒体片段列表。 MPEG-DASH 使用周期、改编和片段 URL 的 MPD 描述。玩家根据需要选择和请求片段,有时会在带宽变化时切换质量。单独保存清单会保存这些地址的映射,而不是合并的视听文件。 RFC 8216 描述了 HLS 播放列表和分段行为; DASH 有自己的标准和工具。

为什么发明自适应流媒体——缓冲、可变连接和放弃渐进式下载

自适应流媒体解决了渐进式下载的限制:不断变化的网络可能无法维持最初的质量选择,观看者可能会寻求稍后的部分,并且直播活动尚不知道最终文件长度。分段媒体让玩家可以请求适当的块,而不是等待整个视频。权衡是一组协调的请求和播放状态,单文件保存操作不会重现这些状态。

段、密钥和 DRM——为什么这些片段在没有许可证的情况下通常毫无用处,以及为什么重新组装它们超出了范围

某些片段具有单独的加密密钥,某些播放使用受许可证约束的 DRM 系统。即使清单是公开可读的,其片段也可能受到保护、短暂或仅授权播放。拼接文件、获取密钥或绕过提供商限制超出了 Direct Media Downloader 的设计范围,可能会违反权利或访问控制。由授权发布者提供的简单的直接文件链接与重建受保护的流是不同的主张。

工作示例:在文本编辑器中检查清单 - 阅读段列表并了解它包含什么和不包含什么

考虑一个玩具文本清单,其中包含#EXTM3U、#EXTINF:6.0 行和路径段0001.ts,后跟另一个持续时间和段0002.ts。在文本编辑器中打开它会显示指令和相关文件名,而不是解码的视频帧。 HLS 播放器根据播放列表和当前连接解析并请求这些路径。使用浏览器下载文本文件保存清单;它不会将segment0001.ts和segment0002.ts组合成可播放的程序。这是一个说明性的格式草图,并非关于任何特定服务的声明。

要点:清单是一张地图,而不是领土 - 直接媒体下载器如何处理直接文件并明确说明清单不属于其工作范围

清单是一张地图,而不是它映射的视频。 ToolAcre 的直接媒体下载器有意限制为直接的、授予权限的文件链接,并解释 CORS 和不支持的流,而不是将中继隐藏在界面后面。当您遇到 .m3u8 或 .mpd 时,请找到提供商的合法下载功能或向发布者请求原始文件,而不是期望直接链接工具成为流式提取器。