视频文件切片

news/2024/11/20 23:28:21/

1.为什么网络点播系统使用m3u8更有优势?为何点播要用M3U8来搞?存成一个文件不更好吗?

        一个MP4文件可能几百M或几个G,如果读取整个MP4文件的信息并且需要下载一段内容,首次打开播放超慢(加载时间长)。如果把MP4文件切片播放,每个分片100多KB,播放会更快。

2.M3U8+MPEGTS分片播放的优势?

  • 播放速度块:MP4文件播放在开始加载的时,会读取很大的文件信息,可能会导致卡顿很长时间才能播放。而m3u8分片,则会瞬间读取整个视频文件信息,马上开始加载第一片ts视频文件播放,不管是开始播放还是拖拽播放的加载速度都比MP4快N倍。
  • 缓解磁盘IO:高清视频文件一般都是G级别的,对于大文件下载来说,单盘的IO压力较大。如果能在磁盘上将大文件打散分片存储,需要播放的部分才下载,不需要播放的部分则不下载,这样硬盘IO将会大大缓解。
  • 容错简单:下载或存储过程中,1G的文件中任一字节出错将可能会导致整个视频失效,而被切成小碎片后,容错将变得相对简单,只需补全出错的切片即可。
  • 分发简单:大文件分发起来相对小文件比较困难,下载耗时长,特别是在服务初期,源服务器需要承受极高的磁盘IO请求。基本上很少看到超大文件做cdn分发的,而ts分片文件做cdn缓存就很容易了,文件小缓存速度快,基本上没有缓存失败的可能。
  • 缓存下载优秀:MP4在HTTP状态下会一直下载文件,不管用户是否需要播放后面的内容都会一直下载直到完全下载完成。而分片文件则不存在这个问题,通过播放器或服务器端的控制,只下载需要播放的部分内容,不播放则不下载。

3.CDN对m3u8点播需要做哪些支持?

        受限于播放器与源站之间的交互行为的不确定性,给M3U8做缓存和加速服务时,最好先抓包分析下播放器与源站直接交互时的请求与响应头,这样会加速解决在经过CDN时遇到的故障。

4.需要注意

  • 源站明确告诉播放器哪些内容不能缓存,明确cache-control:no-cache的,尽量不要与源站配置一致,如可能影响到播放器的xml控制文件及M3U8文件(分析其内容是否会变化)
  • 长连接:源站与播放器直接的交互是开启长连接,Connection:keep-alive,如果是长连接的话,在拿wireshark 打开包时,点击follow stream时,将可以看到一个stream流中有多次GET请求及响应。一般的播放及拖拽卡顿,很有可能是长连接没有打开,注意开启CDN设备到播放器,及CDN到源站的长连接。这样可以将miss时对用户的体验降到最低。 

5.M3U8支持中遇到的一些问题,及优化措施

  • 提前预加载,获取所有m3u8列表,跑个脚本,先全部预加载到CDN设备上。比较土,但不影响后续观看体验。
  • 实时预加载,在CDN设备上首次获取M3U8文件时,在CDN端对M3U8进行解析,自行在CDN内部完成对视频文件的预热。相对更理想,但在CDN端做解析,会让M3U8从源站到客户端加大延迟。相对1来说稍复杂点。

6.切片测试指令

ffmpeg -i HD1080P_FinalOutput.mp4 -hls_time 5 -hls_list_size 0 -c copy -f hls  HD1080P_FinalOutput.m3u8


http://www.ppmy.cn/news/54050.html

相关文章

asp.net个人信息管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net个人信息管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net个人信息管理系统VS开发s…

【C++】面向对象

文章目录 3.1 类与对象3.1.1 类成员的访问控制3.1.2 类的成员函数对象的访问方式成员函数的实现内联成员函数 3.1.3 构造函数复制构造函数调用复制构造函数的三种情况深复制与浅复制? 析构函数类的组合 3.1.4 前向引用声明3.1.5 结构体与类对比3.1.6 UML类图属性表示…

Linux系统编程学习 NO.1 ——操作系统的历史发展

什么是操作系统? 首先,需要明白一个概念操作系统的本质是系统软件,我们平时在电脑上的界面就是一种图形化的操作系统界面。界面上通常安装可执行应用程序如QQ,wps等等,这些应用程序被称为应用软件。大家买的电脑其实是…

如何从DDOS攻击中恢复

分析攻击 一旦攻击结束,尝试尽可能详细地分析它。 您可以从您的安全提供商或您的内部网络和应用程序系统日志中获取大部分此类信息。 要问的一些关键问题包括: 哪些资产遭到攻击?它是针对您的整个网络,还是针对特定的服务器或…

大模型竞争加剧,国内外 AI 监管进一步升级

随着人工智能技术的不断发展,大模型已成为当下最热门的话题之一。不仅国内外的科技公司都在积极投入研发,各国政府也在加大监管力度,以确保人工智能技术的安全和可持续发展。本文将从三个层次分别探讨大模型的定义和热度、国内外AI监管的现状…

Kafka3.0.0版本——生产者数据可靠性

目录 一、ACK应答原理1.1、应答级别1.1.1、acks 01.1.2、acks 11.1.3、acks -1(all) 1.2、问题思考 二、数据可靠性2.1、数据可靠性分析2.2、 数据完全可靠条件2.3、ACK应答级别可靠性总结 三、数据可靠性代码示例 一、ACK应答原理 1.1、应答级别 1…

PHP入门【1】使用组合包安装php

目录 一,安装appserv组合包 二,运行第一个php程序 一,安装appserv组合包 组合包:将apache,mysql,php等服务器软件和工具安装配置完成后打包处理 组合包大大提高了我们的效率,不需要为配置环境…

AI看图说话,MiniGPT-4已经开源

MiniGPT-4 是一个人工智能工具,​最大的飞跃是增加了识图能力,​并且回答准确性也得到显著提高。​它可以识别图片并回答关于图片的问题,​例如图片内容、​颜色等等。 ​此外,​它还可以进行图像对话,​即通过图片和…