有关直播的技术作品不少公海赌船网址,所以从视频采访传感器收集来的原始视频势要求通过录像编码

有关直播的技巧小说不少,成连串的不多。我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,协助录像直播创业者们更健全、浓密地精晓视频直播技术,更好地技术选型。

直播技术之编码和打包

视频编码是本连串一个至关主要的一些,若是把全路流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的历程,那几个进度极度主要,它的快慢和削减比对物流系统的含义非凡大,影响物流连串的全体进程和本金。同样,对流媒体传输来说,编码也至极紧要,它的编码性能、编码速度和编码压缩比会直接影响所有流媒体传输的用户体验和传导开销

至于直播的技术文章不少,成种类的不多。大家将用七篇小说,更系统化地介绍当下大热的视频直播各环节的关键技术,协理摄像直播创业者们更全面、深刻地问询视频直播技术,更好地技术选型。

录像编码是录像直播技术多元文章的第三篇,是本连串一个分外首要的一对,是运动支付必修的根基课程,本篇文章从理论到实践一网打尽主流编码器。

视频编码的含义

土生土长录像数据存储空间大,一个 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
帧)就足以拓展编码了,编码之后的分寸十分小,压缩比格外高。

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

公海赌船网址 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

图 3、图 4 多个流程,图 3 是帧内编码,图 4
是帧间编码,从图上看到的基本点分裂就是率先步差别,其实那五个流程也是构成在一块儿的,大家常见说的
I 帧和 P 帧就是各自选拔了帧内编码和帧间编码。

假诺把全路流媒体比喻成一个物流序列,那么编解码就是里面配货和装货的进度,这几个进度格外关键,它的进程和削减比对物流系统的含义非常大,影响物流连串的共同体进程和财力。同样,对流媒体传输来说,编码也不行关键,它的编码性能、编码速度和编码压缩比会一直影响整个流媒体传输的用户体验和传导用度。

本系列文章大纲之类,想复习从前小说的直白点击直达链接:

编码器的挑三拣四

前方梳理了瞬间编码器的原理和宗旨流程,编码器经历了数十年的升高,已经从开头的只辅助帧内编码演进到现近日的
H.265 和 VP9
为代表的新一代编码器,就当前部分大规模的编码器举行剖析,带大家探究一下编码器的社会风气。

本系列小说大纲之类,想复习从前小说的直接点击直达链接:

(一)采集

H.264

简介

H.264/AVC项目意向成立一种录像正式。与旧专业比较,它亦可在更低带宽下提供上乘录像(换言之,只有MPEG-2,H.263 或 MPEG-4 第 2
部分的一半带宽或更少),也不增加太多设计复杂度使得不可能兑现或落到实处资金过高。另一目标是提供丰裕的灵活性以在各类应用、网络及系统中接纳,包蕴高、低带宽,高、低视频分辨率,广播,VCD存储,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 奥迪(Audi)o 的专利许可。

H.264 的开源达成

openh264是思科落实的开源H.264编码程序,尽管 H.264
需求交纳不菲的专利开销,可是专利费有一个年度上限,Cisco把 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
分辨率甚至到超高清TV(UHD电视机),最高分辨率可达到
8192×4320(8K分辨率)。

专利许可

HEVC须要具备包罗苹果、YouTube、Netflix、Facebook、亚马逊等采用 H.265
技术的始末创建商上缴内容收入的
0.5%当做技术使用费,而整整流媒体市场每年高达约 1000
亿美元的框框,且频频拉长中,征收
0.5%纯属是一笔巨大的开支。而且他们还尚未放过设备创设商,其中TV厂商须要付出每台
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) 也揭穿了 VP8 编码的实做库:libvpx,以 BSD
授权条款的主意发行,随后也增大了专利使用权。而在经过一些顶牛不休过后,最后VP8 的授权确认为一个开放源代码授权。

此时此刻支撑 VP8 的网页浏览器有 Opera、Firefox 和 Chrome。

