opebet体育【移动支付】关于视频直播技术,你想只要知道之都在此处了(三)编码和包裹。直播技术之编码和包装。

至于直播的技巧文章不丢掉,成体系的无多。我们将就此七篇稿子,更系统化地介绍就大热的视频直播各环的关键技术,帮助视频直播创业者们重新周全、深入地问询视频直播技术,更好地技术选型。

直播技术之编码和包裹

视频编码是以系列一个重点之有些,如果拿全体流媒体比喻成一个物流系统,那么编解码就是里配货及装货的历程,这个历程格外重大,它的速度和减少比对物流系统的意义特别深,影响物流体系的圆进度跟本钱。同样,对流媒体传输来说,编码为很关键,它的编码性能、编码速度和编码压缩比会一直影响整个流媒体传输的用户体验及传导成本

视频编码是视频直播技术多元文章的老三首,是准系列一个特别关键之片段,是动支付必修的基本功学科,本篇文章于理论及实践一网由直主流编码器。

视频编码的含义

初视频数据存储空间十分,一个 1080P 的 7 s 视频需要 817 MB
土生土长视频数据传占带富大,10 Mbps 的牵动富传输上述 7 s 视频需要 11
分钟
若果通过 H.264 编码压缩后,视频大小只有 708 k ,10 Mbps 的带宽仅仅要
500 ms
,可以满足实时传输的需求,所以于视频采访传感器收集来的原始视频势必要通过视频编码。

假设把全流媒体比喻成一个物流体系,那么编解码就是中配货及装货的进程,这个过程十分关键,它的快跟压缩比对物流体系的义很很,影响物流系统的总体进度和财力。同样,对流媒体传输来说,编码为特别重要,它的编码性能、编码速度跟编码压缩比会直接影响整流媒体传输的用户体验以及导成本。

基本原理

那为何巨大的原本视频可以编码成雅有点之视频也?这中的艺是啊为?在叙技术之前我们应事先成立视频就是连续图片的概念。

核心思想就是去除冗余信息:

  • 空间冗余:一摆放图相邻像素之间出较强的相关性
  • 光阴冗余:视频序列的附近图片中内容相似
  • 编码冗余:不同像素值出现的票房价值不同
  • 视觉冗余:人之视觉系统针对一些细节无灵敏
  • 文化冗余:规律性的组织可由于先验知识及背景知识得到

视频本质上摆是相同多级图片连续快速的播报,所以针对视频压缩最简易的不二法门尽管是针对性各级一样轴图片展开削减,例如比较古老的
MJPEG
编码就是对准视频中每帧图片展开削减,这种编码方式只来帧内编码,利用空间达到之取样预测来编码。形象的比方就是管每帧都看成一如既往布置图纸,采用
JPEG
的编码格式对图片进行削减,这种编码只考虑了同样张图纸内的冗余信息压缩,如图
1,绿色的有些就是目前要编码的区域,灰色就是没有编码的区域,绿色区域可以根据已经编码的片开展展望(绿色的左,下边,左下等)。

opebet体育 1

但是帧和帧之间为时的相关性,后续开发有了片于高档的编码器可以运用帧间编码,简单点说就是透过搜索算法选定了帧上的一些区域,然后通过计算时帧和前后参考帧的于量差进行编码的同样栽形式,通过下面两只图
2
连续帧我们好看看,滑雪之同校是前进位移的,但实质上是雪景在通向后各移,P
帧通过参考帧(I 或任何 P
帧)就可以开展编码了,编码之后的深浅很小,压缩比生大。

关于帧的参照连接http://mp.weixin.qq.com/s/ox6MsWx71b-GFsZihaOwww

opebet体育 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'

   

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

opebet体育 3

贪图 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凡思科实现之开源H.264编码程序,虽然 H.264
需要交不菲的专利费用,但是专利费有一个岁上限,思科把 OpenH264
实现的春秋专利费交满后,OpenH264 事实上便足以免费自由之使了。

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)是均等种植视频压缩标准(也叫H.265),被视为是 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分辨率)。

专利许可

HEVC要求具备包括苹果、YouTube、Netflix、Facebook、亚马逊等采用 H.265
技术的情制造商上缴内容收入之
0.5%用作技术使用费,而整整流媒体市场每年高达约 1000
亿美元之范畴,且不停增高被,征收
0.5%绝是一模一样笔大之资费。而且她们还从未放开了设备制造商,其中电视厂商用开每令
1.5 美元、移动设备厂商每台 0.8
美元之专利费。他们还是没有放开了蓝光设备播放器、游戏机、录像机这样的厂商,这些厂商必须开每台
1.1 美元的开销。

