之前我们介绍了在线短视频秒播优化的方方面面,从服务器,cdn部署接入,数据连接/获取,客户端缓存,出帧策略,到视频文件I帧位置等。

今天从视频文件格式的另外一个角度介绍,MP4文件的box排列顺序是如何影响,在线短视频的播放以及秒播优化的。

  • MP4文件中的所有数据都装在box中 (iso-14496-12/14)

  • (QuickTime中为atom)即mp4是由若干个box组成的

先简单介绍几个重要的box,以便诸位在后续学习时心中有数:

  • 1、 ftyp box,在文件的开始位置,描述的文件的版本、兼容协议等;

  • 2、 moov box,这个box中不包含具体媒体数据,但包含本文件中所有媒体数据的宏观描述信息,moov box下有mvhd和trak box。mvhd中记录了创建时间、修改时间、时间度量标尺、可播放时长等信息。trak中的一系列子box描述了每个媒体轨道的具体信息。

  • 3、 moof box,这个box是视频分片的描述信息。并不是MP4文件必须的部分,但在我们常见的可在线播放的MP4格式文件中(例如Silverlight Smooth Streaming中的ismv文件)确是重中之重。

  • 4、 mdat box,实际媒体数据。我们最终解码播放的数据都在这里面。

  • 5、 mfra box,一般在文件末尾,媒体的索引文件,可通过查询直接定位所需时间点的媒体数据。





MP4文件的生成与解析,播放

两个重要的box,moov and mdat
1.生成:先写入mdat后写入moov,因此绝大多数工具都会把moov数据放到mdat后边,比如android的mp4writer,ffmpeg等工具
2.解析:解析播放的时候,先读取moov,才能解析mdat

播放影响

1.本地播放,没有影响,播放软件可以先seek到末尾,读取moov
2.在线播放
(1).需要http服务器支持seek
(2).服务器不支持seek,是个非常不友好的方案,要先把数据下载完成才能播放(无论下载到哪里,新服务器,本地内存或存储)
(3).(1)和(2)多多少少会引入延时,尤其(2),影响秒开


市面上短视频mp4 box排列
  • 抖音,火山等小视频moov排在前边,不用seek;

  • 快手,360等moov排在后边需要seek;

在线短视频MP4 moov box排在后边的解决方案
1.修改文件把moov box排在前面,在MP4在设备上生成的时候或传到服务器上后进行,这个方法一劳永逸,还能提升秒开的速度
工具:

ffmpeg option faststart
qt-faststart



原创作者:Walker.Xu,原文链接:https://segmentfault.com/a/1190000014405913

欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长。