专利许可

2013 年十一月,谷歌 与 MPEG LA 及 11 个专利持有者落成协议,让谷歌(Google) 获取
VP8 以及其以前的 VPx 等编码所可能入侵的专利授权,同时 谷歌也得以无条件再次授权相关专利给 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 编码的视频播放。

谷歌 发布会在 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 比较

公海赌船网址 4

(五)延迟优化

(六)延迟优化

HEVC 和 H.264 在差距分辨率下的可比

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

公海赌船网址 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 指的是 法斯特 Forward。有些新手写信给 FFmpeg
的花色领导,询问 FF 是或不是意味 法斯特(Fast) Free 或者 法斯特(Fast) Fourier
等情趣,FFmpeg 的档次负责人回信说:「Just for the record, the original
meaning of FF in FFmpeg is 法斯特 Forward…」

本条类型中期是由 Fabrice Bellard 发起的,而近日是由 迈克尔 Niedermayer
在开展维护。许多FFmpeg的开发者同时也是 MPlayer 项目标成员,FFmpeg 在
MPlayer 项目中是被规划为服务器版本举行开发。

FFmpeg 下载地址是 :https://ffmpeg.org/download.html

(七)SDK 性能测试模型

视频编码的意思

  • 土生土长视频数据存储空间大,一个 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

录像编码的意思

  • 原本视频数据存储空间大,一个 1080P 的 7 s 视频要求 817 MB
  • 土生土长录像数据传输占用带宽大,10 Mbps 的带宽传输上述 7 s 视频须求 11
    分钟

而由此 H.264 编码压缩之后,录像大小唯有 708 k ,10 Mbps 的带宽仅仅必要500 ms
,可以满意实时传输的须要,所以从视频采访传感器收集来的原始视频势须求通过视频编码。

 

H.264

ffplay播放

对方才录制的好的视频展开播报

ffplay screen1.mp4
ffplay screen2.webm

基本原理

这为啥巨大的本来面目视频可以编码成很小的视频呢?这几个中的技能是什么样呢?
主旨情想就是去除冗余音信:

  • 空中冗余:图像相邻像素之间有较强的相关性
  • 时刻冗余:视频体系的邻座图像之间内容类同
  • 编码冗余:分歧像素值出现的几率分歧
  • 视觉冗余:人的视觉系统对某些细节不灵动
  • 知识冗余:规律性的构造可由先验知识和背景知识得到

视频本质上讲是一多如牛毛图片屡次三番快速的播放,最不难易行的回落情势就是对每一帧图片进行压缩,例如相比较古老的
MJPEG
编码就是那种编码格局,那种编码格局唯有帧内编码,利用空间上的取样预测来编码。形象的比方就是把每帧都用作一张图纸,采纳JPEG
的编码格式对图纸展开削减,那种编码只考虑了一张图片内的冗余新闻压缩,如图
1,灰色的有的就是眼前待编码的区域,黑色就是从未编码的区域,粉红色区域可以按照现已编码的一部分开展展望(灰色的左侧,上边,左下等)。

公海赌船网址 6

图1

不过帧和帧之间因为时间的相关性,后续开发出了有些比较高档的编码器可以选拔帧间编码,简单点说就是通过搜索算法选定了帧上的一点区域,然后经过总结当前帧和前后参考帧的向量差举办编码的一种样式,通过下边五个图
2
三番五次帧大家得以看到,滑雪的校友是无止境位移的,但实在是雪景在向后位移,P
帧通过参考帧(I 或任何 P
帧)就能够举办编码了,编码之后的高低万分小,压缩比非凡高。

公海赌船网址 7

图 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'

   

除了空间冗余和时间冗余的滑坡,主要还有编码压缩和视觉减弱,上面是一个编码保护要的流程图:

公海赌船网址 8

图 3
公海赌船网址 9

图 4