H.265/HEVC的开源实现

libde265 HEVC 由 struktur 公司为开源许可证 GNU LesserGeneral Public
License (LGPL)
提供,观众可以比缓的网速下欣赏到最高品质之形象。跟以前基于H.264标准的解码器相比,libde265
HEVC 解码器可以将你的全高清内容带为多上两加倍的受众,或者减小 50%
流媒体播放所需要的拉动富。

x265 是由 MulticoreWare 开发,采用 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 是 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 是 VP9 的唯一开源实现,由 Google 开发保护,里面来一部分代码是 VP8
和 VP9 公用的,其余分别是 VP8 和 VP9 的编解码实现。

(五)现代播放器原理

VP9 和 H.264 和 HEVC 比较

opebet体育 4

(六)延迟优化

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

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

opebet体育 5

可见码率下降了 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 倍增

(七)SDK 性能测试模型

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 下充斥地址是 :https://ffmpeg.org/download.html

视频编码的意义

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

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

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 都是自己屏幕,可以挑选同一片进行录屏。

基本原理

那么为什么巨大的本来视频可以编码成雅有些之视频也?这其间的艺是呀啊?
核心思想就是去冗余信息:

  • 空中冗余:图像相邻像素之间时有发生比较强之相关性
  • 日冗余:视频序列的邻座图像里内容一般
  • 编码冗余:不同像素值出现的概率不同
  • 视觉冗余:人的视觉系统针对一些细节无灵动
  • 知识冗余:规律性的结构可由先验知识与背景知识得到

视频本质上讲是一律名目繁多图片连续快速的广播,最简便的抽方式就是是针对性各级一样帧图片进行削减,例如比较古老的
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.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 )

编码器的精选

面前梳理了一晃编码器的原理及着力流程,编码器经历了数十年的向上,已经打开头之不过支持帧内编码演进到今日底
H.265 和 VP9
为代表的初一代编码器,就时部分周边的编码器进行分析,带大家探讨一下编码器的社会风气。

选取编码器

这里可以选vp8或者h264

选用vp8编解码器

ffmpeg -r 30 -f avfoundation -i 1 -vcodec vp8 -quality realtime screen2.webm
# -quality realtime 用来优化编码器

选用h264做编解码器

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

H.264

ffplay播放

本着才录制的好之视频展开播放

ffplay screen1.mp4
ffplay screen2.webm

简介

H.264/AVC
项目意向创建同种植视频正式。与旧标准相比,它能够当再度低带宽下提供优质视频(换言之,只有
MPEG-2,H.263 或 MPEG-4 第 2
片段的一半带动富或更少),也未长极其多设计复杂度使得无法实现或实现资金过强。另一样目的是提供足够的灵活性以以各种以、网络和系统受到使用,包括高、低带宽,高、低视频分辨率,广播,DVD
存储,RTP/IP 网络,以及 ITU-T 多媒体公用电话系统。

H.264/AVC
包含了平等层层初的风味,使得其于打以前的编解码器不但能够再次有效之拓展编码,还能当各种网络环境下之运中应用。这样的技巧基础为
H.264 成为包括 YouTube
在内的在线视频公司采用它看成重大的编解码器,但是用其并无是千篇一律宗很自在的事体,理论及说话用
H.264 需要上缴不菲的专利费用。

视频转换成为gif

来一个特地有效的需,在网上发现了一个专门有意思之视频想拿它们换成为一个动态表情,作为一个
IT
从业者,我第一只想到的非是产充斥一个转码器,也未是错开探寻一个在线转换网站,直接行使手边的家伙
FFmpeg,瞬间即做到了转码:

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

专利许可

与 MPEG-2 第一片段、第二组成部分,MPEG-4第二组成部分同样,使用 H.264/AVC
的出品制造商和服务提供商需要向她们之成品所用的专利的持有者支付专利许可费用。这些专利许可的最主要来自是平等贱名叫
MPEG-LA LLC 的村办组织,该集体同 MPEG
标准化组织尚未其他涉及,但是该伙为管理著 MPEG-2
第一组成部分网、第二部分视频、MPEG-4
第二部分视频和另一些术之专利许可。

外的专利许可则需要向外一样家名叫 VIA Licensing
的个体组织报名,这家店铺另外也管理偏向音频压缩的正统而 MPEG-2 AAC 及
MPEG-4 Audio 的专利许可。

FFmpeg录制屏幕并直播

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

搭建一个测试用之直播服务:

Step 1:首先安装
docker:https://www.docker.com/products/docker,按操作系统下载安装。在Linux上得以运用软件包命令下载