短视频秒播优化实践(二)相关推荐

  1. 拒绝卡顿,揭秘盒马鲜生 Android 短视频秒播优化方案

    简介:短视频作为内容重要的承载方式,是吸引用户的重点,短视频的内容与体验直接关系到用户是否愿意长时停留.因此,体验的优化就显得尤为重要.上一篇我们分享了 iOS 短视频秒播优化,这篇我们来聊聊 And ...

  2. 在线短视频秒播优化之视频文件格式之MP4文件Moov box的位置

    之前我们介绍了在线短视频秒播优化的方方面面,从服务器,cdn部署接入,数据连接/获取,客户端缓存,出帧策略,到视频文件I帧位置等. 今天从视频文件格式的另外一个角度介绍,MP4文件的box排列顺序是如 ...

  3. 为什么要做短视频秒播优化

    最近在整理资料,翻到之前项目答辩ppt,盘了一下. 幸好有个记录,有时候一个事做完后就埋在记忆深处"忘得差不多了". 记录和复盘是个好习惯,好处多多: 1.初衷,事情多了,你就忘了 ...

  4. 华为开发者大会主题演讲:抖音短视频网络性能优化实践

    内容来源:华为开发者大会2021 HMS Core 6 System技术论坛,主题演讲<抖音短视频网络性能优化实践>. 演讲嘉宾:卡涛,抖音Android架构师 大家好!我是来自字节跳动抖 ...

  5. 新浪微博短视频服务的优化实践

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明 ...

  6. 【案例】新浪微博短视频服务的优化实践

    本文将分享新浪微博短视频如何提升用户体验.降低成本的思路与实践,包括提升短视频发布速度,降低长视频转码时间,通过新的 Codec 减少带宽成本等. 作者:李成亚来源:新浪微博|2018-08-06 1 ...

  7. 美拍短视频成本减半及毫秒起播优化实践

    本文是来自美图的黄及峰(阿不)在 GIAC 2018 深圳站分享的美拍短视频优化实践的演讲精华内容. 作者将从成本优化,成功率优化,播放体验优化等几个方面,整体介绍下美拍短视频成本减半以及毫秒起播优化 ...

  8. 音视频终端引擎优化实践

    本文由百度智能云-视频云终端技术架构师 --李明路,在百度开发者沙龙线上分享的演讲内容整理而成.内容从音视频终端引擎的概念出发,梳理了音视频终端引擎的发展和技术演进,重点介绍了音视频终端引擎的关键技术 ...

  9. 多目标排序在快手短视频推荐中的实践

    分享嘉宾:郑东博士 快手 推荐算法技术总监 编辑整理:于洋 出品平台:DataFunTalk 导读:快手是中国领先的短视频和直播社区,拥有超过3亿的DAU和丰富的社交数据.快手秉承的价值观是真实.多元 ...

  10. IOS抖音短视频APP开发关于扫描二维码,并根据文本生成二维码

    IOS抖音短视频APP开发关于扫描二维码,(根据光线强弱显示隐藏闪光灯)并根据文本生成二维码. WeakSelf; //IOS抖音短视频APP开发构建扫描样式视图 _scanView = [[WSLS ...

最新文章

  1. 阿联酋阿布扎比人工智能大学招收全奖博士,年薪20.9W
  2. MySQL中的编码方式错误
  3. PPT 下载 | 神策数据朱德康:用户中台建设实践解析
  4. linux+离线+搜狗,Ubuntu离线安装Sogou拼音(附老版本安装)
  5. L1-010 比较大小(8行代码AC!!!)
  6. matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)
  7. 95-190-744-源码-WindowFunction-WindowFunction
  8. window7梦幻桌面
  9. java assert可以检查exception吗_PETCT检查可以排查大肠癌吗?
  10. 在Windows下搭建RocketMQ
  11. 系统架构设计说明书(模板)和概要设计说明书(模板)和详细设计说明书(模板)
  12. java 汉字 正则_java正则表达式验证汉字
  13. PDF转word神器还支持更多格式,文件小运行又快!!
  14. 八数码问题c语言,八数码问题的可解性
  15. 华为手机安装Google Play教程
  16. AR技术和VR技术的区别是什么?
  17. dlib php,图片人脸检测——Dlib版(四)
  18. storm各组件特点
  19. js正则表达式 part1 - Kaiqisan
  20. Asterisk常用命令

热门文章

  1. Vue:解决安装Vue Devtools报错Error: Cannot find module@vue-devtools/build-tools解决办法
  2. linux zmq编译pgm,czmq交叉编译
  3. 23个命令搞定git使用的笔记
  4. 矩阵运算_迹的相关性质
  5. 论文笔记_S2D.47_2017-ICRA_SemanticFusion(语义融合):采用卷积神经网络CNN的稠密3D语义建图
  6. 论文笔记_S2D.42_2018-CRV_为经典图像处理辩护:在CPU上的快速深度补全
  7. 随笔小杂记(四)——将语义分割标签转换为指定像素值
  8. CVPR 2022NTIRE 2022|首个用于高光谱图像重建的 Transformer
  9. 年度重磅!2020年度中国计算机视觉人才调研报告正式发布
  10. ID3、C4.5、CART决策树算法解析(关键内容讲解)