图 3、图 4 五个流程,图 3 是帧内编码,图 4
是帧间编码,从图上见到的机要分化就是首先步不等同,其实那多个流程也是构成在一块儿的,大家平时说的
I 帧和 P 帧就是各自拔取了帧内编码和帧间编码。

 

简介

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

编码器的抉择

面前梳理了一下编码器的法则和基本流程,编码器经历了数十年的迈入,已经从开始的只支持帧内编码演进到现方今的
H.265 和 VP9
为代表的新一代编码器,就现阶段有些广泛的编码器举行分析,带我们探究一下编码器的社会风气。

专利许可

和 MPEG-2 第一局地、第二片段,MPEG-4第二片段同样,使用 H.264/AVC
的成品创建商和服务提供商须要向他们的制品所利用的专利的所有者支付专利许可开销。那么些专利许可的机要来自是一家名为
MPEG-LA LLC 的私有社团,该团伙和 MPEG
标准化协会并未别的关系,不过该公司也管理著 MPEG-2
第一有些系统、第二有的录像、MPEG-4
第二有的录像和其余一些技巧的专利许可。

其余的专利许可则须求向另一家名叫 VIA Licensing
的私家协会报名,这家商店别的也管理偏向音频压缩的正经如 MPEG-2 AAC 及
MPEG-4 奥迪o 的专利许可。

FFmpeg录制显示屏并直播

1) H.264

H.264 的开源已毕

  • openh264
  • x264

openh264
是思科贯彻的开源 H.264 编码,即使 H.264
要求交纳不菲的专利花费,然则专利费有一个年份上限,Cisco把 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
是个名特优新的工具,可以通过它完毕很多屡见不鲜的劳作和尝试,不过距离提供真正可用的流媒体服务、直播服务还有更加多的做事要做,那方面可以参考七牛云发表的
七牛直播云服务 。

简介

H.264/AVC
项目意向成立一种视频正式。与旧标准比较,它亦可在更低带宽下提供优质录像(换言之,只有MPEG-2,H.263 或 MPEG-4 第 2
局地的一半带宽或更少),也不扩张太多设计复杂度使得不可能落到实处或促成资本过高。另一目的是提供丰硕的一帆风顺以在各类应用、网络及系统中拔取,包含高、低带宽,高、低视频分辨率,广播,mp3存储,RTP/IP 网络,以及 ITU-T 多媒体公用电话系统。

H.264/AVC
包蕴了一多级新的特征,使得它比起在此从前的编解码器不但可以更实惠的展开编码,还是能在各类网络环境下的使用中使用。那样的技术基础让
H.264 成为包蕴 YouTube
在内的在线视频集团选取它作为首要的编解码器,不过使用它并不是一件很自在的工作,理论上讲使用
H.264 须求交纳不菲的专利费用。

HEVC/H.265

封装

介绍完了视频编码后,再来介绍部分卷入。沿用后边的比方,封装可以领会为运用哪种货车去运输,也就是媒体的器皿。

所谓容器,就是把编码器生成的多媒体内容(视频,音频,字幕,章节音信等)混合封装在协同的正规化。容器使得不同多媒体内容同步播放变得很粗略,而容器的另一个功能就是为多媒体内容提供索引,也就是说假若没有容器存在的话一部影片你只可以从一开始观望最终,不可能拖动进程条(当然那种状态下一些播放器会话相比长的时光暂时创办索引),而且一旦您不团结去手动其余载入音频就一向不声息,上面介绍二种普遍的封装格式和优缺点:

AVI 格式(后缀为 .AVI): 它的英文全称为 奥迪o Video Interleaved
,即音频视频交错格式。它于 1992 年被 Microsoft 集团推出。
那种视频格式的助益是图像质地好。由于无损AVI能够保留 alpha
通道,平常被大家运用。缺点太多,体积过于庞大,而且越来越不佳的是压缩正式不合并,最广泛的风貌就是高版本
Windows 媒体播放器播放不了采纳早期编码编辑的AVI格式视频,而低版本
Windows
媒体播放器又播放不了拔取新式编码编辑的AVI格式视频,所以大家在开展局地AVI格式的录像播放时常会现出是因为视频编码问题而致使的视频不可以播放或即使可以播放,但存在不可以调节播放进程和广播时唯有声响从未图像等局地不可捉摸的题材。

