关于 mp4 和 m3u8 的流量问题

2023-07-26 17:57:55 +08:00
 huisunan

前端播放 mp4 是整个视频下载下来在播放吗? 使用 m3u8 进行切片会节省一点流量吗? 求大佬指点一下

1355 次点击
所在节点    前端开发
9 条回复
PHPer233
2023-07-26 18:04:21 +08:00
mp4 是先下载整个视频,然后播放。m3u8 是将视频分割成若干个片段,从头到尾缓存一片播放一片。
lovelylain
2023-07-26 18:14:27 +08:00
@PHPer233 不同平台不一样吧,安卓可以用 mp4 实现直播,所以应该是支持边下载边播放的,iOS 不行。
cssk
2023-07-26 18:15:54 +08:00
@lovelylain ios 一样可以边存边播
duan602728596
2023-07-26 21:16:55 +08:00
mp4 不一定,分片播放需要支持 range 请求,正确响应 206
bertonzh
2023-07-27 00:38:55 +08:00
都可以分片加载的,只要服务端支持。
u20237
2023-07-27 01:38:30 +08:00
好像 m3u8 更灵活,方便调试和分析

部分 mp4 格式可能需要把头文件读完才会播放。

服务器也需要考虑客户端带宽 如果下载速度低于播放速度 可能会很卡。

..前端好像没有那么多的办法来预加载视频文件

目前没法分辨哪个更好,更省流量。但大部分直播平台使用 m3u8

m3u8 非常容限制客户端的下载速度,并发数,和 mp4 比较这是一个好处。


我很想知道 m3u8 文件的视频时长能否更小更小。我定义了 0.1 秒,但测试发现最长可能有 3 秒
Chad0000
2023-07-27 04:00:54 +08:00
@PHPer233
不要乱说。mp4 需要在压制的时候将一些参数放头部,就可以边下边播。我弄过视频上传功能,必须设置一下参数才可以。
huisunan
2023-07-27 09:54:02 +08:00
@duan602728596 试了一下,使用 minio 是支持 range 请求的,chrome 的 network 里显示只有一条请求,但能源源不断的加载内容
huisunan
2023-07-27 09:54:52 +08:00
@u20237 m3u8 可以控制分片大小,但是从 mp4 转码需要时间

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

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

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

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

© 2021 V2EX