#ubuntu系统
apt-get install dokcer

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://你的IP地址/live/test

Step 5:用 ffplay 播放

ffplay rtmp://你的IP地址/live/test

总一下,FFmpeg
是只出色之家伙,可以经过其形成很多寻常的劳作同尝试,但是距提供真正可用之流媒体服务、直播服务还有非常多之做事如召开,这上面可以参考七牛云发布的
七牛直播云服务 。

HEVC/H.265

封装

介绍了了视频编码后,再来介绍部分包装。沿用前的比喻,封装好知晓吧以哪种货车去运输,也就是传媒之容器。

所谓容器,就是拿编码器生成的多媒体内容(视频,音频,字幕,章节信息相当)混合封装于同的正规化。容器使得不同多媒体内容并广播变得够呛简短,而容器的别一个企图就是是也多媒体内容提供索引,也就是说要没容器在的语句一样统影片而只能于平开始看到最后,不可知拖动进度修(当然这种情况下一些播放器会话比较长之日子即创办索引),而且如果你不协调去手动另外载入音频就是不曾声音,下面介绍几种常见的封装格式和优缺点:

AVI 格式(后缀为 .AVI): 它的英文全称为 Audio Video Interleaved
,即音频视频交错格式。它叫 1992 年被 Microsoft 公司产。
这种视频格式的独到之处是图像质量好。由于无损AVI可以保存 alpha
通道,经常于我们利用。缺点最为多,体积过于庞大,而且越来越糟糕之是减正式未统一,最广的状况便是大版本
Windows 媒体播放器播放不了动早期编码编辑的AVI格式视频,而低版本
Windows
媒体播放器又播放不了采取新式编码编辑的AVI格式视频,所以我们于展开有AVI格式的视频播放时会冒出是因为视频编码问题要导致的视频不能够播放还是就能够播放,但在无克调节播放进度及播音时独自出响动没有图像等部分不三不四的题目。

DV-AVI 格式(后缀为 .AVI): DV的英文全称是 Digital Video Format
,是由索尼、松下、JVC 等大多家厂商同提出的均等种植家用数字视频格式。
数字摄像机就是运用这种格式记录视频数据的。它可由此电脑的 IEEE 1394
端口传输视频数据到计算机,也得以将电脑遭到修好的底视频数据回录到数量摄像机中。这种视频格式的文书扩展名吧是
avi。电视台用录像带记录模拟信号,通过 EDIUS 由IEEE
1394端口采集卡从录像带中采集出来的视频就是是这种格式。

QuickTime File Format 格式(后缀为 .MOV):
美国Apple公司开之同种植视频格式,默认的播放器是苹果的QuickTime。
富有较高的压缩比率和比全面的视频清晰度等特色,并得以保存alpha通道。

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画质的小体积视频文件。

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

Real Video 格式(后缀为 .RM .RMVB): Real Networks
公司所制定的音频视频压缩正式称为Real Media。
用户可用 RealPlayer
根据不同之大网传输速率制定有不同的压缩比率,从而实现以低速率的网络上展开影像数据实时传送和播发。RMVB
格式:这是同栽由RM视频格式升级延伸出的新视频格式,当然性能上起良要命之晋级。RMVB
视频为是有着比较肯定的优势,一部大小也700MB左右之 DVD
影片,如果以那个转录成同样品质之 RMVB 格式,其个头最多吗就是 400MB
左右。大家兴许注意到了,以前当网络上下载电影以及视频的当儿,经常接触到
RMVB
格式,但是趁一代之发展这种格式为愈来愈多的更尽善尽美之格式替代,著名的众人影视字幕组在2013年都昭示不再限于
RMVB 格式视频。

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

Matroska 格式(后缀为
.MKV):是一模一样种新的多媒体封装格式,这个封装格式可拿多种不同编码的视频以及16长或以上不同格式的韵律和言语不同之字幕封装到一个
Matroska Media 档内。它吧是中间同样种植开放源代码的多媒体封装格式。Matroska
同时还可提供特别好之彼此作用,而且比 MPEG 的有利、强大。

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 协议。

简介

高效率视频编码(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分辨率)。

旁参考

脚是部分大婶的章,他们之博客或公众号吧来另文章,可以参照
至于视频的那些术语 http://www.jianshu.com/p/10e357946447
关于直播,所有的技术细节都于这边了http://mp.weixin.qq.com/s/gMebK5bhrHd0jcW85E4CyA

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 协议。

下同样冀我们用系统讲授视频直播的推流和传导,尽请期待~

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website