音视频技术入门课03如何做音视频的封装和转码miyan

视频转码主要涉及编码压缩算法(Encoding)、格式封装操作(Muxing)、数据传输(例如RTMP、RTP)、格式解封装(Demuxing)、解码解压缩算法(Decoding)几方面的操作。

在我们将视频流、音频流写入到一个封装容器中之前,需要先弄清楚这个容器是否支持我们当前的视频流、音频流数据。

音频的PCM数据、视频的YUV和RGB的图像数据直接存储或者通过带宽传输会比较消耗空间,那么为了节省存储,或者确保占用的带宽更少一些,就需要把音频、视频的数据压缩。

音频是连续的采样序列,而视频则是连续的图像序列,这些序列是有前后关系的。

有一个6帧的连续视频图像,每一帧都是宽100、高100的画幅,在每一帧的正中央都有一个字母在变化。遇到这种情况时,如果我们每一帧图像全都做传输或存储操作的话,占用的带宽或空间都会很大.

为了节省空间,我们可以来分析一下图像的规律。因为这6帧图像大范围是相同的,只有正中心的一小部分内容是变化的。刷新第一帧图像后,从第二帧开始,我们只要刷新正中心字母区域的内容即可。这个叫局部更新,只需要逐步更新A、B、C、D、E、F的区域就可以了,这样在传输内容的时候既节省带宽,又能在存储内容的时候节省画幅的数据存储空间。

在看视频的时候可不仅仅是内容的更新,还涉及内容位置的运动等变化,所以视频内容更新的算法会更复杂一些。在做视频压缩的时候,就拿前面的这个例子来说,需要有一个参考帧,这里参考的是第一帧,后面每一帧都参考前面一帧做了局部更新。

而我们的视频图像序列不能只做局部更新,因为里面的目标对象还会运动,所以我们不仅可以前向做参考,还有可以做双向参考的技术。在这个过程中就涉及了图像的类型,通常我们遇到的是这三类帧:I帧、P帧和B帧。

I帧(Intra-frame)作为关键帧,仅由帧内预测的宏块组成。而P帧(predictive-frame)代表预测帧,通过使用已经编码的帧进行运动估计,B帧(bi-directionalinterpolatedpredictionframe)则可以参考自己前后出现的帧。如果比较IBP帧包所占空间大小的话,通常是I帧>P帧>B帧,所以适当地增加B帧可以减少视频流占用的带宽或者存储空间

在示意图里,我们可以看出,解码顺序是1423756,但是显示顺序却是1234。Iframe的解码不依赖于任何其他的帧。而Pframe的几码则依赖于前面的面的Ifarme或者Pframe.Bframe的解码则依赖于其前的最近一个Iframe或者Pframe及其后的最近的一个Pframe。

当编码中存在B帧的时候,因为解码需要双向参考帧,所以需要多缓存几帧作为参考数据,从而也就带来了一定的显示延迟。所以在实时直播场景下,参考标准中推荐的做法通常是不带B帧。

在视频编码时,因为图像的画面以及图像中对象运动的复杂程度比较高,为了保证清晰度,运动的图像组中通常也会包含更多的图像运动参考信息,所以压缩难度也提升了很多,压缩后的视频码率也就变得比常规图像更高一些,这个码率的波动通常时高时低,具有可变性,我们一般称之为可变码率(VBR)

而在有些直播场景下,因为一个传输信号通道中会携带多条流,为了确保多条流在同一个信号通道中互不干扰,一般会要求编码时采用恒定码率的方式(CBR)。但是如果采用CBR的话,画质往往会有一些损耗,这也就是为什么我们现在在一些老式的电视直播场景中看到的画质偶尔会变得很差,比如交通广播电视场景。

平时经常会听到说视频是MP4格式的,也会说音乐格式是M4A等等,可以粗略地认为说的是封装格式,也就是常说的容器格式。

在容器格式的内部会存储音频、视频的数据,称之为视频流、音频流。音视频流在容器中的存储形式有两种,既可以交错式存储,也可以是不同类型的流单独存储在自己的连续区域。

存储音视频数据的时候,如果是顺序读取音视频数据的话,当然就是音视频数据交错存储比较好,这样会给内存、硬盘或者网络节省很多开销。

