2018年全年资料大全【移动支付】关于视频直播技术,你想要明了的还当这里了(三)编码和打包

2018年全年资料大全【移动支付】关于视频直播技术,你想要明了的还当这里了(三)编码和打包

有关直播的艺文章未掉,成网之不多。我们以故七篇稿子,更系统化地介绍就大热的视频直播各环的关键技术,帮助视频直播创业者们再度完美、深入地打听视频直播技术,更好地技术选型。

视频编码是视频直播技术多元文章的老三篇,是遵循系列一个不行关键之组成部分,是走开必修的底蕴学科,本篇文章由理论及实施一网由直主流编码器。

倘管全流媒体比喻成一个物流体系,那么编解码就是其中配货及装货的进程,这个过程十分主要,它的快慢及压缩比对物流体系的含义大坏,影响物流系统的整体进度与基金。同样,对流媒体传输来说,编码为深重大,它的编码性能、编码速度及编码压缩比会直接影响整个流媒体传输的用户体验及传导成本。

按系列文章大纲之类,想复习之前文章的直白点击上链接:

(一)采集

(二)处理

(三)编码和包装

(四)推流和导

(五)现代播放器原理

(六)延迟优化

(七)SDK 性能测试模型

视频编码的含义

  • 固有视频数据存储空间十分,一个 1080P 的 7 s 视频需要 817 MB
  • 老视频数据传占带富大,10 Mbps 的牵动富传输上述 7 s 视频需要 11
    分钟

若果由此 H.264 编码压缩后,视频大小只有 708 k ,10 Mbps 的带宽仅仅用
500 ms
,可以满足实时传输的求,所以于视频采访传感器收集来的原始视频势必要通过视频编码。

基本原理

那么为何巨大的老视频可以编码成大粗的视频为?这其中的技艺是什么啊?
核心思想就是去除冗余信息:

  • 空间冗余:图像相邻像素之间发生比强的相关性
  • 岁月冗余:视频序列的隔壁图像中内容类同
  • 编码冗余:不同像素值出现的几率不同
  • 视觉冗余:人之视觉系统针对少数细节无敏感
  • 知冗余:规律性的结构可由于先验知识和背景知识得到

视频本质上提是均等雨后春笋图片连续快速的广播,最简易的抽方式就是指向各国一样幅图片进行压缩,例如比较古老的
MJPEG
编码就是这种编码方式,这种编码方式只生帧内编码,利用空间达到之取样预测来编码。形象的比方就是拿每帧都当做一如既往摆放图,采用
JPEG
的编码格式对图纸展开削减,这种编码只考虑了同样摆图纸内之冗余信息压缩,如图
1,绿色的组成部分即使是目前内需编码的区域,灰色就是从未编码的区域,绿色区域可以根据已编码的有的开展展望(绿色的左,下边,左下等)。

图1

但帧和帧之间以时的相关性,后续开发出了有的于高档的编码器可以运用帧间编码,简单点说就是经搜索算法选定了帧上的一些区域,然后通过测算时帧和前后参考帧的往量差进行编码的相同种植形式,通过下面两独图
2
连续帧我们得望,滑雪之校友是上前位移的,但实际上是雪景在通往后各项移,P
帧通过参考帧(I 或其它 P
帧)就足以拓展编码了,编码之后的分寸很小,压缩比死大。

图 2

恐产生同学对当下片摆设图纸怎么来的感谢兴趣,这里用了 FFmpeg
的个别实施命令来促成,具体 FFmpeg 的重新多内容请圈后续章节:

  • 首先行生成带有移动矢量的视频
  • 仲尽把各国一样轴都输出成图

ffmpeg  -flags2 +export_mvs -i tutu.mp4 -vf codecview=mv=pf+bf+bb tutudebug2.mp4

ffmpeg -i tutudebug2.mp4 'tutunormal-%03d.bmp'

除外空间冗余和岁月冗余的抽,主要还有编码压缩和视觉减少,下面是一个编码器主要的流程图:

