零基础入门:实时音视频技术基础知识全面盘点

news2024/11/28 4:37:05

1、引言

随着移动网络速度越来越快、质量越来越来,实时音视频技术已经在各种应用场景下全面开花,语音通话、视频通话、视频会议、远程白板、远程监控等等。

实时音视频技术的开发也越来越受到重视,但是由于音视频开发涉及知识面比较广,入门门槛相对较高,让许许多多开发者望而生畏。

虽然网上有很多的博文总结了实时音视频技术的学习路线,但是相关的知识都相对独立,有讲“音视频解码相关”的、有讲“OpenGL相关”的、也有讲“FFmpeg相关的”、还有讲“RTP/RTCP、RTMP、HLS、QUIC等通信相关的”,但是对于新手来说,把所有的知识衔接串联起来,并很好的理解所有的知识,却是非常困难的。

本人在学习音视频开发的过程中,深刻体会到了由于知识的分散、过渡断层带来的种种困惑和痛苦,因此希望通过自己的理解,可以把音视频开发相关的知识总结出来,并形成系列文章,循序渐进,剖析各个环节,一则对自己所学做一个总结和巩固,二则希望可以帮助想入门音视频开发的开发者小伙伴们。

本文是作者自已根据入门实时音视频的亲身经历,对于基础知识点的认知总结。虽然很浅显,但相对小白来说,能稍微系统的了解这些概念就已经是很好的起点了。

学习交流:

- 即时通讯/推送技术开发交流5群:215477170[推荐]

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》

2、相关文章

《即时通讯音视频开发(一):视频编解码之理论概述》

《即时通讯音视频开发(六):如何开始音频编解码技术的学习》

《即时通讯音视频开发(七):音频基础及编码原理入门》

《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》

《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》(* 必读)

《实时语音聊天中的音频处理与编码压缩技术简述》

《移动端实时音视频直播技术详解(一):开篇》

《移动端实时音视频直播技术详解(二):采集》

《移动端实时音视频直播技术详解(三):处理》

《移动端实时音视频直播技术详解(四):编码和封装》

《移动端实时音视频直播技术详解(五):推流和传输》

《移动端实时音视频直播技术详解(六):延迟优化》

《福利贴:最全实时音视频开发要用到的开源工程汇总》(* 必读)

《写给小白的实时音视频技术入门提纲》(* 必读)

《爱奇艺技术分享:轻松诙谐,讲解视频编解码技术的过去、现在和将来》

3、视频是什么?

3.1 动画书

不知道大家小时候是否玩过一种动画小人书,连续翻动的时候,小人书的画面就会变成一个动画,类似现在的gif格式图片。

本来是一本静态的小人书,通过翻动以后,就会变成一个有趣的小动画,如果画面够多,翻动速度够快的话,这其实就是一个小视频。

而视频的原理正是如此,由于人类眼睛的特殊结构,画面快速切换时,画面会有残留,感觉起来就是连贯的动作。所以,视频就是由一系列图片构成的。

3.2 视频帧

帧,是视频的一个基本概念,表示一张画面,如上面的翻页动画书中的一页,就是一帧。一个视频就是由许许多多帧组成的。

3.3 帧率

帧率,即单位时间内帧的数量,单位为:帧/秒 或fps(frames per second)。如动画书中,一秒内包含多少张图片,图片越多,画面越顺滑,过渡越自然。

帧率的一般以下几个典型值:

  • 1)24/25 fps:1秒 24/25 帧,一般的电影帧率;

  • 2)30/60 fps:1秒 30/60 帧,游戏的帧率,30帧可以接受,60帧会感觉更加流畅逼真。

85 fps以上人眼基本无法察觉出来了,所以更高的帧率在视频里没有太大意义。

3.4 色彩空间

这里我们只讲常用到的两种色彩空间。

  • 1)RGB:RGB的颜色模式应该是我们最熟悉的一种,在现在的电子设备中应用广泛。通过R G B三种基础色,可以混合出所有的颜色;

  • 2)YUV:这里着重讲一下YUV,这种色彩空间并不是我们熟悉的。这是一种亮度与色度分离的色彩格式。