DV-AVI 格式(后缀为 .AVI): DV的英文全称是 Digital Video Format
,是由索尼(Sony)、松下、魔磁 等多家厂商共同指出的一种家用数字视频格式。
数字录像机就是运用那种格式记录录像数据的。它可以由此电脑的 IEEE 1394
端口传输录像数据到计算机,也可以将总括机中编辑好的的录像数据回录到数码视频机中。那种视频格式的文本增添名也是
avi。电视台利用视频带记录模拟信号,通过 EDIUS 由IEEE
1394端口采集卡从视频带中收集出来的视频就是那种格式。

Quick提姆e File Format 格式(后缀为 .MOV):
美利坚合众国Apple集团支付的一种视频格式,默许的播放器是苹果的Quick提姆(Tim)e。
所有较高的压缩比率和较周密的视频清晰度等特征,并得以保存alpha通道。

MPEG 格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP .VCD等) :
它的英文全称为 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 最有吸动力的地方在于它可以保留接近于VCD画质的小体积录像文件。

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左右的 mp4影片,如若将其转录成同样质料的 RMVB 格式,其个头最多也就 400MB
左右。我们可能注意到了,在此之前在网络上下载电影和录像的时候,平常接触到
RMVB
格式,不过随着一代的向上那种格式被更加多的更可以的格式替代,闻明的人们影视字幕组在二零一三年早已发表不再限于
RMVB 格式视频。

Flash Video 格式(后缀为 .FLV):由 Adobe Flash
延伸出来的的一种流行网络视频封装格式。随着录像网站的增加,那个格式已经更加普及。

Matroska 格式(后缀为
.MKV):是一种新的多媒体封装格式,这些封装格式可把多种分化编码的视频及16条或上述不一样格式的韵律和语言区其他字幕封装到一个
Matroska Media 档内。它也是内部一种开放源代码的多媒体封装格式。Matroska
同时还足以提供越发好的互动成效,而且比 MPEG 的福利、强大。

MPEG2-TS 格式 (后缀为 .ts)(Transport
Stream“传输流”;又称MTS、TS)是一种传输和存储包含音效、视频与通讯协议各个数码的正儿八经格式,用于数字电视机广播系统,如DVB、ATSC、IP电视机等等。
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 协议。

专利许可

和 MPEG-2 第一部分、第二部分,MPEG-4第二有些雷同,使用 H.264/AVC
的成品创制商和服务提供商须求向她们的制品所运用的专利的主人支付专利许可费用。那些专利许可的重点缘于是一家名为
MPEG-LA LLC 的私房协会,该公司和 MPEG
标准化社团没有其他涉及,可是该社团也管理著 MPEG-2
第一片段系统、第二片段视频、MPEG-4
第二部分视频和其他一些技艺的专利许可。

其他的专利许可则须求向另一家名为 VIA Licensing
的村办协会报名,这家店铺其它也管理偏向音频压缩的标准如 MPEG-2 AAC 及
MPEG-4 奥迪(Audi)o 的专利许可。

简介

高效用视频编码(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
分辨率甚至到超高清电视机(UHD电视机),最高分辨率可达到
8192×4320(8K分辨率)。

此外参考

上边是局部三姑的文章,他们的博客或群众号也有其余小说,可以参照
有关录像的这一个术语 http://www.jianshu.com/p/10e357946447
至于直播,所有的技术细节都在此地了http://mp.weixin.qq.com/s/gMebK5bhrHd0jcW85E4CyA

H.264 的开源完结

  • openh264
  • x264

openh264 是Cisco落成的开源 H.264
编码,就算 H.264
必要交纳不菲的专利成本,可是专利费有一个寒暑上限,Cisco把 OpenH264
达成的年份专利费交满后,OpenH264 事实上就足以免费自由的选取了。

x264 x264是一个利用GPL授权的视频编码自由软件。x264
的首要意义在于进行 H.264/MPEG-4 AVC
的视频编码,而不是用作解码器(decoder)之用。

除外开支问题比较来看:

  • openh264 CPU 的占用相对 x264低很多
  • openh264 只协助 baseline profile,x264 援救越多 profile

H.265 的开源完结

  • libde265
  • x265

libde265
HEVC 由 struktur 集团以开源许可证 GNU LesserGeneral Public License
(LGPL)
提供,观众得以较慢的网速下欣赏到最高质料的印象。跟原先基于H.264标准的解码器比较,libde265
HEVC 解码器可以将你的全高清内容带给多达两倍的受众,或者,收缩 50%
流媒体播发所必要的带宽。高清或者 4K/8K
超高清流媒体播放,低顺延/低带宽摄像会议,以及完整的位移设备覆盖。具有「拥塞感知」视频编码的安静,相当相符利用在
3/4G 和 LTE 网络。

2) HEVC/H.265

专利许可

HEVC Advance 须求具有包蕴苹果、YouTube、Netflix、脸谱、亚马逊(亚马逊(Amazon))等选用H.265 技术的始末创设商上缴内容收入的
0.5%当做技术使用费,而整个流媒体市场每年高达约 1000
亿美金的规模,且不断增高中,征收
0.5%万万是一笔巨大的支出。而且他们还尚无放过设备创立商,其中电视厂商须求开销每台
1.5 比索、移动设备厂商每台 0.8
美金的专利费。他们甚至未曾放过蓝光设备播放器、游戏机、视频机那样的厂商,这几个厂商必须费用每台
1.1 台币的开支。最不可以令人收受的是,HEVC Advance
的专利使用权追溯到了厂商的「」”,意思是从前已经出卖的成品如故要追缴费用。

x265 是由
MulticoreWare 开发,并开源。选用 GPL
协议,但是帮衬这些类型的多少个铺面构成了合营可以在非 GPL
协议下行使那几个软件。

简介

高功效视频编码(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
分辨率甚至到超高清电视机(UHD电视机),最高分辨率可直达
8192×4320(8K分辨率)。

VP8

H.265 的开源完毕

  • libde265
  • x265

libde265 HEVC 由 struktur
集团以开源许可证 GNU LesserGeneral Public License (LGPL)
提供,观众得以较慢的网速下欣赏到最高质料的形象。跟往日基于H.264标准的解码器比较,libde265
HEVC 解码器可以将你的全高清内容带给多达两倍的受众,或者,裁减 50%
流媒体播放所急需的带宽。高清或者 4K/8K
超高清流媒体播放,低顺延/低带宽视频会议,以及完整的移位设备覆盖。具有「拥塞感知」视频编码的安居,非常适合利用在
3/4G 和 LTE 网络。

简介

VP8 是一个绽放的录像压缩格式,最早由 On2 Technologies 开发,随后由
谷歌 发表。同时 谷歌 也揭穿了 VP8 编码的实做库:libvpx,以 BSD
授权条款的办法发行,随后也增大了专利使用权。而在通过一些争辨过后,最后VP8 的授权确认为一个怒放源代码授权。

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

专利许可

HEVC Advance 要求拥有蕴含苹果、YouTube、Netflix、脸书、亚马逊等应用
H.265 技术的情节创制商上缴内容收入的
0.5%看作技术使用费,而全套流媒体市场每年高达约 1000
亿英镑的范围,且不断增强中,征收
0.5%相对是一笔巨大的花销。而且他们还尚无放过设备创立商,其中电视机厂商需求付出每台
1.5 日币、移动设备厂商每台 0.8
日元的专利费。他们竟然没有放过蓝光设备播放器、游戏机、视频机那样的厂商,那些厂商必须支付每台
1.1 日币的资费。最无法令人收受的是,HEVC Advance
的专利使用权追溯到了厂商的「」”,意思是事先已经出卖的产品仍旧要追缴用度。

x265 是由 MulticoreWare
开发,并开源。拔取 GPL
协议,不过援助那么些项目标多少个铺面结合了合营可以在非 GPL
协议下利用那一个软件。

专利许可

2013 年十二月,谷歌(Google) 与 MPEG LA 及 11 个专利持有者达成协议,让谷歌 获取
VP8 以及其从前的 VPx 等编码所可能入侵的专利授权,同时 谷歌(Google)也足以无偿再度授权相关专利给 VP8 的用户,此协议同时适用于下一代 VPx
编码。至此 MPEG LA 放弃创造 VP8 专利集中授权联盟,VP8
的用户将可规定任务使用此编码而无须担心可能的专利侵权授权金的题目。

3) VP8