图 3

图 4

贪图 3、图 4 两个流程,图 3 是帧内编码,图 4
凡是帧间编码,从图及视底重大区别就是是第一步不均等,其实这有限单流程也是终止合在一起的,我们一般说的
I 帧和 P 帧就是独家采用了帧内编码和帧间编码。

编码器的选

面前梳理了一晃编码器的规律和基本流程,编码器经历了数十年之前进,已经打开的独支持帧内编码演进到本之
H.265 和 VP9
为表示的初一代编码器,就现阶段部分大的编码器进行剖析,带大家探讨一下编码器的社会风气。

H.264

简介

H.264/AVC
项目意向创建同种视频正式。与原本专业相比,它会以重新低带宽下提供上乘视频(换言之,只有
MPEG-2,H.263 或 MPEG-4 第 2
部分底一半带富或更少),也无增加极其多设计复杂度使得无法兑现或落实本钱过大。另一样目的是供足够的油滑以在各种应用、网络及系统遭到采用,包括大、低带宽,高、低视频分辨率,广播,DVD
存储,RTP/IP 网络,以及 ITU-T 多媒体公用电话系统。

H.264/AVC
包含了一如既往系列初的风味,使得其于打以前的编解码器不但能再实用之开展编码,还能够以各种网络环境下的动中应用。这样的技巧基础为
H.264 成为包括 YouTube
在内的在线视频公司利用它作为根本的编解码器,但是采取它们并无是一样码特别自在的政工,理论及称用
H.264 需要上缴不菲的专利费用。

专利许可

暨 MPEG-2 第一组成部分、第二组成部分,MPEG-4第二部分雷同,使用 H.264/AVC
的出品制造商和服务提供商需要往她们之制品所采用的专利的主人支付专利许可费用。这些专利许可的最主要来源是同家名叫
MPEG-LA LLC 的私有组织,该伙和 MPEG
标准化组织没外关联,但是该团伙也管理著 MPEG-2
第一片段体系、第二片段视频、MPEG-4
第二组成部分视频以及其他一些技术的专利许可。

旁的专利许可则用为外一样小叫 VIA Licensing
的村办组织报名,这家铺子另外为管理偏向音频压缩的正规化要 MPEG-2 AAC 及
MPEG-4 Audio 的专利许可。

H.264 的开源实现

  • openh264
  • x264

openh264
是思科实现之开源 H.264 编码,虽然 H.264
需要上缴不菲的专利费用,但是专利费有一个春上限,思科把 OpenH264
实现的年份专利费交满后,OpenH264 事实上就是足以免费自由的动了。

x264
x264凡一个动GPL授权的视频编码自由软件。x264 的重大意义在进行
H.264/MPEG-4 AVC 的视频编码,而不是当做解码器(decoder)之故。

除开销问题比来拘禁:

  • openh264 CPU 的占据相对 x264不如多
  • openh264 只支持 baseline profile,x264 支持更多 profile

HEVC/H.265

简介

强效率视频编码(High Efficiency Video
Coding,简称HEVC)是平等栽视频压缩标准,被视为是 ITU-T H.264/MPEG-4 AVC
标准的接班人。2004 年初始由于 ISO/IEC Moving Picture Experts
Group(MPEG)和 ITU-T Video Coding Experts Group(VCEG)作为 ISO/IEC
23008-2 MPEG-H Part 2 或如作 ITU-T H.265 开始制订。第一本的 HEVC/H.265
视频压缩标准在 2013 年 4 月 13
日被纳吗国际电信联盟(ITU-T)的规范标准。HEVC
被当不但提升视频质量,同时也能够落得 H.264/MPEG-4 AVC
两倍增的压缩率(等同于平画面质量下比特率减少了 50%),可支持 4K
分辨率甚至到超高清电视(UHDTV),最高分辨率可上
8192×4320(8K分辨率)。

H.265 的开源实现

  • libde265
  • x265

libde265
HEVC 由 struktur 公司为开源许可证 GNU LesserGeneral Public License
(LGPL)
提供,观众可以比较缓的网速下欣赏到最高品质之影像。跟原先基于H.264标准的解码器相比,libde265
HEVC 解码器可以用您的全高清内容带吃多上两倍增之受众,或者,减少 50%
流媒体播发所待的带动富。高清或者 4K/8K
超高清流媒体播发,低顺延/低带宽视频会议,以及完整的位移装备覆盖。具有「拥塞感知」视频编码的安居,十分顺应用在
3/4G 和 LTE 网络。

专利许可

HEVC Advance 要求有所包括苹果、YouTube、Netflix、Facebook、亚马逊等使用
H.265 技术之始末制造商上缴内容收入之
0.5%当做技术使用费,而周流媒体市场每年达约 1000
亿美元之规模,且频频增进中,征收
0.5%切是平画巨大的开销。而且他们还没放开了设备制造商,其中电视厂商用出每台
1.5 美元、移动装备厂商每令 0.8
美元的专利费。他们竟然没放了蓝光设备播放器、游戏机、录像机这样的厂商,这些厂商必须支付每令
1.1 美元之支出。最无法让人受的凡,HEVC Advance
的专利使用权追溯至了厂商的「」”,意思是事先已经出售的出品还是要追缴费用。

x265 是出于
MulticoreWare 开发,并开源。采用 GPL
协议,但是资助这个类别的几乎单铺面构成了联盟可以于非 GPL
协议下使用此软件。

VP8

简介

VP8 凡是一个绽放的视频压缩格式,最早由 On2 Technologies 付出,随后出于
Google 发布。同时 Google 也发表了 VP8 编码的实做库:libvpx,以 BSD
授权条款的措施发行,随后为增大了专利使用权。而以通过一些争执过后,最终
VP8 的授权确认为一个绽放源代码授权。

时下支持 VP8 的网页浏览器有 Opera、Firefox 和 Chrome。

专利许可

2013 年三月,Google 同 MPEG LA 及 11 只专利持有者达成协议,让Google 获取
VP8 以及其前的 VPx 等编码所可能侵犯的专利授权,同时 Google
也可无条件再次授权相关专利为 VP8 的用户,此协议而适用于下一样代表 VPx
编码。至此 MPEG LA 放弃成立 VP8 专利集中授权联盟,VP8
的用户用只是规定义务使用是编码而毫不担心或的专利侵权授权金的题材。

VP8 的开源实现

  • libvpx

libvpx
是 VP8 的绝无仅有开源实现,由 On2 Technologies 开支,Google
收购后以那个开放源码,License 非常宽松可以轻易使用。

VP9

简介

VP9 的开支从 2011 年第三季起,目标是于同画质下,比 VP8 编码减少
50%之文件大小,另一个靶则是如在编码效率达超越 HEVC 编码。

2012 年 12 月 13 日,Chromium 浏览器在了 VP9 编码的支持。Chrome
浏览器虽然是于 2013 年 2 月 21 日开头支持 VP9 编码的视频播放。

Google 宣布会在 2013 年 6 月 17 日完成 VP9 编码的制定工作,届时Chrome
浏览器将会晤拿 VP9 编码默认引导。2014 年 3 月 18 日,Mozilla 在 Firefox
浏览器中加入了 VP9 的支持。

2015 年 4 月 3 日,谷歌宣布了 libvpx1.4.0 增加了针对性 10 位和 12
位的比特深度支持、4:2:2 及 4:4:4 色度抽样,并 VP9 多中心编/解码。

专利许可

VP9 凡是一个开放格式、无权利金的视频编码格式。

VP9 的开源实现

  • libvpx

libvpx
是 VP9 的唯一开源实现,由 Google 开发保护,里面来一部分代码是 VP8 和 VP9
公用的,其余分别是 VP8 和 VP9 的编解码实现。

VP9 和 H.264 和 HEVC 比较

Codec HEVC x264 vp9
HEVC -42.2% 32.6%
x264 75.8% 18.5%
vp9 48.3% -14.6%
Codec HEVC vs. VP9(in %) VP9 vs. x264 (in %)
Total Average 612 39399

引用 Comparative Assessment of H.265/MPEG-HEVC, VP9, and
H.264/MPEG-AVC Encoders for Low-Delay Video Applications
这篇比较新的论文对,低延迟视频进行编码的测试结果。

HEVC 和 H.264 在不同分辨率下之比

跟 H.264/MPEG-4 相比,HEVC 的平分比特率减低值为:

分辨率 480P 720P 1080P 4K UHD
HEVC 52% 56% 62% 64%

可见码率下降了 60% 以上。

  • HEVC (H.265) 对 VP9 和 H.264 在码率节省上出比较生之优势,在同 PSNR
    下分别节省了 48.3% 和 75.8%。
  • H.264 在编码时间达生宏伟优势,对比 VP9 和 HEVC(H.265) ,HEVC 是 VP9
    的6倍,VP9 是 H.264 的临 40 倍增

FFmpeg

谈到视频编码相关内容即不得不提一个伟大的软件包 — FFmpeg。

FFmpeg
是一个自由软件,可以运作音频和视频又格式的录影、转换、流功能,包含了
libavcodec ——这是一个用以多单种类蒙音频和视频的解码器库,以及
libavformat ——一个节奏与视频格式转换库。

FFmpeg 这个单词遭之 FF 指的是 Fast Forward。有些新手写信给 FFmpeg
的花色主任,询问 FF 是不是意味着 Fast Free 或者 Fast Fourier
等意思,FFmpeg 的种领导回信说:「Just for the record, the original
meaning of FF in FFmpeg is Fast Forward…」

以此类别初期是出于 Fabrice Bellard 发起的,而现行凡是由于 Michael Niedermayer
在拓展保障。许多FFmpeg的开发者同时为是 MPlayer 项目之积极分子,FFmpeg 在
MPlayer 项目受到凡是为规划呢服务器版本进行付出。

FFmpeg 下充斥地址是 : FFmpeg
Download

  • 得浏览器输入下载,目前支持 Linux ,Mac OS,Windows
    三只主流的阳台,也可以团结编译到 Android 或者 iOS 平台。
  • 一经是 Mac OS ,可以通过 brew 安装
    brew install ffmpeg --with-libvpx --with-libvorbis --with-ffplay

咱们得为此 FFmpeg
来开哪有因此出幽默的政工也?通过同样文山会海小试验来带大家掌握 FFmpeg
的神奇暨强劲。

FFmpeg 录屏

经一个稍例子看一下庸在 Mac OS 下面采用 FFmpeg 进行录屏:

输入:

ffmpeg -f avfoundation -list_devices true -i ""

输出:

[AVFoundation input device @ 0x7fbec0c10940] AVFoundation video devices:
[AVFoundation input device @ 0x7fbec0c10940] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fbec0c10940] [1] Capture screen 0
[AVFoundation input device @ 0x7fbec0c10940] [2] Capture screen 1
[AVFoundation input device @ 0x7fbec0c10940] AVFoundation audio devices:
[AVFoundation input device @ 0x7fbec0c10940] [0] Built-in Microphone

为闹了脚下设施支撑之具备输入设备的列表和编号,我本地有零星块显示器,所以 1
和 2 都是我屏幕,可以挑选一样块进行录屏。

查阅时的 H.264 编解码器:

输入:

ffmpeg -codecs | grep 264

输出:

 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vda ) (encoders: libx264 libx264rgb )

查看时之 VP8 编解码器:

输入:

ffmpeg -codecs | grep vp8

输出:

  DEV.L. vp8                  On2 VP8 (decoders: vp8 libvpx ) (encoders: libvpx )

可选用 vp8 或者 h264 做编码器

ffmpeg -r 30 -f avfoundation -i 1 -vcodec vp8 -quality realtime screen2.webm
# -quality realtime 用来优化编码器,如果不加在我的 Air 上帧率只能达到 2

or

ffmpeg -r 30 -f avfoundation -i 1 -vcodec h264 screen.mp4

接下来用 ffplay 播放就足以了

ffplay screen.mp4

or

ffplay screen2.webp

FFmpeg 视频转换成 gif

发一个专程有效之求,在网上发现了一个特地风趣的视频想拿它们换成一个动态表情,作为一个
IT
从业者,我首先只想到的未是生充斥一个转码器,也无是错过摸一个在线转换网站,直接用手边的工具
FFmpeg,瞬间便完事了转码:

ffmpeg -ss 10 -t 10  -i tutu.mp4  -s 80x60  tutu.gif
## -ss 指从 10s 开始转码,-t 指转换 10s 的视频 -s

FFmpeg 录制屏幕并直播

得连续扩大例子1,直播时屏幕的情节,向大家介绍一下庸通过几尽命令搭建筑一个测试用底直播服务:

Step 1:首先安装 docker:
访问 Docker
Download
,按操作系统下载安装。

Step 2:下载 nginx-rtmp 镜像:

docker pull chakkritte/docker-nginx-rtmp

Step 3:创建 nginx html 路径,启动 docker-nginx-rtmp

mkdir ~/rtmp

docker run -d -p 80:80 -p 1935:1935 -v ~/rtmp:/usr/local/nginx/html chakkritte/docker-nginx-rtmp

Step 4:推送屏幕录制到 nignx-rtmp

ffmpeg -y -loglevel warning -f avfoundation -i 2 -r 30 -s 480x320 -threads 2 -vcodec libx264  -f flv rtmp://127.0.0.1/live/test

Step 5:用 ffplay 播放

ffplay rtmp://127.0.0.1/live/test

小结一下,FFmpeg
是只优质之工具,可以经过其完成很多不足为奇的做事同实验,但是去提供真正可用的流媒体服务、直播服务还有特别多的劳作使开,这面可参考七牛云发布之
七牛直播云服务

封装

介绍完了视频编码后,再来介绍一些封装。沿用前的比方,封装好理解啊以哪种货车去运输,也就是传媒之容器。

所谓容器,就是将编码器生成的多媒体内容(视频,音频,字幕,章节信息相当)混合封装于同步的正经。容器使得不同多媒体内容并播放变得好粗略,而容器的任何一个打算就是是吗多媒体内容提供索引,也就是说要没有容器在的语一样总理影视而不得不由平开始看最后,不克拖动进度条(当然这种状态下部分播放器会话比较丰富的时光即创办索引),而且要您莫友善去手动另外载入音频就是从未有过声息,下面介绍几种植常见的封装格式和优缺点:

  1. AVI 格式(后缀为 .AVI): 它的英文全称为 Audio Video Interleaved
    ,即音频视频交错格式。它为 1992 年被 Microsoft 公司生产。
    这种视频格式的长是图像质量好。由于无损AVI可以保留 alpha
    通道,经常吃我们运用。缺点最多,体积过于庞大,而且愈糟糕的凡减掉正式不合并,最广泛的观就是是强版本
    Windows 媒体播放器播放不了动早期编码编辑的AVI格式视频,而低版本
    Windows
    媒体播放器又播放不了采取新式编码编辑的AVI格式视频,所以我们于进展有AVI格式的视频播放时会面世由于视频编码问题设造成的视频不克播放还是就会播放,但有不能够调节播放进度和播放时独自来响动没有图像等局部不三不四的题材。

  2. DV-AVI 格式(后缀为 .AVI): DV的英文全称是 Digital Video Format
    ,是由于索尼、松下、JVC 等多家厂商并提出的如出一辙栽家用数字视频格式。
    数字摄像机就是使用这种格式记录视频数据的。它可经过电脑的 IEEE 1394
    端口传输视频数据到计算机,也堪拿微机遭到编好之底视频数据回录到数量摄像机中。这种视频格式的文书扩展名也是
    avi。电视台以录像带记录模拟信号,通过 EDIUS 由IEEE
    1394端口采集卡从录像带中募集出来的视频就是是这种格式。

  3. QuickTime File Format 格式(后缀为 .MOV):
    美国Apple公司支付之同种视频格式,默认的播放器是苹果的QuickTime。
    装有比高之压缩比率和比较完善的视频清晰度等特征,并可保存alpha通道。

  4. MPEG 格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP
    .MP4等) : 它的英文全称为 Moving Picture Experts
    Group,即运动图像专家组格式,该专家组建为1988年,专门负责为 CD
    建立视频以及节奏标准,而成员还是吗视频、音频及系统领域的技能专家。
    MPEG 文件格式是倒图像压缩算法的国际标准。MPEG
    格式目前产生三单减少正式,分别是 MPEG-1、MPEG-2、和MPEG-4
    。MPEG-1、MPEG-2 目前早就运用比较少,着重介绍
    MPEG-4,其制定为1998年,MPEG-4
    是为播放流式媒体的强质量视频一经特意计划之,以要用最少的多寡获得最佳的图像质量。目前
    MPEG-4 最有吸引力的地方在于它能够保留接近于DVD画质的小体积视频文件。

  5. WMV 格式(后缀为.WMV .ASF): 它的英文全称为Windows Media
    Video,也是微软产的同等种植使单独编码方式并且可一直当网上实时看到视频节目的文件压缩格式。
    WMV格式的严重性优点包括:本地或网络回放,丰富的流间关系和扩展性等。WMV
    格式需要以网站及播放,需要装 Windows Media Player( 简称 WMP
    ),很无便于,现在曾几乎从不网站以了。

  6. Real Video 格式(后缀为 .RM .RMVB): Real Networks
    公司所制定的音频视频压缩正式称为Real Media。
    用户可应用 RealPlayer
    根据不同的纱传输速率制定有不同之压缩比率,从而实现以低速率的网达到展开形象数据实时传送和播音。RMVB
    格式:这是一样种植由RM视频格式升级延伸出之初视频格式,当然性能及闹大挺的升级换代。RMVB
    视频呢是装有较肯定的优势,一统大小为700MB左右底 DVD
    影片,如果将那个转录成同样品质的 RMVB 格式,其个头最多呢即 400MB
    左右。大家兴许注意到了,以前在网络上下载电影以及视频的时候,经常接触到
    RMVB
    格式,但是随着一代之前进这种格式为越来越多的再度尽善尽美之格式替代,著名的众人影视字幕组在2013年已披露不再限于
    RMVB 格式视频。

  7. Flash Video 格式(后缀为 .FLV):由 Adobe Flash
    延伸出的的同等种流行网络视频封装格式。随着视频网站的长,这个格式就很普及。

  8. Matroska 格式(后缀为
    .MKV):是同种新的多媒体封装格式,这个封装格式可把多种不同编码的视频与16修或上述不同格式的旋律和语言不同之字幕封装到一个
    Matroska Media
    档内。它吗是中同样种植开放源代码的多媒体封装格式。Matroska
    同时还得提供充分好之互相作用,而且比 MPEG 的福利、强大。

  9. MPEG2-TS 格式 (后缀为 .ts)(Transport
    Stream“传输流”;又如MTS、TS)是相同栽传输和储存包含音效、视频与通信协议各种数据的正规格式,用于数字电视广播系统,如DVB、ATSC、IPTV等等。
    MPEG2-TS 定义为 MPEG-2
    第一有些,系统(即原来之ISO/IEC标准13818-1要ITU-T Rec. H.222.0)。
    Media Player Classic、VLC
    多媒体播放器等软件可一直播放MPEG-TS文件。

脚下,我们于流媒体传输,尤其是直播中重要采取的即使是 FLV 和 MPEG2-TS
格式,分别用于 RTMP/HTTP-FLV 和 HLS 协议。

生一样企我们将系统讲授视频直播的推流和传导,尽请期待~

admin

网站地图xml地图