早期的电视都是黑白的,即只有亮度值,即Y。有了彩色电视以后,加入了UV两种色度,形成现在的YUV,也叫YCbCr。

  • 1)Y:亮度,就是灰度值。除了表示亮度信号外,还含有较多的绿色通道量;

  • 2)U:蓝色通道与亮度的差值;

  • 3)V:红色通道与亮度的差值。

如下图,可以看到Y、V、U 3个分量的效果差值:

采用YUV有什么优势呢?

人眼对亮度敏感,对色度不敏感,因此减少部分UV的数据量,人眼却无法感知出来,这样可以通过压缩UV的分辨率,在不影响观感的前提下,减小视频的体积。

RGB和YUV的换算:

Y = 0.299R + 0.587G + 0.114B

U = -0.147R - 0.289G + 0.436B

V = 0.615R - 0.515G - 0.100B

——————————————————

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

3.5 进一步学习

如果你认为上面的文字还是有点专业,则强烈建议阅读下文:《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》,绝对史上最通俗!

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  

4、音频是什么?

4.1 基本知识

音频数据的承载方式最常用的是脉冲编码调制,即 PCM。

在自然界中,声音是连续不断的,是一种模拟信号,那怎样才能把声音保存下来呢?那就是把声音数字化,即转换为数字信号。

我们知道声音是一种波,有自己的振幅和频率,那么要保存声音,就要保存声音在各个时间点上的振幅。

而数字信号并不能连续保存所有时间点的振幅,事实上,并不需要保存连续的信号,就可以还原到人耳可接受的声音。

根据奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。

根据以上分析,PCM的采集步骤分为以下步骤:

模拟信号 -> 采样 -> 量化 -> 编码 -> 数字信号

4.2 采样率和采样位数

采样率,即采样的频率。

上面提到,采样率要大于原声波频率的2倍,人耳能听到的最高频率为20kHz,所以为了满足人耳的听觉要求,采样率至少为40kHz,通常为44.1kHz,更高的通常为48kHz。

采样位数,涉及到上面提到的振幅量化。波形振幅在模拟信号上也是连续的样本值,而在数字信号中,信号一般是不连续的,所以模拟信号量化以后,只能取一个近似的整数值,为了记录这些振幅值,采样器会采用一个固定的位数来记录这些振幅值,通常有8位、16位、32位。

位数越多,记录的值越准确,还原度越高。

4.3 编码

最后就是编码了。由于数字信号是由0,1组成的,因此,需要将幅度值转换为一系列0和1进行存储,也就是编码,最后得到的数据就是数字信号:一串0和1组成的数据。

整个过程如下:

4.4 声道数

声道数,是指支持能不同发声(注意是不同声音)的音响的个数。

单声道:1个声道

双声道:2个声道

立体声道:默认为2个声道

立体声道(4声道):4个声道

4.5 码率

码率,是指一个数据流中每秒钟能通过的信息量,单位bps(bit per second)。

码率 = 采样率 * 采样位数 * 声道数

4.6 深入地学习

读完上面的文字后,如果觉得不够深入,可以继续系统的学习以下资料:

《即时通讯音视频开发(六):如何开始音频编解码技术的学习》

《即时通讯音视频开发(七):音频基础及编码原理入门》

《即时通讯音视频开发(八):常见的实时语音通讯编码标准》

《即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述》

《即时通讯音视频开发(十):实时语音通讯的回音消除技术详解》

《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》

《即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型》

《实时语音聊天中的音频处理与编码压缩技术简述》

《网易视频云技术分享:音频处理与压缩技术快速入门》

如果你认为还需要更浅的文章,则强烈建议阅读下文(绝对史上最通俗):

《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》

5、为什么要编码

这里的编码和上面音频中提到的编码不是同个概念,而是指压缩编码。

我们知道,在计算机的世界中,一切都是0和1组成的,音频和视频数据也不例外。由于音视频的数据量庞大,如果按照裸流数据存储的话,那将需要耗费非常大的存储空间,也不利于传送。而音视频中,其实包含了大量0和1的重复数据,因此可以通过一定的算法来压缩这些0和1的数据。

特别在视频中,由于画面是逐渐过渡的,因此整个视频中,包含了大量画面/像素的重复,这正好提供了非常大的压缩空间。

因此,编码可以大大减小音视频数据的大小,让音视频更容易存储和传送。

那么,未经编码的原始音视频,数据量至底有多大?

以一个分辨率1920×1280,帧率30的视频为例:

共:1920×1280=2,073,600(Pixels 像素),每个像素点是24bit(前面算过的哦);

也就是:每幅图片2073600×24=49766400 bit,8 bit(位)=1 byte(字节);

所以:49766400bit=6220800byte≈6.22MB。

这是一幅1920×1280图片的原始大小,再乘以帧率30。

也就是说:每秒视频的大小是186.6MB,每分钟大约是11GB,一部90分钟的电影,约是1000GB。。。

(以上举例引用自:《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》)

6、视频编码

视频编码格式有很多,比如H26x系列和MPEG系列的编码,这些编码格式都是为了适应时代发展而出现的。

其中,H26x(1/2/3/4/5)系列由ITU(International Telecommunication Union)国际电传视讯联盟主导

MPEG(1/2/3/4)系列由MPEG(Moving Picture Experts Group, ISO旗下的组织)主导。

当然,他们也有联合制定的编码标准,那就是现在主流的编码格式H264,当然还有下一代更先进的压缩编码标准H265。

视频编码知识比较专业,限于篇幅,我就不在此展开讨论了。

如果想系统地了解视频编码技术,可以读以下资料:

《即时通讯音视频开发(一):视频编解码之理论概述》

《即时通讯音视频开发(二):视频编解码之数字视频介绍》

《即时通讯音视频开发(三):视频编解码之编码基础》

《即时通讯音视频开发(四):视频编解码之预测技术介绍》

《即时通讯音视频开发(五):认识主流视频编码技术H.264》

《即时通讯音视频开发(十二):多人实时音视频聊天架构探讨》

《即时通讯音视频开发(十三):实时视频编码H.264的特点与优势》

《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》

《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况》

《即时通讯音视频开发(十六):移动端实时音视频开发的几个建议》

《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》

7、音频编码

原始的PCM音频数据也是非常大的数据量,因此也需要对其进行压缩编码。

和视频编码一样,音频也有许多的编码格式,如:WAV、MP3、WMA、APE、FLAC等等,音乐发烧友应该对这些格式非常熟悉,特别是后两种无损压缩格式。

但是,我们今天的主角不是他们,而是另外一个叫AAC的压缩格式。本节以AAC格式为例,直观的了解音频压缩格式。

AAC是新一代的音频有损压缩技术,一种高压缩比的音频压缩算法。在MP4视频中的音频数据,大多数时候都是采用AAC压缩格式。

AAC格式主要分为两种:ADIF、ADTS。

1)ADIF:Audio Data Interchange Format。音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。这种格式常用在磁盘文件中。

2)ADTS:Audio Data Transport Stream。音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。

ADTS可以在任意帧解码,它每一帧都有头信息。ADIF只有一个统一的头,所以必须得到所有的数据后解码。且这两种的header的格式也是不同的,目前一般编码后的都是ADTS格式的音频流。

ADIF数据格式:

header | raw_data

ADTS 一帧 数据格式(中间部分,左右省略号为前后数据帧):

AAC内部结构也不再赘述,如果有兴趣,可以参考《AAC 文件解析及解码流程》。

如果需要更深入地学习音频编码知识,可以看看以下资料:

《即时通讯音视频开发(六):如何开始音频编解码技术的学习》

《即时通讯音视频开发(七):音频基础及编码原理入门》

《即时通讯音视频开发(八):常见的实时语音通讯编码标准》

《即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型》

8、音视频容器

细心的读者可能已经发现,前面我们介绍的各种音视频的编码格式,没有一种是我们平时使用到的视频格式,比如:mp4、rmvb、avi、mkv、mov...

没错,这些我们熟悉的视频格式,其实是包裹了音视频编码数据的容器,用来把以特定编码标准编码的视频流和音频流混在一起,成为一个文件。

例如:mp4支持H264、H265等视频编码和AAC、MP3等音频编码。

mp4是目前最流行的视频格式,在移动端,一般将视频封装为mp4格式。

对于音视频编码格式和容器之间的关系,可以详细读《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》一文中的“6、视频编码的国际标准”一节。

