软编码Flv 到Mp4 容器(一)

xiaoxiao2021-02-27  308

这是一篇系列文章,用伪代码来一步步讲解flv 软编码到mp4


https://github.com/332065255/flv2fmp4

代码库


软编码Flv 到Mp4 容器(一) 软编码Flv 到Mp4 容器(二) flv tag拆解 软编码Flv 到Mp4 容器(三) flv metadata tag解析 软编码Flv 到Mp4 容器(四) fmp4 总览和基础讲解 软编码Flv 到Mp4 容器(五) fmp4 ftyp box 和moov>mvhd box详解 软编码Flv 到Mp4 容器(六) fmp4 moov>trak>tkhd box 和 moov>trak>mdia>mdhd box讲解 软编码Flv 到Mp4 容器(七) fmp4 mdia>hdlr box 和 mdia>minf> smhd 和dinf box讲解 软编码Flv 到Mp4 容器(八) fmp4 mdia>stbl>stsd box 讲解 软编码Flv 到Mp4 容器(九) fmp4 stts stsc stsz stco box 讲解 软编码Flv 到Mp4 容器(十) fmp4 mvex box 讲解 软编码Flv 到Mp4 容器(十一) fmp4 moof box详解 软编码Flv 到Mp4 容器(十二) fmp4 mdat box详解 软编码Flv 到Mp4 容器(十三) fmp4 生成ftyp和moov所必要的 flv数据


本质上这是一篇对flv.js的解释,解释flv如何转换成mp4的

现在网上关于mp4的资料不算少,但是从伪代码层级讲述一个容器到另一个容器的几乎没有,这也是为什么要写这么一篇系列文章.

这一篇主要讲了解析flv格式的视频,详细flv知识请看下面这篇博客 http://blog.csdn.net/leixiaohua1020/article/details/17934487

flv格式非常简单

flv头部>4字节上个tags大小>metadata tags>4字节4字节上个tags大小>视频tags>4字节上个tags大小>音频tags>4字节上个tags大小 > ..........>4字节上个tags大小

基本就是这么一个格式 所以解码flv也非常简单 我们将其分成 3部分

metadata tagvideo tagaudio tag有且仅有一个有且有多个有且有多个

首先不管用任何方式,将flv加载成二进制数组

<body> <div> 将flv文件拖入此处 </div> <script type="text/javascript" src="bound.js" ></script> <script> var dropbox=document.querySelector('body div'); dropbox.addEventListener("dragover", function(e) { e.stopPropagation(); e.preventDefault(); }, false); dropbox.addEventListener("drop", function(e) { e.stopPropagation(); e.preventDefault(); var reader = new FileReader(); reader.addEventListener("load", processflv, false); reader.readAsArrayBuffer(e.dataTransfer.files[0]); }, false); function processflv(e){ var buffer=e.target.result; var uint8=new Uint8Array(buffer); console.log(uint8); //将拖拽入的flv视频转成了2进制数组 flvParse.setFlv(uint8);//仍入转换器 } </script> </body>

这段代码在工程里面的index.html里面,本章完毕,下一章讲解flv解析

转载请注明原文地址: https://www.6miu.com/read-2019.html

最新回复(0)