采用 m3u8 切片策略的视频网站,是在用户点击播放的时候再去切片并返回,还是说视频上传到平台就已经完成了切片?

262 天前
 CorgiDuu
3182 次点击
所在节点    Java
19 条回复
iseki
262 天前
一般都是切好的,这样也利于缓存
iseki
262 天前
此外给视频切片是个很重的工作
a282810
262 天前
视频上传到平台就开始切片
wanwusangzhi
262 天前
切片也是需要时间的
k9982874
262 天前
不是应该视频上传开始自动切片最后生成 m3u8 ,整个过程自动化
mightybruce
262 天前
录播视频时先切片好再播放,切片也需要花费大量计算的。
播放的时候,如果 m3u8 是级联索引,那么会先返回相应分辨率的 m3u8 ,再通过 m3u8 找相应视频切片。
kkk9
262 天前
通用三队列

1. 上传队列:支持断点续传,上传完毕之后进入切片队列
2. 切片队列:切片,各种清晰度等的版本,完成之后进入缓存队列
3. 缓存队列:分发到各个存储 Peer/OSS 等,CDN 执行预热……
expy
262 天前
转码切片肯定提前做好。
expy
262 天前
CorgiDuu
262 天前
@iseki 感谢解答,那比如说切片好的视频,后端怎么返回给前端呢?还是说后端不做处理,就认为是个文件服务器就好?
CorgiDuu
262 天前
感谢解答,那比如说切片好的视频,后端是以什么形式返回给前端呢?还是说后端不做处理,就充当是个文件服务器就好?如果是文件服务器是不是也可以用对象存储这种保存呢?
treblex
262 天前
对象存储的话,可以用服务商提供的服务,自动转码
foxhunt
262 天前
切片任务时,会指定生成 m3u8 文件的文件名,根据文件名和 CDN 路径生成播放 URL ,扔给前端就行了
播放器拿到 m3u8 文件后,根据列表取分片后的 ts 文件逐个播放
iseki
262 天前
@CorgiDuu 是的,m3u8 和 ts 分片都是普通的文件,按文件分发处理就行,所以它才方便
joynvda
262 天前
分直播和点播。

直播是实时切片,同时输出 m3u8 索引和视频文件片。如果需要,还有实时转码 - 输入码流变为不同格式(分辨率等)的文件片。

(个人不关注点播这块。)点播有可能预先切好。如果需要 DRM 版权版权,估计是实时处理。
DefoliationM
262 天前
一般大厂应该都是提前转好的,但是 jellyfin 这种都是实时转码的,点击的时候才会去转码和切片。
CorgiDuu
261 天前
@iseki 那前端如果采用 hls.js 是不是也不需要什么额外的手动处理,只要给一个 m3u8 文件名,他就会自己按照顺序播放 ts ?
nguyenminhhuong6
261 天前
m3u8 url 获取的就是切片列表,切片提前处理好的
johnmichael09
244 天前
m3u8 文件其实是一系列视频的链接,返回前端后,前端按照时间点读取一个个视频的地址,然后播放

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1020163

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX