是应用层协议,使用TCP作为底层传输协议,并提供了低延迟、高带宽利用率和实时性的特点。
(1)RTMP协议是Adobe的私有协议,未完全公开
(2)一般传输的是 flv,f4v 格式流
都作用于OSI模型中的传输层。
RTCP是RTP的补充协议,用于提供对RTP会话的控制和监控。RTCP负责传输会话中的控制信息,包括发送者和接收者的统计信息、网络延迟、会话质量反馈等
SRTP是在RTP(Real-time Transport Protocol)的基础上添加了加密和认证机制,用于保护音频和视频数据的机密性和完整性。
是一种应用层协议,本身并不传输媒体数据,但它可以与其他协议结合使用,如RTP来实现实时流媒体的传输。
(1)RTSP可以使用TCP作为底层传输协议,也可以使用UDP
(2)RTSPS是RTSP的安全版本,使用了TLS/SSL协议来加密和保护数据传输,以防止数据在传输过程中被窃听和篡改。RTSPS通常使用TCP作为底层传输协议。
(3)一般传输的是 ts、mp4 格式的流
是一个应用层协议,用于传输Flash Video (FLV) 格式的音视频数据
基于MPEG-2 TS(Transport Stream)标准。它将视频、音频和其他媒体数据打包成小的TS分片,并通过HTTP协议进行传输。每个TS分片通常包含几秒钟的媒体数据。这种分片的方式使得流媒体可以通过HTTP协议进行可靠的传输,并且具有较低的延迟。在接收端,客户端会按顺序下载和播放这些TS分片,从而实现连续的流媒体播放。
基于Fragmented MP4(FMP4)标准。与HTTP-TS不同,HTTP-FMP4将视频、音频和其他媒体数据打包成小的MP4片段(Fragment),而不是MPEG-2 TS分片。这些MP4片段通常包含几秒钟的媒体数据。与HTTP-TS相比,HTTP-FMP4在流媒体传输中更为常见,因为它具有更广泛的兼容性和较低的延迟。它也更适合在移动设备和浏览器中播放。
MP4(MPEG-4 Part 14)是一种常见的媒体容器格式,用于存储音频、视频和其他媒体数据。它可以包含多种编码的音频和视频流,以及字幕、章节标记和元数据等信息。MP4文件通常用于存储和传输点播内容。
MP4和HTTP-FMP4之间的主要区别在于:
是一个应用层协议,将媒体文件切片成小的TS(Transport Stream)文件,通过HTTP协议进行分段传输
是一个应用层协议,是一种广义术语,描述基于HTTP的动态自适应流媒体传输方法,由MPEG提供支持。它将媒体文件切片成小的MP4文件,通过HTTP协议进行分段传输,并根据网络条件和设备能力动态选择最适合的片段进行播放
MPEG-DASH是由国际标准化组织ISO/IEC MPEG(Moving Picture Experts Group)制定的标准,即ISO/IEC 23009-1。MPEG-DASH建立在DASH的概念和原则之上,是一个具体的标准,提供了标准化的规范和指南,旨在实现跨不同厂商和平台的互操作性。提供了一些特性(如自适应比特率调整、多音轨和字幕支持等)
使用WebSocket协议传输FLV(Flash Video)格式的流媒体协议
使用WebSocket协议传输MPEG-2 TS(Transport Stream)格式的流媒体
使用WebSocket协议传输Fragmented MP4(fMP4)格式的流媒体
SRT是一个在传输层提供可靠和安全数据传输的协议。它使用UDP作为底层传输协议,并在其上添加了自定义的机制来实现可靠性和安全性。是一个传输层协议。
SRT全称Secure Reliable Transport,是Haivision推出的一个广播传输协议,主要是为了 替代RTMP,实际上OBS、vMix、FFmpeg等直播推流编码器都已经支持了SRT。SRT使用的封装是TS封装,因此对于新的Codec天然就支持。而SRT基于UDP协议,因此对于延迟和弱网传输,也比RTMP要好不少。 一般RTMP延迟在1到3秒以上,而SRT的延迟在300到500毫秒,而且在弱网下表现也很稳定。在广播电视l领域,由于长距离跨国跨地区 传输,或者户外广播时,网络不稳定,因此SRT比RTMP的优势会更明显。
是一个传输层协议,它与传输控制协议(TCP)和用户数据报协议(UDP)类似,是一种作为一个独立的传输层协议而存在。
主要特点:
RIST是一个在传输层使用UDP协议,并在应用层提供可靠性和流控制功能的流传输协议。它并不是一个纯粹的应用层协议,而是在传输层和应用层之间操作的协议。
RIST的设计目标是解决流媒体传输中的可靠性和性能问题,使得传输更加稳定和高效。
RIST的主要特点和功能包括:
SIP 是应用层协议,SIP-T是SIP的一个变体,专门设计用于传统电话网络(Public Switched Telephone Network,PSTN)与IP网络之间的互联。它是一种扩展的SIP协议,支持传统电话网络中的信令和媒体传输。
SDP是一个应用层协议,通常与其他应用层协议(如SIP、WebRTC等)一起使用,以实现多媒体通信的功能。
WebRTC(Web Real-Time Communication)不是一个单独的协议,而是一个包含多个协议和技术的集合,用于在Web浏览器之间实现实时通信。因此,WebRTC并不属于单一的协议层,而是跨越了多个协议层。
WebRTC涵盖了应用层、传输层和网络层等多个协议层的功能和特性。(1)在应用层,WebRTC提供了JavaScript API,使开发者能够通过Web浏览器直接访问音频、视频和数据流,使开发者能够从摄像头、麦克风等设备中捕获音视频流,并对其进行处理和处理。(2)在传输层,WebRTC使用实时传输协议(Real-Time Transport Protocol,RTP)和用户数据报协议(User Datagram Protocol,UDP)等协议,用于实时传输音视频和数据。支持点对点(Peer-to-Peer)和点对多(Peer-to-Multi-Peer)的通信模式。(3)在网络层,WebRTC通过使用ICE(Interactive Connectivity Establishment)和STUN(Session Traversal Utilities for NAT)等技术,解决了在NAT和防火墙后面进行通信的问题。
WebRTC使用信令协议来协商和建立通信会话。常用的信令协议包括基于SIP(Session Initiation Protocol)的协议和WebSocket等。通过信令,浏览器能够交换SDP(Session Description Protocol)消息,以协商会话参数和建立连接。
一种用于控制媒体网关的协议,负责协调和控制VoIP网络中的语音和多媒体流的传输。它使用客户端/服务器模型,将媒体网关作为执行者,由中央控制器发送MGCP命令来控制和管理媒体网关的行为。
H.323是一套用于在IP网络上进行语音、视频和数据实时通信的标准和协议套件。它提供了终端、网关、MCU等组件,以及呼叫控制信令和RTP等协议,实现了多媒体通信的互操作性和实时性
应用层协议,基于 UDP传输层协议。
QUIC协议的关键特点和功能:
GB28181是中国国家标准局发布的《基于IP的视频监控联网系统》标准,也被称为《视频监控联网系统信息传输、交互和控制协议》。它是一种用于视频监控系统中设备间通信和互联互通的协议和标准。
GB28181采用基于IP的架构,使用标准的网络协议和技术,如HTTP、RTSP、RTP等,实现视频设备的联网和互操作。该标准规范了视频设备之间的信令交互、媒体传输和设备控制等方面的规范,以确保视频监控系统的互联互通和协同工作。
具体来说,GB28181标准包括以下主要内容:
RIST 和 SCTP 设计和功能区别:
RIST(Reliable Internet Stream Transport)和SCTP(Stream Control Transmission Protocol)是两种不同的协议,具有不同的设计目标和应用场景。
- 目标和应用场景:RIST是用于在互联网上传输流媒体的可靠传输协议,旨在解决流媒体传输中的可靠性、安全性和带宽利用等问题。它适用于视频直播、远程制片、远程采访和远程监控等应用。而SCTP是一种传输层协议,旨在提供可靠的数据传输和多流并发传输。它适用于需要可靠传输和多个逻辑流的应用场景,如VoIP、视频传输和实时游戏等。
- 可靠性机制:RIST使用前向纠错和重传机制来确保数据的可靠传输。前向纠错技术允许接收端在接收到部分丢失或损坏的数据时进行恢复,而重传机制可在发生数据丢失时重新发送数据。SCTP也提供可靠的传输机制,通过序列号、确认机制和重传机制来确保数据的可靠交付。它还支持有序交付和拥塞控制等功能。
- 多流传输:RIST支持将数据划分为多个独立的逻辑流进行传输,每个流都有自己的序列号和确认机制。这种多流传输机制使得RIST适用于同时传输多个应用程序数据流的场景。而SCTP本身即支持多流传输,可以在一个SCTP连接上并行传输多个逻辑流,每个流都有自己的序列号和确认机制。
- 安全性:RIST支持加密和身份验证机制,以保护传输的数据的机密性和完整性。它可以使用TLS协议对传输进行加密,并使用数字证书对通信双方进行身份验证。而SCTP本身并没有内建的加密和身份验证机制,但可以与其他安全协议(如IPsec)结合使用,以提供安全的传输。
总的来说,RIST是一个用于流媒体传输的可靠传输协议,着重解决流媒体传输中的可靠性和性能问题。而SCTP是一种传输层协议,提供可靠的数据传输和多流并发传输。它们在目标、应用场景和功能上有所差异,但都可以用于特定的流媒体传输需求。
1.1 直播(LIVE)
HLS, RTMP, http+MP4, http+flv, RTP+RTSP
1.2 点播(VOD)
http+MP4, http+flv, HLS, DASH
2.1 直播
RTMP, HLS, http+flv
2.2 音视频通话:
webrtc(RTP), SIP+RTP
2.3 视频点播:
http+MP4, http+flv, hls
2.4 IPTV:
RTSP(信令)+RTP(媒体)
2.5 会议电视:
RTP(媒体)+SIP(信令),H323(信令)+RTP(媒体)
2.6 视频监控:
国标SIP(信令)+RTP(媒体),RTSP(媒体)+RTP(媒体)
2.7 VOIP
SIP(信令)+RTP(媒体)
3.1 TCP
基于http 类传输协议和rtmp协议底层是tcp传输;
RTSP通常做信令,用TCP来承载
3.2 UDP
RTP协议和RTCP协议是基于UDP承载的
3.3 SCTP
注:关于TCP和UDP承载的区别
1)TCP 传输的特点:面向连接,保序,可靠;
TCP的协议栈完成了拥塞控制,流量控制,乱序重排,丢包重传等工作。保证数据是有序可靠的。适合对数据完整性要求高的场景:如文件下载,网页浏览,信令传输。
2)UDP 传输特点:面向无连接,不保序,不可靠连接
UDP协议不是面向连接的,只是简单向对方发送数据,哪怕对方不存在。正因为协议简单,所以传输效率高,实时高,延迟低。适合对数据完整性要求不高,但实时性高的场景。如音视频传输,游戏等。
3)关于组播与广播,单播
TCP是一个面向连接的协议,TCP一定是点对点的,一定是两个主机来建立连接的,TCP肯定是单播。只有UDP才会使用广播和组播。有时一个主机要向网上的所有其它主机发送帧,这就是广播,广播分为二层广播(目的MAC全F)和三层广播(IP地址的主机位全1),二层广播是不能跨路由器的,三层广播是可以跨路由器路由的。多播(组播)属于单播和广播之间,帧仅传送给属于多播组的多个主机。在广播电视领域为了减少服务器压力,通常使用组播跟用户推流。如IPTV,通常机顶盒通过光猫加入某个组播地址,接收某个CDN的组播流。
1.1 H.264/AVC
一种广泛使用的视频编码标准,具有高压缩比和良好的视频质量。
1.2 H.265/HEVC
一种高效的视频编码标准,提供更好的压缩性能和视频质量。
1.3 VP9
由Google开发的开源视频编码格式,具有高压缩效率和良好的视频质量。
1.4 AV1
由Alliance for Open Media开发的开源视频编码格式,旨在提供高效的视频压缩和更好的图像质量。
1.5 MPEG-2
一种常见的视频压缩标准,广泛应用于广播、DVD和数字电视等领域。
1.6 MPEG-4:
一种多媒体压缩标准,支持视频、音频和其他媒体数据的压缩和传输。
1.7 VP8:
由On2 Technologies开发的视频编码格式,是VP9的前身,现在仍然被一些应用使用。
1.8 VC-1
VC-1是软件巨头微软力推的一种视频编码的格式,弱于H.264,也弱于MPEG-4
常见在线流媒体格式:mp4、flv、f4v、webm
移动设备格式:m4v、mov、3gp、3g2
RealPlayer :rm、rmvb
微软格式 :wmv、avi、asf
MPEG 视频 :mpg、mpeg、mpe、ts
DV格式 :div、dv、divx
其他格式 :vob、dat、mkv、lavf、cpk、dirac、ram、qt、fli、flc、mod
根据编码思路,H.264标准分了三种帧:I帧、P帧与B帧
(1)I帧
I 帧,帧内编码图像帧,不参考其他图像帧,只利用本帧的信息进行编码。
I帧是一个完整编码的帧,即一个序列的第一帧。
(2)P帧
P 帧,即预测编码图像帧,利用之前的 I 帧或 P 帧,进行帧间预测编码。
P帧根据之前的之前的I帧或者P帧,利用运动预测的方式,编码与前一帧的差值。由于I、P帧可能被后续的P帧作为计算基础所参考,所以I、P帧都称之为**参考帧****,**参考帧的错误解码会导致后续的帧解码也发生错误,造成解码错误扩散。
(3)B帧
B 帧,即双向预测编码图像帧,它既需要之前的图像帧(I 帧或 P 帧),也需要后来的图像帧(P 帧),进行帧间双向预测编码。
B帧需要同时根据前后两个参考帧作为基础进行计算,但B帧本身不作为参考帧,B帧解码错误不会引起扩散。同时B帧的编码效率最好,可以提高视频压缩率,但会增加视频解码的复杂度。
B帧并不是必须的,在需要压缩空间时通常会使用,例如存电影等,使用大量的B帧可以节约空间。而对于直播等这种对实时性要求比较高的场景,B帧需要缓冲多余的数据,还会加重CPU的负担,因此通常不使用B帧。
GOP即是一个序列长度,由一组I、P、B帧组成。其中序列的首帧(显然,一定是I帧)被称为IDR帧,解码器在读到IDR帧后会清除掉之前参考帧的缓存,从这个I帧开始重新进行计算,可以避免前边的GOP出错影响到后续的解码。
现代编码器会动态的根据帧内容变化幅度,来决定GOP的长度,获得一个比较好的编码效率。
在使用B帧时,由于B帧需要前后参考的特性,所以需要把B帧之后的P帧挪到前边去传输。但这样就引入了一个问题,播放的顺序与传输的顺序不一致。所以就有PTS和DTS,分别用来标识传输的顺序与播放的顺序,像这样
Stream: I P B B
DTS: 1 2 3 4
PTS: 1 4 2 3
(1)帧内预测
一般来说,对于一幅图片,图片中像素的分布一般是有规律的,可以用几种模式大致的匹配像素分布的样,子H.264就根据这个原理进行帧内预测。按像素预测效率比较低,因此H.264提出块的概念。一个1616的像素块成21为宏块,一个宏块还能进一步分为一个44的子块(考虑到YUV的编码模式,都是基于4个Y共享UV的逻辑)。H.264提前针对子块和宏块设定了预置的预测模式(色度块和亮度块都有自己的预测模式),用于描述对于相邻块的变化。
对于比较平坦的部分,我们记录相邻宏块的预测模式即可。对于带有大量细节的部分,则细化到子块,记录子块的变化模式。
显然,这样预测出来的图片和现实图片是有差别的,所以我们还需要计算一遍残差,即和原始图片的区别。将残差和预测模式合到一起,就可以还原出原来的图片了
(2)残差压缩
我们刚刚获得的残差图还是比较大的,使用DCT-离散余弦变换可以进一步压缩残差图/
(3)量化
H.264还会对图像进行量化,计算方法如下
FQ = round( y / QP )
即对于每个像素点的编码数据y,会指定一个步长QP,用编码数值去除步长就会获得一个编码范围比较小的量化值FQ。但是量化同时会使图像的动态范围变窄,会丢失一些精度。
视频的分辨率指的是图像的像素数量,通常表示为宽度×高度(例如,1920×1080)。较高的分辨率意味着更多的像素,提供更清晰的图像。
视频的帧率表示每秒显示的图像数量,通常以帧每秒(fps)为单位。常见的视频帧率包括30fps、60fps等。较高的帧率可以提供更流畅的视频体验。
视频的码率表示每秒传输的数据量,通常以比特率(bps)为单位。较高的码率可以提供更高质量的图像,但也需要更高的带宽。
采样率表示每秒对声音信号进行采样的次数,通常以赫兹(Hz)为单位。采样频率越高,声音的还原就越真实越自然,当然数据量就越大。采样率根据使用类型不同大概有以下几种:
位深度也称采样位数,也称量化级、样本尺寸、量化数据位数,指每个采样点能够表示的数据范围,它以位(Bit)为单位。采样位数通常有 8bits 或 16bits 两种,采样位数越大,所能记录声音的变化度就越细腻,相应的数据量就越大。8 位字长量化(低品质)和 16 位字长量化(高品质),16 bit 是最常见的采样精度。
声道数是指支持能不同发声的音响的个数,它是衡量音响设备的重要指标之一。
音频的通道数表示同时传输的独立音频信号的数量。常见的通道数包括单声道(Mono)、立体声(Stereo)、5.1声道等。不同的通道数可以提供不同的音频空间效果。
将采样后离散信号的幅度用二进制数表示出来的过程称为量化。(日常生活所说的量化,就是设定一个范围或者区间,然后看获取到的数据在这个条件内的收集出来)。
比特率(也称位速、比特率),是指在一个数据流中每秒钟能通过的信息量,代表了压缩质量。比如 MP3 常用码率有 128kbit/s、160kbit/s、320kbit/s 等等,越高代表着声音音质越好。
比特率 = 采样率 × 采样深度 × 通道数。比如 采样率 = 44100,采样深度 = 16,通道 = 2 的音频的的比特率就是 44100 * 16 * 2 = 1411200 bps。
音频编码是将原始音频信号转换为数字数据的过程。常见的音频编码标准包括MP3、AAC、Opus等。编码可以压缩音频数据,减小文件大小或传输带宽。
音频容器格式是将音频、视频和其他元数据组合在一起的文件格式。常见的音频容器格式包括MP3、WAV、FLAC等。容器格式可以包含不同编码的音频流,并提供元数据和同步信息。
RGB是red,green, blue的简写,也就是红绿蓝三种颜色。他们是三原色,通过不同的比例相加,以产生多种多样的色光。
A. 索引格式是计算机早期的一种格式,它的优点比较节省空间,缺点是表现的色彩有限,目前格式基本被抛弃了,不再被使用,这里只做简单介绍。
B. 索引格式中的bit存储的并非是实际的R,G, B值,而是对应点的像素在调色板中的索引。
C. 调色板,可以简单理解为通过编号映射到颜色的一张二维表。如01索引,表示红色。采用索引格式的RGB,红色的像素对应存储的值便是索引01。就像指针一样,存储的是值的地址,而不是真正的值。
RGB像素格式中的bit存储的是每一个像素点的R,G,B值
注意:java默认使用大端字节序,c/c++默认使用小端字节序,android平台下Bitmap.config.ARGB_8888的Bitmap默认是大端字节序,当需要把这个图片内存数据给小端语言使用的时候,就需要把大端字节序转换为小端字节序。例如:java层的ARGB_565传递给jni层使用时,需要把java层的ARGB_565的内存数据转换为BGRA565!
R = color & 0xF800; //获取高字节的5个bit
G = color & 0x07E0; //获取中间6个bit
B = color & 0x001F; //获取低字节5个bit
R = color & 0x7C00; //获取高字节的5个bit
G = color & 0x03E0; //获取中间5个bit
B = color & 0x001F; //获取低字节5个bit
R = color & 0x0000FF00;
G = color & 0x00FF0000;
B = color & 0xFF000000;
R = color & 0x0000FF00;
G = color & 0x00FF0000;
B = color & 0xFF000000;
A = color & 0x000000FF;
YUV,是一种颜色编码方法。常使用在各个影像处理组件中。 YUV在对照片或影片编码时,考虑到人类的感知能力,允许降低色度的带宽。
Y表示明亮度(Luminance或Luma),也就是灰度值;
U(Cb)表示色度(Chrominance)
V(Cr)表示浓度(Chroma)
通常UV一起描述影像色彩和饱和度,用于指定像素的颜色。
对于 YUV 图像来说,并不是每个像素点都需要包含了 Y、U、V 三个分量,根据不同的采样格式,可以每个 Y 分量都对应自己的 UV 分量,也可以几个 Y 分量共用 UV 分量。
YUV 4:4:4 采样,意味着 Y、U、V 三个分量的采样比例相同,因此在生成的图像里,每个像素的三个分量信息完整,都是 8 bit,也就是一个字节。
图像像素数据: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
采样的码流: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
Y分量的大小: wh
U分量的大小: wh
V分量的大小: w*h
通过YUV444采样的图像大小和RGB颜色模型的图像大小是一样的。
一张 1280 * 720 大小的图片,在 YUV 4:4:4 采样时的大小为:
(1280*720*8 + 1280*720*8 + 1280*720*8)/8/1024/1024 = 2.64 MB
YUV 4:2:2 采样,意味着每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一个采集一个,Y 分量和 UV 分量按照 2 : 1 的比例采样。如果水平方向有8个像素点,那么就采样8 个 Y 分量,4 个 UV 分量。
图像像素数据: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3
采样的码流: Y0 U0 Y1 V1 Y2 U2 Y3 V3
Y分量的大小: wh
U分量的大小: wh/2
V分量的大小: wh/2
一张 1280 * 720 大小的图片,在 YUV 4:2:2 采样时的大小为:
(12807208 + (1280720)/28 + (1280720)/2*8)/8/1024/1024 = 1.76 MB
通过与YUV444采样进行比较可以算出,YUV422 采样的图像比YUV444采样图像节省了三分之一的存储空间,在传输时占用的带宽也会减少。
YUV 4:2:0 采样,并不是指只采样 U 分量而不采样 V 分量。而是指,其中,每采样过一个像素点,都会采样其 Y 分量,而 U、V 分量就会间隔一行按照 2 : 1 进行采样。比如,第一行扫描时,YU 按照 2 : 1 的方式采样,那么第二行扫描时,YV 分量按照 2:1 的方式采样。对于每个色度分量来说,它的水平方向和竖直方向的采样和 Y 分量相比都是 2:1 。
图像像素数据: [Y0 U0 V0]、[Y1 U1 V1]、 [Y2 U2 V2]、 [Y3 U3 V3]
[Y5 U5 V5]、[Y6 U6 V6]、 [Y7 U7 V7] 、[Y8 U8 V8]
采样的码流: Y0 U0 Y1 Y2 U2 Y3
Y5 V5 Y6 Y7 V7 Y8
为什么叫4:2:0,意思是每4个像素中有4个Y,2个U,0个V,而下一行的四个像素中有4个Y,0个U,2个V
Y分量的大小: wh
U分量的大小: wh/4
V分量的大小: w*h/4
一张 1280 * 720 大小的图片,在 YUV 4:2:0 采样时的大小为:
(1280*720*8 + (1280*720)/4*8 + (1280*720)/4*8)/8/1024/1024 = 1.32 MB
可以看到 YUV420 采样的图像比 RGB 模型图像节省了一半的存储空间,因此它也是比较主流的采样方式。
Y0 Y1 Y2 Y3 U0 U1 V0 V1
Y0 UO Y1 V0 Y2 U1 Y3 V1
Y0 和 Y1 公用 U0 V0 分量,Y2 和 Y3 公用 U1 V1 分量
U0 Y0 V0 Y1 U1 Y2 V1 Y3
常见的基于 YUV 4:2:0 采样的格式如:
YUV420采样 | YUV420采样 | |
---|---|---|
YUV420P存储 | YV12 | NV12 |
YUV420SP存储 | NV12 | NV21 |
YUV420P 和 YUV420SP 都是基于 Planar 平面模式 进行存储的,先存储所有的 Y 分量后, YUV420P 类型就会先存储所有的 U 分量或者 V 分量,而 YUV420SP 则是按照 UV 或者 VU 的交替顺序进行存储了.
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
V0
U0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
U0
V0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
U0 V0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
V0 U0
开源的计算机视觉和图像处理库,提供了丰富的函数和工具,用于处理图像和视频数据
OpenCL是一种基于开放标准的平台,它可以让应用程序使用各种计算平台,包括CPU、GPU和FPGA。OpenCL的主要目的是充分利用基于多核处理器的计算机硬件。
教程:https://deepinout.com/opencl
开源的跨平台多媒体音视频处理工具集
CUDA(Compute Unified Device Architecture)是由NVIDIA开发的并行计算平台和编程模型。它允许开发者利用NVIDIA GPU的并行计算能力来加速各种计算任务,包括科学计算、机器学习、图形渲染等。CUDA提供了一组编程接口和工具,使开发者能够在GPU上编写并行程序,并利用GPU的大规模并行处理能力来加速计算。
Tesseract是一个开源的OCR(Optical Character Recognition)引擎,由Google开发和维护。它能够将图像中的文本内容转换为可编辑的文本形式。Tesseract支持多种语言,并且具有一定的准确性和稳定性。
流媒体服务,官网地址 :https://ossrs.net/
流媒体服务,官网地址 :https://docs.zlmediakit.com/