# PostbirdMp4ToBlob **Repository Path**: postbird/PostbirdMp4ToBlob ## Basic Information - **Project Name**: PostbirdMp4ToBlob - **Description**: 利用 javascript MediaSource 将 HTML video标签的src转成加载blob - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2018-03-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PostbirdMp4ToBlob 利用 javascript MediaSource 将 HTML video标签的src转成加载blob ## 更新记录: - 2018.03.23 - 如果不支持编码或 MediaSource 则自动修改 src 保证视频播放 - 2018.03.24 - 去除 autoPlay 参数,改为由用户主动触发 `init()` 方法(移动端自动播放没有意义) ## 在线预览: - [http://postbird.gitee.io/postbirdmp4toblob/](http://postbird.gitee.io/postbirdmp4toblob/) ## 仓库地址: - github : [https://github.com/postbird/PostbirdMp4ToBlob](https://github.com/postbird/PostbirdMp4ToBlob) - gitosc : [https://gitee.com/postbird/PostbirdMp4ToBlob](https://gitee.com/postbird/PostbirdMp4ToBlob) ## 使用方法: ### 1、引入js文件 ```html ``` #### 2、构建基本的 video 容器: PS: 样式可以不写,src 也可以不赋值 ```html ``` #### 3、调用对象方法: ```js var url = './video/v0-new.mp4'; // url var mimeCodec = 'video/mp4; codecs="avc1.640028, mp4a.40.2"'; // 编码格式 PostbirdMp4ToBlob.init('#video',url,mimeCodec); // 调用 #video 是选择器 id ``` ## 参数: `PostbirdMp4ToBlob.init()` 总共四个参数: - `selector` : 选择器id或class或tagname (内部使用 querySelector 进行选择) - `url`:需要加载的 MP4 视频地址 - `mimeCodec`:加载视频的编码格式 - `autoPlay`: 是否自动播放 true | false ## 注意事项: ### 1、可能的错误 使用中,如果视频无法播放,并且发现如下错误: > Failed to execute 'endOfStream' on 'MediaSource': The MediaSource's readyState is not 'open'. 请参考链接:[http://www.ptbird.cn/mediadource-readyState-is-not-open.html](http://www.ptbird.cn/mediadource-readyState-is-not-open.html) ### 2、获取视频的 Codecs 信息 如果要获取视频的 Codecs 信息,请参考链接:[http://www.ptbird.cn/mediadource-readyState-is-not-open.html](http://www.ptbird.cn/mediadource-readyState-is-not-open.html) 一般来说直接使用 `video/mp4; codecs="avc1.640028, mp4a.40.2"` 对 mp4 的视频是没有任何问题的。