9、硬解码和软解码

我们在一些播放器中会看到,有硬解码和软解码两种播放形式给我们选择,但是我们大部分时候并不能感觉出他们的区别,对于普通用户来说,只要能播放就行了。

那么他们内部究竟有什么区别呢?

在手机或者PC上,都会有CPU、GPU或者解码器等硬件。通常,我们的计算都是在CPU上进行的,也就是我们软件的执行芯片,而GPU主要负责画面的显示(是一种硬件加速)。

所谓软解码:就是指利用CPU的计算能力来解码,通常如果CPU的能力不是很强的时候,一则解码速度会比较慢,二则手机可能出现发热现象。但是,由于使用统一的算法,兼容性会很好。

所谓硬解码:指的是利用手机上专门的解码芯片来加速解码。通常硬解码的解码速度会快很多,但是由于硬解码由各个厂家实现,质量参差不齐,非常容易出现兼容性问题。

10、参考资料

[1] 音视频开发基础知识

[2] YUV颜色编码解析

[3] YUV数据格式

[4] 音频基础知识

[5] AAC 文件解析及解码流程

[6] 入门理解H264编码

附录:更多音视频技术文章汇总

[1] 开源实时音视频技术WebRTC的文章:

《开源实时音视频技术WebRTC的现状》

《简述开源实时音视频技术WebRTC的优缺点》

《访谈WebRTC标准之父:WebRTC的过去、现在和未来》

《[良心分享:WebRTC 零基础开发者教程(中文)附件下载]》

《WebRTC实时音视频技术的整体架构介绍》

《新手入门:到底什么是WebRTC服务器,以及它是如何联接通话的?》

《WebRTC实时音视频技术基础:基本架构和协议栈》

《浅谈开发实时视频直播平台的技术要点》

《[观点] WebRTC应该选择H.264视频编码的四大理由》

《基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有哪些?》

《开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用》

《简述实时音视频聊天中端到端加密(E2EE)的工作原理》

《实时通信RTC技术栈之:视频编解码》

《开源实时音视频技术WebRTC在Windows下的简明编译教程》

《网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有多少坑要填?》

《了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化》

《腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践》

>> 更多同类文章 ……

[2] 实时音视频开发的其它精华资料:

《即时通讯音视频开发(一):视频编解码之理论概述》

《即时通讯音视频开发(二):视频编解码之数字视频介绍》

《即时通讯音视频开发(三):视频编解码之编码基础》

《即时通讯音视频开发(四):视频编解码之预测技术介绍》

《即时通讯音视频开发(五):认识主流视频编码技术H.264》

《即时通讯音视频开发(六):如何开始音频编解码技术的学习》

《即时通讯音视频开发(七):音频基础及编码原理入门》

《即时通讯音视频开发(八):常见的实时语音通讯编码标准》

《即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述》

《即时通讯音视频开发(十):实时语音通讯的回音消除技术详解》

《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》

《即时通讯音视频开发(十二):多人实时音视频聊天架构探讨》

《即时通讯音视频开发(十三):实时视频编码H.264的特点与优势》

《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》

《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况》

《即时通讯音视频开发(十六):移动端实时音视频开发的几个建议》

《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》

《即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型》

《即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门》

《实时语音聊天中的音频处理与编码压缩技术简述》

《网易视频云技术分享:音频处理与压缩技术快速入门》

《学习RFC3550:RTP/RTCP实时传输协议基础知识》

《基于RTMP数据传输协议的实时流媒体技术研究(论文全文)》

《声网架构师谈实时音视频云的实现难点(视频采访)》

《浅谈开发实时视频直播平台的技术要点》

《还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!》

《实现延迟低于500毫秒的1080P实时音视频直播的实践分享》

《移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡》

《如何用最简单的方法测试你的实时音视频方案》

《技术揭秘:支持百万级粉丝互动的Facebook实时视频直播》

《简述实时音视频聊天中端到端加密(E2EE)的工作原理》

《移动端实时音视频直播技术详解(一):开篇》

《移动端实时音视频直播技术详解(二):采集》

《移动端实时音视频直播技术详解(三):处理》

《移动端实时音视频直播技术详解(四):编码和封装》

