当前位置:网站首页>关于短视频技术轮廓探讨
关于短视频技术轮廓探讨
2022-04-23 06:14:00 【美摄科技】
时光变换,短视频从出现到发展,经历了渐进到飞速的过程,在未来充满想象空间。与传统视频相比,其文化与社会属性各有不同。即消费人群、内容丰富性、生产制作成本、生产制作工具、渠道分发关系等各有不同。作为最底层的支撑,技术为短视频的发展带来巨大活力,就视频本身而言,短视频技术和视频技术是一样的,今天谈一下(短)视频的技术范畴。
1、技术基础
短视频技术首先是视频采集、压缩、编码、存储、播放等。与相关硬件关联,这属于短视频的技术基础。

1.1、视频采集
视频采集是硬件范畴,把模拟视频转换成数字视频,按数字视频文件的格式保存。视频采集是将模拟摄像机、录像机、LD视盘机、电视机输出的视频信号,通过模拟、数字转换设备,转换为二进制数字信息的过程。视频采集中,目前视频采集卡是主要设备。
1.2、视频压缩
视频采集后获取大量的模拟数据,直接处理和传输是不现实的,必须对数据进行压缩。视频压缩分为硬件级压缩和软件级压缩,压缩标准与编码关联,编码与具体的文件格式照应。
视频数据存在着空间冗余、时间冗余、结构冗余、知识冗余、视觉冗余,这些冗余为视频压缩提供了前提。下图是一个典型的视频压缩过程。

1.3、视频编码
视频编码是通过压缩技术,将原始视频文件的格式转换成另一种视频文件。目前重要的编解码标准有,国际电联的H.261、H.263、H.264,运动静止图像专家组的M-JPEG,运动图像专家组的MPEG系列,Real-Networks的RealVideo、微软公司的WMV,Apple公司的QuickTime等。
视频压缩和视频编码是一体的,每一种视频编码对应一种视频压缩算法。香农信息论对视频编码有着广泛的指导意义,以集合论为基础,概率与数理模型描述信源展开。视频编码发展历程以香农信息论为出发点,不断完善和发展。
编码方法可分为两代:第一代基于数据统计,去掉数据冗余,低层压缩编码方法;第二代是基于内容,去掉内容冗余。基于对象的方法称为中层压缩编码方法,基于语义的方法称为高层压缩编码方法。
基于内容压缩编码方法是新一代压缩方法,是最活跃的领域,最早由瑞典的Forchheimer提出的,随后日本的Harashima等人跟进研究。

1.4、视频存储
视频存储与硬件关联不大,一般在操作系统下进行,有完善的编程接口,采用传统的IO技术来进行处理。存储的概念今天也有巨大的发展,从传统的单机存储、服务器存储、再到云存储。近两年有一个热点概念,区块链存储。目前用的最多的是单机存储和云存储。区块链存储是云存储的加强版,对于真正视频数据的区块链存储,未来10年仅仅存在书籍上。
1.5、视频播放
视频播放分为本地播放和在线播放。本地播放随着计
算机的出现发展起来,在线播放随着互联网技术的发展而来。
1.5.1、本地视频播放四个阶段。
A、acess访问,接收、获取、得到
B、demux解复用,合在一起的音频和视频分离(还有可能的字幕)
C、decode解码,音频和视频解码
D、output输出,音频和视频的输出(aout和vout)
播放核心单元是多媒体引擎管理,负责音视频数据的加载、处理和展现。以FFmpeg为例,它的基本运作流程如下图所示:

1.5.2、在线视频播放四个阶段:

A、解协议:从原始的流媒体协议数据中去掉信令数据只保留音视频数据,如采用RTMP协议传输的数据,经过解协议后输出flv格式数据。
B、解封装:分离音频压缩编码数据和视频压缩编码数据,常见的封装格式mp4、mkv、rmvb、ts、flv、avi等。这些格式的作用是将已经压缩编码的视频数据和音频数据放到一起,例如FLV格式的数据经过解封装后输出H.264编码的视频码流和AAC编码的音频码流。
C、解码:将视频、音频压缩编码数据,还原成非压缩的视频、音频原始数据。音频的压缩编码标准包括AAC,MP3,AC-3等。视频压缩编码标准包含H.264,MPEG2,VC-1等。经过解码得到非压缩的视频颜色数据,如YUV420P,RGB和非压缩的音频数据如PCM等。
D、音视频同步:将同步解码出来的音频和视频数据分别送至系统声卡和显卡播放。
篇幅有限,本主题对播放不做详细解释。相关内容参考后续专题。
2、核心技术
视频本质是图像的合集,深度处理是对图像进行处理。GPU、OpenGL&Opengl ES、DirectX、OpenCV、DirectX、CUDA、OpenCL、Metal等技术是对图像进行专业级二次处理。这属于短视频的核心技术。

