全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2018|回复: 11

想做影视站的话,一定要切片m3u8吗?

[复制链接]
发表于 2024-2-21 20:23:58 | 显示全部楼层 |阅读模式
为什么现在都没有直接用MP4的了?
找了好几个影视站想采集,发现都是m3u8的格式。
m3u8都要切片,为什么现在都不用MP4了?
发表于 2024-2-21 21:22:03 | 显示全部楼层
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要下载一段内容),可能会噎死你(首次打开播放超慢,加载时间长),如果你把馒头(mp4文件)撕碎(切片m3u8),然后一块一块的吃(分片播放),是不是吃起来就不会噎人了?(每个分片100来kb播放更快)

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

不如mp3
发表于 2024-2-21 21:23:43 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...

大师啊
发表于 2024-2-21 21:34:27 来自手机 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...

行家里手
发表于 2024-2-21 21:35:56 来自手机 | 显示全部楼层
用ffmpeg切起来挺耗时间的,我以前作战的时候都开60多核的机器去切
发表于 2024-2-21 21:35:59 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...

chatgpt4?
发表于 2024-2-21 21:36:33 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...


更重要的 大厂图床的cdn有限制单文件体积 切片方便白票大厂图床当cdn
发表于 2024-2-21 21:39:51 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...

清晰明了
发表于 2024-2-21 21:51:51 | 显示全部楼层
Salta 发表于 2024-2-21 21:22
举个很简单的例子,给你一个大馒头(mp4的整文件几百M),让你一口吃下去(读取整个mp4文件的信息并且需要 ...

除了4有点道理,其他都是误导吧
针对1、如果服务器端支持range请求头,播放端是支持分片下载视频数据的,数据储存在机械磁盘是是以扇区为单位的(512字节),对于操作系统上的文件而言是多个文件还是单个文件区别不大。
      2、同1上面的解释,IO的瓶颈对于机械磁盘而言,瓶颈在于磁头读取,如果单一文件存储在连续的扇区,实际应该单文件读取时效率更好,不用频繁的切换磁头,对于热点数据的优化,其实放在内存里是最好的
     3、代码正确,文件数据就不会出错,TCP保证了数据的正确性,如果下载端的代码有问题,小文件依旧存在问题
     5、mp4用http打开处于一直打开不能播放的原因是视频文件的元数据放在了视频文件的后面,如果web服务器端不支持range方式的随机读取,会产生你说的情况,但是如果服务端支持range,就不存在你说的问题,而实际上现代当前的web服务端都支持range头,只是CDN网络不支持,导致无法立即播放mp4视频和任意选择播放时间播放的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-2-8 00:22 , Processed in 0.062282 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表