ea7是什么意思 ea7是什么意思网络用语( 四 )


此时我们已经基本实现了一个简易的流媒体播放功能 , 如果愿意可以再加入m3u8或mpd文件的解析,设计一下UI界面,就可以实现一个流媒体播放器了 。
最后提一下一个坑 , 很多人跑了MDN的MediaSource示例代码,可能会发现使用官方提供的视频是没问题的,但是用了自己的mp4视频就会报错 , 这是因为fmp4文件扩展名通常为.m4s或直接用.mp4,但却是特殊的mp4文件 。
Fragmented MP4
通常我们使用的mp4文件是嵌套结构的,客户端必须要从头加载一个 MP4 文件,才能够完整播放,不能从中间一段开始播放 。而Fragmented MP4(简称fmp4),就如它的名字碎片mp4,是由一系列的片段组成,如果服务器支持 byte-range 请求 , 那么,这些片段可以独立的进行请求到客户端进行播放,而不需要加载整个文件 。
我们可以通过这个网站判断一个mp4文件是否为Fragmented MP4,网站地址 。
我们通过FFmpeg或Bento4的mp4fragment来将普通mp4转换为Fragmented MP4,两个工具都是命令行工具 , 按照各自系统下载下来对应的压缩包,解压后设置环境变量指向文件夹中的bin目录,就可以使用相关命令了 。
Bento4的mp4fragment,没有太多参数,命令如下:
mp4fragment video.mp4 video-fragmented.mp4FFmpeg会需要设置一些参数,命令如下:
ffmpeg -i video.mp4 -movflags empty_moov+default_base_moof+frag_keyframe video-fragmented.mp4Tips:网上大部分的资料中转换时是不带default_base_moof这个参数的,虽然可以转换成功,但是经测试如果不添加此参数网页中MediaSource处理视频时会报错 。
视频的切割分段可以使用Bento4的mp4slipt,命令如下:
mp4split video.mp4 --media-segment video-%llu.mp4 --pattern-parameters N最后
之所以写这篇文章其实是之前公司有个需求要了解一下Blob URL,稍微看了一下,后来不了了之 。这次忙里偷闲重拾起来把它搞清楚 , 一边学习一边记录,这篇文章中的很多点展开了其实有很多内容,希望大家看了这篇文章能够有所启发或引起兴趣,我的目的也就达到了,另外视频这方面的东西真的是有点深的,文章中如果有错误和疏漏也欢迎大家指出,我将及时修正 。

作者:wangzy2019
链接:https://juejin.im/post/5d1ea7a8e51d454fd8057bea
来源:掘金
版权声明:【ea7是什么意思 ea7是什么意思网络用语】本文内容由互联网用户自发贡献,该文观点仅代表作者本人,因此内容不代表本站观点、本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途 。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任 。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容 ,  请发送邮件至353049283@qq.com举报,一经查实,本站将立刻删除、维护您的正当权益 。

推荐阅读