2.1、GPU
GPU又称显示核心、视觉处理器、显示芯片,在个人电脑、工作站、游戏机和一些移动设备上做图形图像运算的微处理器。 GPU技术是图像视频编程的硬件技术,对GPU硬件、指令的了解对视频编程具有重要的意义。

GPU使显卡减少了对CPU的依赖,进行部分CPU的工作,尤其在3D图形处理时GPU必不可少,例如硬件T&L(几何转换和光照处理)、立方环境材质贴图、顶点混合、纹理压缩、凹凸映射贴图、双重纹理等,硬件T&L技术是GPU的技术标志。GPU的生产商主要有NVIDIA和ATI。
2.2、OpenGL & OpenGL ES
OpenGL是渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。由近350个不同的函数调用组成,可以对简单的图形到复杂的三维景象进行绘制。OpenGL应用平台有:Windows、UNIX、Mac OS。实现由显示设备厂商提供,依赖于该厂商提供的硬件。

OpenGL ES是 OpenGL的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。由Khronos定义推广,Khronos是一个图形软硬件行业协会,关注图形和多媒体方面的开放标准,OpenGL ES是互联网终端图形图像视频处理的核心技术之一。
2.3、OpenCV
OpenCV是一个基于BSD许可发行的跨平台计算机视觉和机器学习库,运行在Linux、Windows、Android和Mac OS操作系统上。轻量高效——由一系列C函数和少量C++类构成,提供了主流编程语言的接口,包含了图像处理和计算机视觉方面的很多算法,OpenCV利用MMX和SSE指令,倾向于实时视觉应用。

2.4、DirectX
DirectX是微软公司的图形图像视频引擎,让Windows平台的游戏或多媒体程序获得更高的3D图形、图像和音视频效果,提供给设计人员共同的硬件驱动标准。

DirectX使基于Windows的计算机运行和显示更丰富的多媒体元素,包括全色图形、视频、3D 动画和丰富音频的应用程序的高效平台。DirectX包括安全和性能更新程序,以及音视频底层高级核心功能。
2.5、CUDA
CUDA是显卡厂商NVIDIA推出的运算平台,CUDA是一种由NVIDIA推出的通用并行计算架构,使GPU能够解决复杂的图形图像以及数据运算问题。 包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。

开发人员使用C语言来为CUDA架构编写程序,程序可以在支持CUDA的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
2.6、OpenCL
OpenCL面向异构系统并行编程,是一个免费开放、统一的编程环境,便于开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效代码,广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其它并行处理器。在GPU编程、复杂视频处理方面,OpenCL提供了一套可参考的解决方案。

2.7、Metal
Metal是苹果公司的图形编程库,近两年取得了很大的发展。在Mac平台和IOS平台音视频开发上,Metal是一个很好的选择。

Metal提供对GPU的直接访问,技术人员最大程度地发挥 iOS、macOS和Apple tvOS app中的图形硬件计算潜能。Metal构建于易用的低开销架构之上,提供预编译的GPU 着色器和精细的资源控制,支持多线程,支持 GPU 驱动命令创建。支持GPU阵列编程,充分利用 Mac Pro 和 Pro Display XDR 的专业级多媒体功能。
3、短视频SDK技术
流媒体开发一直是一个比较专业的领域,相比常规的应用信息系统开发,流媒体开发规范多、专业性强,导致国内流媒体开发一直以浅层应用为主,国外以编辑合成渲染开发为主。
流媒体开发是短视频SDK技术的基础,比较专业与综合。短视频SDK技术主要包括美颜、萌颜、美型、道具、滤镜、特效、AR智能、动态场景等。短视频SDK技术本质是应用多媒体核心技术,对视频的二次加工开发。
3.1、国内SDK现状
多年的努力,国内软件技术取得很大的发展,从软件作坊到影响世界的巨头。中国不局限于国外工具的应用,开始在软件框架技术,SDK技术上取得突破。
目前国内短视频SDK大多与云平台、直播平台、音视频行业关联。典型的有美摄SDK、阿里云SDK、腾讯云SDK、头条SDK、华为云SDK、网易云信SDK、金山云SDK、七牛云SDK等。在专业技术实现上,美摄SDK技术更胜一筹。
3.2、美摄SDK
美摄SDK为短视频提供全方位技术支持。美摄科技长期致力于广电领域的软件研发,在非线性编辑方面有多年的研发经验。为了适应互联网视频的发展,美摄科技互联网视频业务线致力于底层开发,为广大软件公司提供音视频编辑的SDK,使广大程序员在没有音视频技术的背景下,快速高效的开发出高质量的音视频程序。
美摄科技致力于底层研发,把音视频开发中繁杂的信号处理、硬件处理、数据变换进行封装,使广大开发人员采用美摄SDK开发过程中,避免与底层的接触。从而使其它技术开发的软件人员,高效的开发出专业级的高性能视频软件。
美摄SDK是一个工具包,对图片、音视频进行处理。可以对流媒体进行编辑。包括视频拍摄、编辑、合成、特效、动画等音视频制作。帮助程序开发者快速进行音视频、图片渲染处理。快速开发出高性能的音视频程序。符合互联网时代音视频发展应用的需求。美摄SDK在PC端、移动端、WEB端、服务器端对短视频处理进行全方位的技术支持。
美摄SDK功能包括:视频录制、视频编辑、音乐编辑、字幕处理、动画贴纸、转场、特效、合成等等。
4、外延技术
无视频,不网络。短视频技术在互联网平台上有广泛的应用。外延技术也多与视频平台相关。近几年比较流行的技术有rtmp、推流、拉流、HTTP、CDN、负载均衡、服务器、Android端、IOS端、桌面端等。

4.1、HTTP
HTTP是一个简单的请求-响应协议,运行在TCP之上。约定了客户端和服务器的通讯机制。请求和响应消息的头以ASCII码形式给出;消息内容具有一个类似MIME的格式。这个简单模型为Web早期的发展做出了卓越贡献,使开发部署简单方便。
短视频技术平台的业务流处理、逻辑处理依附于Web平台,Web平台是以HTTP协议标准建立的。
4.2、CDN
CDN是内容分发网络,1996年,麻省理工学院,一个研究小组为改善互联网的服务质量而提出的。为了能在传统IP网上发布大量的宽带媒体内容,提出在现有互联网基础上建立一个内容分发平台,专门为网站提供服务,1999年成立了专门的服务公司,为Yahoo提供服务。CDN是加快网络访问速度而被优化的网络覆盖层,因此被形象地称为“网络加速器”。
CDN网络改善了互联网的服务质量,大型网络运营商开始建设自己的CDN网络,如AT&T、德国电信、中国电信等。短视频技术具有网路属性,与网路平台密切相关。短视频庞大的数据流,需要依附CDN进行分发。
4.3、推流拉流
推流与拉流是视频平台的专业术语,推流是把采集阶段封包好的内容传输到服务器。将现场的视频信号传到网络的过程。拉流是指服务器已有直播内容,指定地址进行拉取的过程。

推流与拉流对网络要求比较高,网络不稳定,(直播)播放效果就会很差,(直播)播放时就会发生卡顿等现象,效果体验不好。
4.4、RTMP
RTMP是实时消息传输协议,是Adobe公司开发的服务器之间音视频及数据传输的实时消息传送协议。RTMP协议基于TCP,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。
RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。

RTMP有一个不足,不支持浏览器,Adobe已不再更新。直播服务要支持浏览器的话,需要另外的推送协议支持。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。目前短视频的推流RTMP协议应用较多。
4.5、RTSP
RTSP是实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交标准。定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。

HTTP与RTSP相比,HTTP请求由客户机发出,服务器响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。RTSP是用来控制声音或影像的多媒体串流协议,允许同时多个串流需求控制,服务器端可以自行选择使用TCP或UDP来传送串流内容。相对RTMP,RTSP有UDP的选择。
4.6、HLS
HLS是Apple定义的基于HTTP的流媒体实时传输协议。原理是将整个流分为多个小文件来下载,每次只下载若干个。服务器将最新的直播数据生成新的小文件,客户端不停的按顺序播放从服务器获取到的文件,就实现了直播。
HLS是以点播的技术实现了直播的体验,每个小文件的时长很短,客户端可以很快切换码率,以适应不同带宽条件下的播放。分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。今天的短视频平台,拉流HLS协议应用较多。
4.7、负载均衡
负载均衡在现有网络结构之上,提供廉价的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡含义是分摊到多个操作单元上执行,例如Web服务器、FTP服务器、应用服务器等,共同完成任务,满足高并发访问。短视频平台是一个流量平台,必须具有高并发属性。
4.8、WebRTC
WebRTC,网页即时通信。支持浏览器进行实时语音、视频对话的开源协议。Google、Mozilla、Opera推动WebRTC成为W3C的推荐标准。