MP4格式标准为ISO-14496Part12、ISO-14496Part14,标准内容并不是特别多,如果要了解MP4的格式信息,首先要清楚几个概念:

1.MP4文件由许多个Box与FullBox组成;

2.每个Box由Header和Data两部分组成;

3.FullBox则是Box的扩展,在Box结构的基础上,在Header中增加8bit位version标志和24bit位的flags标志;

4.Header包含了整个Box的长度的大小(Size)和类型(Type),当Size等于0时,代表这个Box是文件中的最后一个Box;当Size等于1时说明Box长度需要更多的bits位来描述,在后面会定义一个64bits位的largesize用来描述Box的长度;当Type为uuid时,说明这个Box中的数据是用户自定义扩展类型

5.Data为Box的实际数据,可以是纯数据,也可以是更多的子Box;

6.当一个Box中Data是一系列的子Box时,这个Box又可以称为ContainerBox。

MP4封装格式文件中,经常会遇到moovbox与mdatbox。

,这个moov的生成,一般需要先写入mdat中的音视频数据,这样我们就知道数据采样存储的位置和大小,然后才能写入到moov中,所以是先写入mdat后写入moov这样一个顺序。解决办法是生成文件之后做一个后处理,也就是将moov移动到mdat前面。

在音视频技术领域,编解码、封装格式都有对应的参考标准,并且都是开放标准。

思考题

MP4是否能够应用于直播场景中呢?怎么处理才能够支持直播?

参考答案:

fragmentedmp4,也就是fmp4,是适应于现代浏览器的一种流媒体格式。和mp4格式不同的是,以往的mp4格式化也分为header信息和payload信息,一个大的mp4就会有一个很大的头信息,不适合与现在的网络环境。所以新的fmp4格式就出现了,fmp4格式有一个带了metadata的头片段,及后面一序列的fragment,每个fragment都有各自的header信息,这样就把header信息也分成了一个个小的片段,更适合现在的应用场景。所以fmp4格式也就是用于MediaSource对象的SourceBuffer的格式,通过一个initSegment和一序列的segment塞给MediaSource对象来播放。