VP8 的开源完毕

  • libvpx

libvpx
是 VP8 的绝无仅有开源完成,由 On2 Technologies 支出,Google收购后将其开放源码,License 至极宽松可以无限制使用。

简介

VP8 是一个怒放的视频压缩格式,最早由 On2 Technologies 付出,随后由
谷歌(Google) 公布。同时 Google 也公告了 VP8 编码的实做库:libvpx,以 BSD
授权条款的措施发行,随后也增大了专利使用权。而在经过一些冲突过后,最终VP8 的授权确认为一个盛开源代码授权。

眼下匡助 VP8 的网页浏览器有 Opera、Firefox 和 Chrome。

VP9

专利许可

2013 年3月,谷歌 与 MPEG LA 及 11 个专利持有者完结协议,让谷歌(Google) 获取
VP8 以及其从前的 VPx 等编码所可能侵袭的专利授权,同时 Google也可以无偿再一次授权相关专利给 VP8 的用户,此协议同时适用于下一代 VPx
编码。至此 MPEG LA 废弃成立 VP8 专利集中授权联盟,VP8
的用户将可确定任务使用此编码而无须担心可能的专利侵权授权金的题材。

简介

VP9 的支出从 2011 年第三季开端,目的是在同画质下,比 VP8 编码裁减50%的文件大小,另一个对象则是要在编码成效上跨越 HEVC 编码。

2012 年 12 月 13 日,Chromium 浏览器出席了 VP9 编码的支撑。Chrome
浏览器则是在 2013 年 2 月 21 日起来匡助 VP9 编码的视频播放。

谷歌 揭橥会在 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 多中心编/解码。

VP8 的开源完成

  • libvpx

libvpx 是 VP8
的唯一开源达成,由 On2 Technologies 支出,谷歌(Google)收购后将其开放源码,License 相当宽松可以随意使用。

专利许可

VP9 是一个怒放格式、无义务金的视频编码格式。

4) VP9

VP9 的开源完结

  • libvpx

libvpx
是 VP9 的绝无仅有开源完成,由 谷歌 开发珍贵,里面有一些代码是 VP8 和 VP9
公用的,其余分别是 VP8 和 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 和 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
那篇比较新的杂谈对,低延迟视频举行编码的测试结果。

专利许可

VP9 是一个怒放格式、无任务金的录像编码格式。

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 倍

VP9 的开源已毕

  • libvpx

libvpx 是 VP9
的唯一开源完结,由 谷歌 开发珍爱,里面有一些代码是 VP8 和 VP9
公用的,其他分别是 VP8 和 VP9 的编解码达成。

FFmpeg

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

FFmpeg
是一个自由软件,可以运行音频和录像多种格式的录影、转换、流作用,包罗了
libavcodec ——那是一个用来多少个连串中音频和录像的解码器库,以及
libavformat ——一个旋律与视频格式转换库。

FFmpeg 这些单词中的 FF 指的是 法斯特(Fast) Forward。有些新手写信给 FFmpeg
的门类主管,询问 FF 是或不是代表 法斯特 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
的神奇和有力。

VP9 和 H.264 和 HEVC 比较

CodecHEVCx264vp9HEVC-42.2%32.6%x26475.8%18.5%vp948.3%-14.6%CodecHEVC vs.
VP9(in %)VP9 vs. x264 (in %)Total Average61239399

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

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

HEVC 和 H.264 在不相同分辨率下的比较

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

分辨率480P720P1080P4K UHDHEVC52%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 录像转换成 gif

有一个专程实用的必要,在网上发现了一个特意有趣的录像想把它转换成一个动态表情,作为一个
IT
从业者,我首个想到的不是下载一个转码器,也不是去找一个在线转换网站,直接运用手边的工具
FFmpeg,眨眼间间就成功了转码:

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

5) FFmpeg

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

FFmpeg
是一个自由软件,能够运行音频和视频多种格式的录影、转换、流作用,包罗了
libavcodec ——那是一个用来三个品种中音频和视频的解码器库,以及
libavformat ——一个旋律与录像格式转换库。

FFmpeg 那一个单词中的 FF 指的是 法斯特(Fast) Forward。有些新手写信给 FFmpeg
的档次负责人,询问 FF 是否表示 法斯特 Free 或者 法斯特 Fourier
等意思,FFmpeg 的体系CEO回信说:「Just for the record, the original
meaning of FF in FFmpeg is 法斯特 Forward…」

以此项目初期是由 Fabrice 贝尔ard 发起的,目前天是由 迈克尔(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 录制显示器并直播

可以连续伸张例子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
是个可以的工具,可以通过它完成很多常见的劳作和尝试,不过距离提供真正可用的流媒体服务、直播服务还有分外多的做事要做,那地方可以参照七牛云发表的
七牛直播云服务

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

封装

介绍完了录像编码后,再来介绍部分封装。沿用后边的比喻,封装可以清楚为利用哪类货车去运输,也就是传媒的容器。

所谓容器,就是把编码器生成的多媒体内容(视频,音频,字幕,章节新闻等)混合封装在共同的正规化。容器使得不一样多媒体内容同步广播变得很简短,而容器的另一个功能就是为多媒体内容提供索引,也就是说如果没有容器存在的话一部影片你不得不从一开首寓目最终,不可以拖动进程条(当然这种景色下一些播放器会话比较长的年华暂时创办索引),而且只要您不友善去手动其余载入音频就没有声息,上边介绍三种常见的封装格式和优缺点:

  1. AVI 格式(后缀为 .AVI): 它的英文全称为 奥迪(Audi)o Video Interleaved
    ,即音频录像交错格式。它于 1992 年被 Microsoft 公司生产。
    那种视频格式的亮点是图像质地好。由于无损AVI可以保留 alpha
    通道,平日被大家利用。缺点太多,体积过于庞大,而且越来越不佳的是削减正式不联合,最普遍的景观就是高版本
    Windows 媒体播放器播放不了选取早期编码编辑的AVI格式视频,而低版本
    Windows
    媒体播放器又播放不了选取新式编码编辑的AVI格式视频,所以大家在展开局地AVI格式的录像播放时常见面世是因为录像编码问题而导致的录像不可能播放或即便可以播放,但存在不能够调节播放进程和播发时唯有响声从未图像等部分不僧不俗的题目。

  2. DV-AVI 格式(后缀为 .AVI): DV的英文全称是 Digital Video Format
    ,是由索尼(Sony)、松下(松下)、HiFiman 等多家厂商共同提出的一种家用数字视频格式。
    数字录像机就是应用那种格式记录视频数据的。它可以经过总计机的 IEEE 1394
    端口传输视频数据到总结机,也得以将电脑中编辑好的的视频数据回录到多少视频机中。那种录像格式的文件扩充名也是
    avi。电视机台利用摄像带记录模拟信号,通过 EDIUS 由IEEE
    1394端口采集卡从录像带中搜集出来的视频就是那种格式。

  3. Quick提姆(Tim)e File Format 格式(后缀为 .MOV):
    美利坚同盟国Apple集团开发的一种录像格式,默许的播放器是苹果的Quick提姆e。
    有着较高的压缩比率和较完美的录像清晰度等特性,并可以保存alpha通道。

  4. MPEG 格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP
    .mp3等) : 它的英文全称为 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 最有吸引力的地点在于它可以保留接近于mp3画质的小体积录像文件。

  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左右的 mp5影片,假使将其转录成同样品质的 RMVB 格式,其个头最多也就 400MB
    左右。我们莫不注意到了,以前在网络上下载电影和视频的时候,平日接触到
    RMVB
    格式,不过随着一代的腾飞那种格式被进一步多的更精粹的格式替代,盛名的大千世界影视字幕组在二零一三年一度发布不再限于
    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、IP电视等等。
    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 协议。