WebRTC支持目前主流浏览器,基于SRTP和UDP,网络信号一般的情况下也具备较好的稳定性。WebRTC实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。在直播平台、短视频平台上具有着实际应用。
4.9、OBS
Open Broadcaster Software是一个视频录制和视频实时流软件,广泛应用在视频采集、直播等领域。

OBS支持以下功能:支持H264(X264)和 AAC 编码;支持Intel Quick Sync Video (QSV) 和 NVENC;无限量的场景和视频源;支持实时RTMP流推;支持 MP4 和 FLV 格式输出;支持捕获基于 GPU 的游戏捕获,高性能输出视频流;支持DirectShow 采集设备;双线性或lanczos3 重采样支持等。
4.10、客户端
短视频技术客户端目前主要是Android App、IOS App、桌面应用端。利用专题的相关技术,供终端客户操作应用短视频。
5、总结
伟大的实验心理学家Treicher证实,人类获取的信息83%来自视觉,11%来自听觉,加起来就有94%。还有3.5%来自嗅觉,1.5%来自触觉,1%来自味觉。遗憾的是,广袤的互联网上,竟然鲜有这位大师的更多资料。
疫情倒逼短视频加速升级,2020迎来红利期。未来10年,线上线下70%的流量在短视频。研究表明,人类91%的记忆来自“图像+声音”,而“视觉+听觉”最好的载体就是短视频。
科技让视频发生深刻的变化,短视频技术方兴未艾,SDK应用风起云涌,融媒体发展欣欣向荣。坚信的是,短视频应用未来可期,美摄科技SDK会利用传统视音频处理的技术优势,为开发者提供更多的创新性玩法和想象空间,助力合作伙伴实现业务创新并创造巨大的用户价值将,推动互联网行业整体向前发展的伟大愿景,加速赋能新生代,共同拥抱数字创意新时代。
版权声明
本文为[美摄科技]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_40228051/article/details/110482226
边栏推荐
- . net encountered failed to decode downloaded font while loading font:
- GIS实战应用案例100篇(五十三)-制作三维影像图用以作为城市空间格局分析的底图
- Five methods are used to obtain the parameters and calculation of torch network model
- 带低压报警的51单片机太阳能充电宝设计与制作(完整代码资料)
- Modifying a column with the 'identity' pattern is not supported
- 面试总结之特征工程
- Machine learning III: classification prediction based on logistic regression
- GIS实战应用案例100篇(五十二)-ArcGIS中用栅格裁剪栅格,如何保持行列数量一致并且对齐?
- Proteus 8.10安装问题(亲测稳定不闪退!)
- 使用proteus仿真STM32超声波SRF04测距!Code+Proteus
猜你喜欢

Pymysql connection database

1.2 preliminary pytorch neural network

AMBA协议学习小记

机器学习——PCA与LDA

Chapter 1 numpy Foundation

Mysql database installation and configuration details

【点云系列】DeepMapping: Unsupervised Map Estimation From Multiple Point Clouds

Detailed explanation of device tree

直观理解 torch.nn.Unfold

Write a wechat double open gadget to your girlfriend
随机推荐
PyTorch 12. hook的用法
Chapter 1 numpy Foundation
【无标题】制作一个0-99的计数器,P1.7接按键,P2接数码管段,共阳极数码管,P3.0,P3.1接数码管位码,每按一次键,数码管显示加一。请写出单片机的C51代码
Machine learning II: logistic regression classification based on Iris data set
【技术规范】:如何写好技术文档?
Visual Studio 2019安装与使用
The simplest and complete example of libwebsockets
【点云系列】Unsupervised Multi-Task Feature Learning on Point Clouds
Detailed explanation of device tree
imx6ull-qemu 裸机教程2:USDHC SD卡
PyTorch 20. PyTorch技巧(持续更新)
【无标题】PID控制TT编码器电机
【点云系列】点云隐式表达相关论文概要
1.2 preliminary pytorch neural network
PyTorch 21. PyTorch中nn.Embedding模块
【3D形状重建系列】Implicit Functions in Feature Space for 3D Shape Reconstruction and Completion
Solution to slow compilation speed of Xcode
免费使用OriginPro学习版
EasyUI combobox determines whether the input item exists in the drop-down list
Unable to determine the device handle for GPU 0000:02:00.0: GPU is lost.