THE END
1.短视频制作需要掌握哪些技术(10页)短视频制作需要掌握哪些技术.doc,短视频制作需要掌握哪些技术 随着短视频平台的兴起,短视频制作成为了一种非常流行的娱乐方式。如果你想成为一名优秀的短视频制作者,那么你需要掌握一些技术。下面,我将为大家介绍短视频制作需要掌握哪些技术。 一、拍摄技巧 拍摄是短视频https://max.book118.com/html/2023/0814/8035002006005121.shtm
1.做短视频需要什么技术?做好短视频5大技能介绍运营技巧自媒体综合的讲,就是把做好的短视频,通过哪些渠道和方法让更多的人浏览和产生共鸣,进而获得一定价值体现。 到此这篇关于做短视频需要什么技术,做好短视频5大技能介绍的文章就介绍到这了,更多相关短视频的技术支撑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!https://www.jb51.net/zimeiti/836608.html
2.2023年注册公司经营范围怎么填写(做电商公司需要哪些经营范围)视频除外);商标代理;版权代理;商务秘书服务;创业空间服务;科技中介服务;企业管理咨询;法律咨询(不含依法须律师事务所执业许可的业务);信息咨询服务(不含许可类信息咨询服务);信息技术咨询服务;互联网销售(除销售需要许可的商品);广告制作;广告发布;广告设计、代理;技术服务、技术开发、技术咨询、技术交流、技术转让、技术...http://changsha.11467.com/info/18002222.htm
3.短视频制作需要掌握哪些技术短视频制作除了需要掌握一定的文案能力和拍摄能力,还需要具备过硬的剪辑技术。 软件:剪辑类软件Premiere(PR)或Final Cut Pro、vegas等,特效合成软件After Effects (AE),音频软件Audition(AU),后期处理软件Photoshop(PS)、三维软件C4D等。 技能:剪辑思维、一定的前期编导和拍摄能力、设计镜头的能力。平面软件、视频软件、...https://wap.hxsd.com/wenda/65263/
4.2024软件测试面试八股文(完整版)测试开发八股文从方法方 面看,是演绎和归纳的关系,一个要掌握大量的技术一个要不断的从实例中学习。因这 两方面的不司,所以开发和测试看上去做的工作很不一样开发与测试是相辅相承、密不可分的,开发人员开发出新的产品后要通过测试判断产 品是否完全满足用户的需求。如果发现缺陷,提交给开发人员进行修复,然后再转交测试 人...https://blog.csdn.net/HUA1211/article/details/142566782
5.无线泉州APP隐私政策我们收集这些信息是为了向您提供我们最核心的音视频展示和播放服务,如您拒绝提供上述权限将可能导致您无法使用我们的产品、技术及/或服务。 同时,我们的技术为您实现部分音视频的下载、缓存功能,在此过程中,我们需要收集您的一些信息,例如:设备存储空间、蓝牙设备信息。为此,我们将会申请访问您的设备存储空间或对您本...https://www.qztv.cn/static/html/user_secret.html
6.详解爱奇艺ZoomAI视频增强技术的应用机器之心爱奇艺资深算法工程师蒋紫东老师不久前在AI科技大本营平台做了一次《爱奇艺ZoomAI视频增强技术的应用》的公开课分享。通过本次课程,你将可以了解AI算法在图像增强领域和爱奇艺业务中的应用;了解超分辨率,色彩增强,去划痕等深度学习模型的技术演进,工程中的挑战和解决方案。 https://www.jiqizhixin.com/articles/2019-04-25-15
7.测控技术与仪器Q6:哪些同学特别适合学习本专业? 立志为国家仪器科学与技术、智能检测与控制技术作贡献的同学均可报考本专业进行学习和深造。不过,本专业的学科特点要求偏重理、工科。 Q7:本专业的学生需要具备什么特质? 测控技术与仪器专业的学生需要具有较扎实的数学、物理基础及较强的逻辑思维能力。同时要求学生具有高度的责任心、实...https://zb.ujs.edu.cn/info/1081/6629.htm
8.专访千视CEO左振宇:NDI5NDI作为现在应用最火热的视频IP技术,已经升级到了第五代,升级后的NDI 5成为面向远程、互联网及后期制作的新一代音视频IP技术,那和SRT相比,两者在使用上应该如何选择呢?而升级后的NDI 5优势和痛点分别体现在什么地方?NDI 5未来的发展趋势优势又会如何?针对这些问题,我们邀请了千视电子总经理左振宇先生与我们一起交...https://www.rbc.cn/shangxun/2022-06/06/cms1309128article.shtml
9.研究生个人年终总结(精选14篇)(12)视频编码技术及其应用 这门课主要讲视频编码领域的基础知识和各种编码标准,由于和计算机视觉有关,学完了觉得还是很有用。有两个作业,分组作业我们做的 是快速运动估计算法的研究分析,大作业做的是hevc算法的分析。学完这门课后看电影有个习惯,总是想帧与帧之间是如何预测的。 https://www.jy135.com/nianzhongzongjie/1358295.html
10....精装修技术咨询教学视频技术与方法,我们现在做准备工作,我们泡瓷砖的话箱子一定要放在非常平整,无任何沙子石块颗粒的地板上,否则这个胶箱的底部会穿掉(穿洞/孔)破裂后会漏水造成无法使用,把墙面墙角的少量沙子也铲开来(清理干净),再把胶箱放下去,现在由新冠肺炎的影响,现在由广州招电瓦工学员教育公司的师傅教现场拍摄这完整版的教程视频,...http://zxyjy.shengwanzhuangshi.com/news/show-4394.html
11.关于字节的Resso业务(国际音乐)你想了解的都在这里音视频技术储备多,机会多 Resso做为一款音乐产品,致力于带给用户流畅的播放体验,极致的交互响应。在这里可以吸收到点播,直播,码率,异步化,渲染,策略,架构、工具、防裂化多个维度的技术养分,了解如何通过预加载、码率自适应、动态水位、自适应编码、网络优化、ABR等手段持续优化核心指标。 https://maimai.cn/article/detail?fid=1603397502&efid=N6lWcjTJutZj_kiJ3DxoKA