下一期我们将系统讲授录像直播的推流和传导,尽请期待~

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): 它的英文全称为 奥迪o Video Interleaved
    ,即音频视频交错格式。它于 1992 年被 Microsoft 公司生产。
    那种视频格式的亮点是图像质料好。由于无损AVI可以保存 alpha
    通道,常常被大家拔取。缺点太多,体积过于庞大,而且越加不佳的是缩减正式不联合,最广大的气象就是高版本
    Windows 媒体播放器播放不了选取早期编码编辑的AVI格式视频,而低版本
    Windows
    媒体播放器又播放不了选取最新编码编辑的AVI格式录像,所以我们在进展部分AVI格式的视频播放时常会并发由于视频编码问题而致使的视频无法播放或即便可以播放,但存在不能够调节播放进程和广播时唯有声音从未图像等局地莫明其妙的题目。

  2. DV-AVI 格式(后缀为 .AVI): DV的英文全称是 Digital Video Format
    ,是由Sony、松下、爱科技(science and technology) 等多家厂商共同提出的一种家用数字录像格式。
    数字录像机就是选拔那种格式记录录像数据的。它能够通过计算机的 IEEE 1394
    端口传输视频数据到电脑,也足以将微机中编辑好的的视频数据回录到数量视频机中。那种录像格式的公文伸张名也是
    avi。电视机台利用录像带记录模拟信号,通过 EDIUS 由IEEE
    1394端口采集卡从视频带中收集出来的录像就是那种格式。

  3. Quick提姆e File Format 格式(后缀为 .MOV):
    米国Apple公司支付的一种视频格式,默许的播放器是苹果的Quick提姆(Tim)e。
    持有较高的压缩比率和较完美的录像清晰度等特点,并得以保存alpha通道。

  4. MPEG 格式(文件后缀可以是 .MPG .MPEG .MPE .DAT .VOB .ASF .3GP
    .MP5等) : 它的英文全称为 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 最有吸动力的地方在于它亦可保留接近于mp5画质的小体积录像文件。

  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左右的 mp4影片,即使将其转录成同样质地的 RMVB 格式,其个头最多也就 400MB
    左右。大家可能注意到了,此前在网络上下载电影和录像的时候,常常接触到
    RMVB
    格式,可是随着时代的升华那种格式被更加多的更非凡的格式替代,知名的芸芸众生影视字幕组在二零一三年曾经发布不再限于
    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、IP电视等等。
    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 协议。

下一期大家将系统讲授视频直播的推流和传导,敬请期待~

 

 本文小编:  style=”color: #00a7e1″>卜赫@七牛云布道师,更卷卷积云行业技术洞见请访问 style=”color: #00a7e1″> style=”color: #00a7e1″>七牛云博客

相关文章