《移动端实时音视频直播技术详解(五):推流和传输》

《移动端实时音视频直播技术详解(六):延迟优化》

《理论联系实际:实现一个简单地基于HTML5的实时视频直播》

《IM实时音视频聊天时的回声消除技术详解》

《浅谈实时音视频直播中直接影响用户体验的几项关键技术指标》

《如何优化传输机制来实现实时音视频的超低延迟?》

《首次披露:快手是如何做到百万观众同场看直播仍能秒开且不卡顿的?》

《Android直播入门实践:动手搭建一套简单的直播系统》

《网易云信实时视频直播在TCP数据传输层的一些优化思路》

《实时音视频聊天技术分享:面向不可靠网络的抗丢包编解码器》

《P2P技术如何将实时视频直播带宽降低75%?》

《专访微信视频技术负责人:微信实时视频聊天技术的演进》

《腾讯音视频实验室:使用AI黑科技实现超低码率的高清实时视频聊天》

《微信团队分享:微信每日亿次实时音视频聊天背后的技术解密》

《近期大热的实时直播答题系统的实现思路与技术难点分享》

《福利贴:最全实时音视频开发要用到的开源工程汇总》

《七牛云技术分享:使用QUIC协议实现实时视频直播0卡顿!》

《实时音视频聊天中超低延迟架构的思考与技术实践》

《理解实时音视频聊天中的延时问题一篇就够》

《实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序》

《写给小白的实时音视频技术入门提纲》

《微信多媒体团队访谈:音视频开发的学习、微信的音视频技术和挑战等》

《腾讯技术分享:微信小程序音视频技术背后的故事》

《微信多媒体团队梁俊斌访谈:聊一聊我所了解的音视频技术》

《新浪微博技术分享:微博短视频服务的优化实践之路》

《实时音频的混音在视频直播应用中的技术原理和实践总结》

《以网游服务端的网络接入层设计为例,理解实时通信的技术挑战》

《腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践》

《新浪微博技术分享:微博实时直播答题的百万高并发架构实践》

《技术干货:实时视频直播首屏耗时400ms内的优化实践》

《爱奇艺技术分享:轻松诙谐,讲解视频编解码技术的过去、现在和将来》

《零基础入门:实时音视频技术基础知识全面盘点》

>> 更多同类文章 ……

作者:JackJiang

链接:零基础入门:实时音视频技术基础知识全面盘点 - 掘金 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可视化搭建,1天开发1款“智慧楼宇”应用

随着我国城市建设的飞速发展,现代建筑正朝着智能化和网络化不断前进。物联网技术、智能化技术使得建筑内众多公共资源具有语境感知能力,现代建筑进入了智慧楼宇阶段。 天翼物联推出智慧楼宇应用,为物业等管理单位提供安全监控、能源监控、智慧…

【DBN分类】基于哈里斯鹰算法优化深度置信网络HHO-DBN实现数据分类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

oracle学习篇(一)

oracle学习篇(一) 1 oracle属于大型数据库吗? 解答:是的,数据库按照负载量的规模可以分为一下几类 小型数据库:ACCESS 中型数据库:mysql 大型数据库(海量数据):oracle、db22 创建并使用户可用 2.0 前提 必须是要sys或者system这种需要有管理权限的才能进行用户的创建 普通…

链表反转,指定区间反转,k个一组反转---详解

牛客上的三道反转链表的题,入门题,反转链表有很多种做法,本来做第一题的时候是随便写了一种,然后后面发现我用的方法,在做第二题第三题的时候有点繁琐,所以就把三道题一起考虑了一下,选了一种相…

[附源码]Python计算机毕业设计二手图书回收销售网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

python3.9.0 windows环境搭建

第一步: 下载安装包:CNPM Binaries Mirror 执行exe安装。。。。。 第二步:升级pip 和 setuptools(避免在每一个虚拟环境中都要升级) python -m pip install --upgrade pip python -m pip install --upgrade setuptoo…

基于android音乐播放器的设计

本科毕业论文(设计)诚信声明 本人郑重声明:所呈交的毕业论文(设计),题目《………基于android音乐播放器的设计……………………………》是本人在指导教师的指导下,进行研究工作所取得的成果。对…

