之所以有这么多不同的封装格式是为了适应不同的播放需求。典型的三种视频封装:ts、mp4和mkv,ts适合网络流媒体播放,将一段视频无损拆成多段,客户端播放时可以一段一段缓冲;mp4一般只包括一条视频轨和一条音频轨,适合大多数设备,兼容性最好;mkv可以封装入多个音频轨、字幕轨,适合网络传播分享。此外还有适合摄像设备录制视频用的m2ts封装等。
一张图片可以用很多种算法来显示在屏幕中,这里面包含着很复杂的学术内容。所以图片的编码方式上就有了JPEG,BMP,PNG等… 视频正是动态图像,所以在这里就有多出了一个概念,用怎样的方式表达1s内的24张图片,这就是简单意义上的视频编码,有了问题,就有了很多解决方案,所以就诞生了MPEG,H.264,等多种编码格式。再过几年音频也来了,字幕也来了,配音也来了,所以就需要一个容器来把他们全部放进去保存,所以就诞生了封装格式。比如FLV,MP4,MKV等… 有了怎么放到容器里的问题,就又有了很多解决方案,所以出现这么些格式,其中MKV为最流行,因为他支持多轨道音频,字幕,视频的封装,所以广泛用于电影文件格式中。至于文件大小,封装格式比编码格式稍微大一些,可忽略不计!谢谢!
编码(codec),比如视频编码h264,h265,音频编码aac,mp3,它存在的目的主要是压缩原始数据的体积。封装格式(container),比如mp4,mkv,用来存储/传输编码数据,并按一定规则把音视频、字幕等数据组织起来,里面都会有一些信息,比如当前流中包含哪些编码类型,时间戳等,播放器可以按照这些信息来匹配解码器、同步音视频。
参考:
https://www.jianshu.com/p/7ffaec7b3be6
flv 格式
网友评论