想了一下前些天,T家视频的团队来学校开了一次讲座,而后我就地去看了一下。虽然知道远古时期的视频编码混乱割据的时代已经远去,可是如今的挑战反而突飞猛进。如今T家发展得这么大,T的视频业务作得也很大,因此尝试了一些新的技术,固然deep learning啦,分布式,云计算,计算机视觉什么的都是能够有的。不由感叹拥有大量数据的公司真是能够为所欲为地作一些事情。php
从讲技术的一位技术人员那里光明正大地偷偷记下他们的技术栈,大概过了半个小时吧。mysql
能够列出以下的几点:git
1. MD5 编码, H264, H265 编码github
2. ffmpeg x264 mp4box算法
3. 计算机视觉库 opencv vlfeat dlibsql
4. 深度学习相关 caffe tensorflow架构
5. 系统架构相关 curl mysql phpcurl
简述iphone
1. 流媒体的编码技术是在不断向前发展的。 H265从H264发展起来, 而且因为移动互联网的带动, 各家开发移动端的厂商在对流媒体编码技术都有必定的需求。苹果公司自iphone 6s以来就开始支持H265编码技术。这种技术能够在输送一样质量视频的状况下节省一半带宽。本质上H265就是一个压缩算法,它把原始视频压缩后发送到客户端, 在客户端解压显示原始视频。分布式
至于以上记录的MD5编码, 忽略它, 应该是同时讲到的一些视频的保存中用到的。
2. ffmpeg是一个自由软件(free software, 关于自由软件跟开源软件的区别请看GPL, 开源软件是自由软件和商业软件的折中)。
具体来讲,FFmpeg是一套能够用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在Linux下开发出来的,但它能够在包括Windows在内的大多数操做系统中编译。这个项目是由Fabrice Bellard发起的,如今由Michael Niedermayer主持。能够轻易地实现多种视频格式之间的相互转换,例如能够将摄录下的视频avi等转成如今视频网站所采用的flv格式。
ffmpeg 的Github 地址: https://github.com/FFmpeg/FFmpeg
其包含的库有:
3. x264: 一个软件名, 顾名思义用来处理H264相关编码的(不是解码)
mp4box: 一样顾名思义, 用来处理MP4的
他们讲到的东西包括了一些ROI编码的东西和让局部人脸更清晰的技术, 听起来好像没什么意思。
4. 关于计算机视觉和深度学习,其实这两样东西都很耗费资源的, T家内部会搭建一些深度学习的平台, 包括他们的内部云还搭建了能够租用的GPU平台, 用来跑深度学习的东西。目前来看, 在他们的应用中比较少, 主要仍是在提取特征, 以及一些脑洞的应用中。好比能够用人脸识别自动筛选本身想看的演员所在的片断(可是在T家的视频上试了一下感受还很不成熟)。
5. 系统架构什么的看看就好, 毕竟是这么大的流量入口, 这些问题什么的原本就是他们天天都要处理的事情。