ChatGPT写Flask-Demo——有体验地址

ChatGPT中API的试用 最近ChatGPT智能AI很火,可以写代码,DEBUG,写简历等等 上去查看了一下,是可以调用API的,本着学习的态度就是用这个款AI辅助我写了一个demo(本人原来对flask只懂一点点) 目录0…

基于51单片机的数字电压表(ADC0832)(Proteus仿真+程序)

编号:29 基于51单片机的数字电压表(ADC0832) 功能描述: 本设计由51单片机最小系统ADC0832模块两路模拟量输入模块液晶1602显示模块 1、主控制器是AT89C82单片机 2、ADC0832模数转换器进行A/D转换,读取电压两路数据&a…

栅格瓦片和矢量瓦片

地图瓦片 地图瓦片的诞生 在以前没有瓦片的概念时,由于地图要素多、范围大等特点导致地图数据量很大,如果从浏览器可视化地图就对网络和数据渲染能力有高的要求,所以导致瓦片诞生以前,地图多在pc电脑中桌面软件使用。随着互联网…

【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)

前言 前面我们给大家介绍了基于LabVIEWYOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5。本次主要是和大家分享使用LabVIEW快速实现yolov5的物体识别,本博客中使用的智能工具包可到主页置顶博客LabVIEW AI视…

一个简单的MATLAB脚本——快速行进算法(FMM))

一个简单的MATLAB脚本——快速行进算法(FMM) 介绍快速行进算法(FMM)的简单MATLAB脚本,不到20行代码实现快速行进算法的运算结果,而且计算速度非常快。给了两个实例模型来说明计算结果。 文章目录一个简单的…

unicloud生成微信小程序分享码

一,方案 看了官方的文档,获取小程序码有三种,我采用的是第二种:生成数量不受限制的分享码。 对应的官方文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/qr-code/getUnlimitedQRCode.…

MySQL 锁

在之前的文章有多次提到,MySQL在数据更新和性能优化上会用到锁机制。我们在实际的应用中也经常会遇到锁相关的问题,即使很多时候我们并没有人为的为数据库添加锁,但还是会出现死锁的问题,这是因为在我们操作数据时MySQL隐式的帮我…

java UDP通信程序DatagramSocket数据发送

首先 我们先来了解一下 UDP 首先 他是一种不可靠的网络协议 他在通信的两端 各建立一个 Socke对象 但是他们只是 发送和接收数据的对象 发送端只管发送 不会顾及接收端是否接到 接收到只负责接收数据 而不会给出发送端反馈 因此对于UDP通信的双方而言 是有没什么 客户端和服务…

架构师进阶,微服务设计与治理的 16 条常用原则

今天将从存储的上一层「服务维度」学习架构师的第二项常用能力 —— 微服务设计与治理。 如何设计合理的微服务架构? 如何保持微服务健康运行? 这是我们对微服务进行架构设计过程中非常关注的两个问题。 本文对微服务的生命周期定义了七个阶段&#xf…

正大国际期货:为什么外盘期货顺势交易这么难

要回答“为什么趋势交易这么难?”需要先回答:“为什么交易?”。 你应该为了抓住赚取期望利润的机会而交易,为了长期持续赚钱的目的而交易,而不是为了赚得短期利润的喜悦而交易,也不是为了证明你的市场分析…

音频转文字怎么转?这些方法值得一试

在日常生活中我们经常会遇到要把音频转换成文字的情况,很多小伙伴还在使用传统的方法,一边播放一边记录。虽然这样能解决问题,但是需要花费很多时间,效率特别低。我们不妨尝试使用一些转换软件,这样就能节省很多时间了…

界面组件Kendo UI for Angular——让应用数据显示更直观!(二)

Kendo UI致力于新的开发,来满足不断变化的需求,通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for Angular是专用于Angular开发的专业级Angular组件,telerik致力于提供纯粹的高性能Angular UI组件&#xff0c…

Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOCX 转换为 Markdown

如今,Markdown ( MD ) 格式被广泛用于编写在线文章、博客和文档。但是,在大型文档的情况下,它的语法变得难以记忆和书写。为方便起见,您可以在 MS Word 中编写内容,然后将DOCX文件转换为 Markdown。为了以编程方式执行…