音视频开发常用工具

文章目录

  • 前言
  • 一、VLC 播放器
    • 1、简介
    • 2、下载
    • 3、VLC media player
    • 4、VLC 打开网络串流
    • 5、VLC 作为流媒体服务器
      • ①、搭建 RTSP 流媒体服务器
      • ②、新建播放器
  • 二、MediaInfo
    • 1、简介
    • 2、下载
    • 3、MediaInfo
      • ①、主界面
      • ②、主要功能特点
      • ③、使用方法
      • ④、Mediainfo 相关参数和含义简介
  • 三、FlvAnalyzer
    • 1、简介
    • 2、下载
    • 3、基本功能特点
    • 4、FlvAnalyzer
      • ①、主界面
      • ②、格式分析
      • ③、数据分析
      • ④、时间分析
      • ⑤、码率分析
      • ⑥、同步分析
  • 四、Elecard Stream Analyzer 码流分析工具
    • 1、简介
    • 2、下载
    • 3、码流
    • 4、使用
    • 5、特色介绍
    • 6、多码流
  • 五、FFmpeg
    • 1、简介
    • 2、FFmpeg 项目组成
    • 3、FFmpeg 组成
    • 4、使用 ffmpeg 的方式分为两种
    • 5、FFmpeg 命令行
    • 6、FFmpeg 下载及安装
      • ①、FFmpeg 下载
      • ②、安装
      • ③、测试
  • 测试视频素材下载


前言

我们在进行音视频开发过程中不可避免的需要使用一些工具进行协助开发,本文重点讲解音视频开发过程中常用工具以及常用功能。


一、VLC 播放器

1、简介

VLC 支持多种常见音视频格式,支持多种流媒体传输协议,也可当做本地流媒体服务器使用,功能十分强大。

2、下载

官网下载地址: https://www.videolan.org/

或者在电脑的应用商店下载也可以
在这里插入图片描述

3、VLC media player

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。

VLC 的全名是 Video Lan Client,是一个开源的、跨平台的视频播放器。

VLC 支持大量的音视频传输、封装和编码格式,下面给出一个简要的不完整的列表:

  • 操作系统: Windows、 WinCE、 Linux、 MacOSX、 BEOS、 BSD
  • 访问形式: 文件、 DVD/VCD/CD、 http、 ftp、 mms、 TCP、 UDP、 RTP、 IP 组播、 IPv6、 rtsp
  • 编码格式: MPEG*、 DIVX、 WMV、 MOV、 3GP、 FLV、 H.263、 H.264、 FLAC
  • 视频字幕: DVD、 DVB、 Text、 Vobsub
  • 视频输出: DirectX、 X11、 XVideo、 SDL、 FrameBuffer、 ASCII
  • 控制界面: WxWidgets、 QT4、 Web、 Telnet、 Command line
  • 浏览器插件: ActiveX、 Mozilla(firefox)

4、VLC 打开网络串流

http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8

媒体 -> 打开网络串流
在这里插入图片描述
将上面的网络复制并粘贴到此处,并点击播放
在这里插入图片描述
可以看到播放效果请添加图片描述

5、VLC 作为流媒体服务器

VLC 的功能很强大, 它不仅仅是一个视频播放器, 也可作为小型的视频服务器, 更可以一边播放一边转码, 把视频流发送到网络上。

①、搭建 RTSP 流媒体服务器

媒体 -> 流
在这里插入图片描述
添加一个本地的 mp4 格式视频文件,再点击串流
在这里插入图片描述
点击下一个
在这里插入图片描述

选择 RTSP,再点击添加
在这里插入图片描述
例如我这里指定一个 RTSP 默认的 554 端口,路径为 /test,再点击下一个
在这里插入图片描述
配置文件选择 Video - H.264 + MP3 (TS)
在这里插入图片描述
TS 流是一个一个的片段,在任意时刻我们可以找到同步头,可以播放出来,这是 TS 流的好处

可以看到如下内容,并点击流
在这里插入图片描述

  • vcodec=h264:H264 编码
  • vb=800:视频的比特率
  • acodec=mpga:音频的编码
  • ab=128:音频的比特数
  • channels=2:声道数
  • samplerate=44100:采样率
  • rtsp://:554/test:播放路径

rtp 是传输协议,rtsp 是控制协议

可以看到进度条开始动了,这样一个 RTSP 流媒体服务器就搭建好了
在这里插入图片描述

②、新建播放器

再打开一个 VLC media player
媒体 -> 打开网络串流,将上面的播放路径复制到 URL 处,并点击播放
在这里插入图片描述
可以看到视频文件正在被播放
请添加图片描述
左边是 VLC 作为流媒体服务器,作为推流,右边是 VLC 播放器打开网络串流,是一个小型的播放器

可以打开多个播放器打开网络串流

二、MediaInfo

1、简介

MediaInfo 用来分析视频和音频文件的编码和内容信息。

①、使用 MediaInfo 可以获得多媒体文件的哪些信息?

  • 内容信息: 标题, 作者, 专辑名, 音轨号, 日期, 总时间……
  • 视频: 编码器, 长宽比, 帧频率, 比特率……
  • 音频: 编码器, 采样率, 声道数, 语言, 比特率……
  • 文本: 语言和字幕
  • 段落: 段落数, 列表

②、MediaInfo 支持哪些文件格式?

  • 视频:MKV,OGM,AVI,DivX,WMV,QuickTime,Real,MPEG-1,MPEG-2,MPEG-4,DVD (VOB)…
  • (编码器:DivX,XviD,MSMPEG4,ASP,H.264,AVC…)
  • 音频:OGG,MP3,WAV,RA,AC3,DTS,AAC,M4A,AU,AIFF…
  • 字幕:SRT,SSA,ASS,SAMI…

2、下载

官网下载地址:https://mediaarea.net/en/MediaInfo

或者在电脑的应用商店下载也可以
在这里插入图片描述

3、MediaInfo

①、主界面

主页面如下图所示:
在这里插入图片描述

②、主要功能特点

支持众多视频和音频文件格式

多种查看方式: 文本, 表格, 树形图, 网页……
在这里插入图片描述
自定义查看方式

信息导出: 文本, CSV, HTML……

③、使用方法

如果是查看少数媒体文件的信息, 直接把文件拖入 Mediainfo 应用界面即可,然后就会直接显示出文件的相关信息。
在这里插入图片描述
Mediainfo 也可以直接查看整个文件夹下中的媒体文件信息, 可以点击界面左侧中间的图标即可。
在这里插入图片描述
Mediainfo 能够查看视频、 音频、 图片的格式信息。

④、Mediainfo 相关参数和含义简介

准备一个 mp4 文件的视频文件将其拖入到主界面,并且以 HTML 方式查看,此处先把视图切换为 HTML(View 菜单 -> HTML)

可以看出,主要包括三个部分的参数,分别是: General、 Video、 Audio。

General 主要是视频封装格式的信息,包括:文件大小、文件时长、比特率、编码时间等。
在这里插入图片描述
Video 主要是视频编码的相关信息,包括:编码器、Profile & Level、是否使用算术熵编码、比特率、视频文件大小、视频尺寸、帧率模式、帧率、色彩空间、扫描类型(逐行/隔行)、编码设置等
在这里插入图片描述
Audio 主要是音频编码的相关信息,包括:格式、声道数、编码格式、Profile、时长、比特率、是否有损压缩、音频的帧率等信息。
在这里插入图片描述

三、FlvAnalyzer

1、简介

直播推流的时候需要用到 RTMP 的视频数据格式。RTMP 的视频格式和 FLV 相似,通过查看 FLV 的格式文档,可以通过分析 FLV 协格式来解析 RTMP 格式。

RTMP 中的数据就是由 FLV 的 TAG 中的数据区构成。FLV 是流媒体封装格式,可以将其数据看为二进制字节流。

总体上看,FLV 包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的 TagTag Size 对组成,如下图所示。
在这里插入图片描述

2、下载

下载链接:flvAnalyser v0.1.2.005

3、基本功能特点

FlvAnalyser 是一款强大的 flv 文件分析工具,包括以下基本功能特点:

  • 文件格式分析
  • 数据分析: Tag 列表, 16 进制分析
  • 时间戳分析
  • 码率分析
  • 音视频同步分析
  • 日志记录
  • 语法指南(FLV 基本语法)
  • 视频、 音频 ES 提取存文件;
  • 时间信息提取存文件;

4、FlvAnalyzer

①、主界面

在这里插入图片描述

②、格式分析

file -> open file

这里和上面的讲过的 Mediainfo 很相似
在这里插入图片描述

③、数据分析

在这里插入图片描述

④、时间分析

在这里插入图片描述

⑤、码率分析

在这里插入图片描述

⑥、同步分析

在这里插入图片描述

上面最常用的是格式分析数据分析

四、Elecard Stream Analyzer 码流分析工具

1、简介

Elecard Stream Analyzer 是一款简单小巧的码流分析工具,通过该软件,用户可以快速的分析查看视频序列码流;用户只需将视频文件导入软件内,系统就会自动帮您分析文件,分析后就会显示视频码的文件大小、码流类型、数据包数等内容了

2、下载

链接:https://pan.baidu.com/s/1hMGBTPB58xYTmYysPwlrCA
提取码:ykhf

3、码流

码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。

同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。

4、使用

打开一个 aac 文件,查看相关编解码信息
在这里插入图片描述

5、特色介绍

  • 显示和保存流摘要和图片信息
  • 显示的解码,预测和未经过滤的帧数据(YUV 和单机)
  • 显示剩余,转换和反量化系数
  • 保存的解码,预测,未经过滤和残余信息
  • 显示 VPS,SPS,PPS 的片头与偏移和位大小指示(如标准文档中)
  • 显示的编码树组数据:位置,分片索引,瓷砖指数,大小,编码,预测(MV,MVD及 MV 候选人),变换单元信息
  • 切片和小块边界,分区,运动矢量,种类,比特大小,量化的可视化
  • 通过图表栏或缩略图导航
  • 显示器内部的视频流比特分配。能够选择的比特流元素的显示
  • 流导航和显示 I,P,B,IP 和关键帧模式
  • 显示参考帧的
  • 十六进制查看器
  • 流浏览器 - 文件内容(头层)呈现在文本模式下
  • 查看参考原始数据
  • 指标计算
  • 参照原始数据可视化比较(温度,减,比较,块 PSNR 模式)

6、多码流

多码流技术是通过在编码过程中同时产生多种不同码流及分辨率的流媒体数据, 根据用户实际网络带宽条件为之自动分配相对最佳解码画质的解决方案。

五、FFmpeg

这里仅对 FFmepg 做简要介绍,因其内容庞大,具体部分准备放到后面讲解

1、简介

ffmpeg 是一个跨平台的音视频处理库, 为了跨平台那么就需要编译出适用于各个平台的 ffmpeg 库。

FFmpeg 是一套可以用来记录、 转换数字音频、 视频, 并能将其转化为流的开源计算机程序。它提供了录制、 转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库 libavcodec, 为了保证高可移植性和编解码质量,libavcodec 里很多 code 都是从头开发的。

2、FFmpeg 项目组成

  • libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构
  • libavcodec:用于各种类型声音/图像编解码;
  • libavutil:包含一些公共的工具函数;
  • libswscale:用于视频场景比例缩放、色彩映射转换;
  • libpostproc:用于后期效果处理;

①、ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等
②、ffsever:一个 HTTP 多媒体即时广播串流服务器;
③、ffplay:是一个简单的播放器,使用 ffmpeg 库解析和解码,通过 SDL 显示;

3、FFmpeg 组成

官网介绍 FFMPEG 是一个多媒体框架,其包含了多个模块库:AVFormat,AVCodec,AVFilter,AVDevice,AVUtil 等,并且提供了基于这些库的三个命令行工具: ffmpeg, ffplay, ffprobe。

4、使用 ffmpeg 的方式分为两种

  • 一种方式是直接使用 ffmpeg 提供的这三个命令行工具来进行多媒体处理;
  • 另一种是使用 ffmpeg 封装的这些库进行二次开发

5、FFmpeg 命令行

  • 列出支持的格式
  • 剪切一段媒体文件
  • 提取一个视频文件中的音频文件
  • 从 MP4 文件中抽取视频流导出为裸的 H264 数据
  • 视频静音, 即只保留视频 -an,-vn
  • 使用 AAC 音频数据和 H264 视频生成 MP4 文件
  • 音频格式转换
  • 从 WAV 音频文件中导出 PCM 裸数据
  • 将一个 MP4 的文件转换为一个 GIF 动图
  • 使用一组图片生成 gif
  • 淡入效果器使用
  • 将两路声音合并,比如加背景音乐
  • 为视频添加水印效果
  • 视频提亮效果器
  • 视频旋转效果器的使用
  • 视频裁剪效果器的使用
  • 将一段视频推送到流媒体服务器上
  • 将流媒体服务器上的流 dump 到本地
  • 将两个音频文件以两路流的形式封装到一个文件中

6、FFmpeg 下载及安装

①、FFmpeg 下载

官方下载地址:https://ffmpeg.org/download.html
在这里插入图片描述
选择 windows build from gyan.dev
在这里插入图片描述
选择其中一个进行下载
在这里插入图片描述

②、安装

<1>、下载好解压到本地目录 D:\FFmpeg 下
在这里插入图片描述
<2>、设置环境变量
此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统环境变量 -> PATH -> 编辑
在这里插入图片描述
新增 D:\FFmpeg\ffmpeg-6.0-essentials_build\bin 到环境变量中
在这里插入图片描述

③、测试

<1>、 查看 FFmpeg 的版本
cmd 中输入 ffmpeg -version 检查一下是否安装成功
在这里插入图片描述
这个回显说明安装成功

<2>、视频格式转换测试
我们再做一个测试将 mp4 格式文件转换成 flv 格式文件
D:\Work\test 目录下有一个 mp4 文件
在这里插入图片描述
输入以下命令

ffmpeg -i SampleVideo_1280x720_20mb.mp4 -c copy -f flv SampleVideo_1280x720_20mb.flv

在这里插入图片描述
完整的回显信息

D:\Work\test>ffmpeg -i SampleVideo_1280x720_20mb.mp4 -c copy -f flv SampleVideo_1280x720_20mb.flv
ffmpeg version 6.0-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberbandlibavutil      58.  2.100 / 58.  2.100libavcodec     60.  3.100 / 60.  3.100libavformat    60.  3.100 / 60.  3.100libavdevice    60.  1.100 / 60.  1.100libavfilter     9.  3.100 /  9.  3.100libswscale      7.  1.100 /  7.  1.100libswresample   4. 10.100 /  4. 10.100libpostproc    57.  1.100 / 57.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'SampleVideo_1280x720_20mb.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41creation_time   : 1970-01-01T00:00:00.000000Zencoder         : Lavf53.24.2Duration: 00:01:57.31, start: 0.000000, bitrate: 1436 kb/sStream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1048 kb/s, 25 fps, 25 tbr, 12800 tbn (default)Metadata:creation_time   : 1970-01-01T00:00:00.000000Zhandler_name    : VideoHandlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)Metadata:creation_time   : 1970-01-01T00:00:00.000000Zhandler_name    : SoundHandlervendor_id       : [0][0][0][0]
Output #0, flv, to 'SampleVideo_1280x720_20mb.flv':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf60.3.100Stream #0:0(und): Video: h264 (Main) ([7][0][0][0] / 0x0007), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 1048 kb/s, 25 fps, 25 tbr, 1k tbn (default)Metadata:creation_time   : 1970-01-01T00:00:00.000000Zhandler_name    : VideoHandlervendor_id       : [0][0][0][0]Stream #0:1(und): Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000 Hz, 5.1, fltp, 383 kb/s (default)Metadata:creation_time   : 1970-01-01T00:00:00.000000Zhandler_name    : SoundHandlervendor_id       : [0][0][0][0]
Stream mapping:Stream #0:0 -> #0:0 (copy)Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 2932 fps=0.0 q=-1.0 Lsize=   20659kB time=00:01:57.29 bitrate=1442.9kbits/s speed=1.27e+03x
video:15013kB audio:5497kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.726677%D:\Work\test>

此刻再看 D:\Work\test 目录下多了一个名为 SampleVideo_1280x720_20mb.flv 的文件
在这里插入图片描述


测试视频素材下载

各种格式,MP4, flv, mkv, 3gp 视频下载地址:
https://www.sample-videos.com/index.php#sample-mp4-video
https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/audio-samples.html


我的qq:2442391036,欢迎交流!


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

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

相关文章

Redis 哨兵(sentinel)

1. 是什么一 1.1 吹哨人巡查监控后台master主机是否故障&#xff0c;如果故障了根据投票数自动将某一个从库转换为新主库&#xff0c;继续对外服务 1.2 作用 俗称&#xff0c;无人值守运维 哨兵的作用&#xff1a; 1、监控redis运行状态&#xff0c;包括master和slave 2、当m…

下行抢占指示 DCI format 2_1

这部分R17和R15基本内容一样&#xff0c;只是有写细节描述略有区别&#xff0c;这里就以R17版本的协议看下downlinkPreemption&#xff0c;即DCI format 2_1有关内容。 R15支持eMBB和URLLC服务。 由于URLLC业务是优先级较高的业务&#xff0c;当无线资源不足时&#xff0c;已经…

【LeetCode-中等题】200. 岛屿数量

文章目录 题目方法一&#xff1a;深度优先搜索 dfs方法二&#xff1a;广度优先搜索 bfs方法三&#xff1a;&#xff08;重点掌握&#xff09;并查集 题目 方法一&#xff1a;深度优先搜索 dfs 思路&#xff1a;让一个扫描指针扫描每一个格子&#xff0c;然后每扫到一个为1的格…

基于Gin框架的HTTP接口限速实践

在当今的微服务架构和RESTful API主导的时代&#xff0c;HTTP接口在各个业务模块之间扮演着重要的角色。随着业务规模的不断扩大&#xff0c;接口的访问频率和负载也随之增加。为了确保系统的稳定性和性能&#xff0c;接口限速成了一个重要的话题。 1 接口限速的使用场景 接口…

Qt —UDP通信QUdpSocket 简介 +案例

1. UDP通信概述 UDP是无连接、不可靠、面向数据报&#xff08;datagram&#xff09;的协议&#xff0c;可以应用于对可靠性要求不高的场合。与TCP通信不同&#xff0c;UDP通信无需预先建立持久的socket连接&#xff0c;UDP每次发送数据报都需要指定目标地址和端口。 QUdpSocket…

springboot配置ym管理各种日记(log)

1&#xff1a;yml配置mybatis_plus默认日记框架 mybatis-plus:#这个作用是扫描xml文件生效可以和mapper接口文件使用&#xff0c;#如果不加这个,就无法使用xml里面的sql语句#启动类加了MapperScan是扫描指定包下mapper接口生效&#xff0c;如果不用MapperScan可以在每一个mapp…

docker常用中间件安装

文章目录 1、前言2、中间件安装2.1、mysql2.2、gitlab容器2.3、nacos2.4、redis2.5、xxljob2.6、zipkin2.7、sentinel2.8、seata2.8.1、获取镜像2.8.2、运行容器并获取配置 2.9、rockerMQ2.9.1、rockerMQ-namesrv2.9.2、rockerMQ-broker2.9.3、rockerMQ-console 2.10、jenkins2…

每日一题(链表中倒数第k个节点)

每日一题&#xff08;链表中倒数第k个节点&#xff09; 链表中倒数第k个结点_牛客网 (nowcoder.com) 思路: 如下图所示&#xff1a;此题仍然定义两个指针&#xff0c;fast指针和slow指针&#xff0c;假设链表的长度是5&#xff0c;k是3&#xff0c;那么倒数第3个节点就是值为…

【进阶篇】MySQL分库分表详解

文章目录 0. 前言1. 垂直分库分表2. 水平分库分表 1. 理解过程及实现方案问题讨论衍生出分库分表策略借助成熟组件使用分库分表阶段完成后面临的问题1. 异地多活问题2. 数据迁移问题3. 分布式事务问题4. join查询的问题 分库分表的策略实现示例 2. 参考文档 0. 前言 假设有一个…

windows笔记本远程连接如何打开任务管理器?

参考素材&#xff1a; https://jingyan.baidu.com/article/8275fc86a97f5207a03cf6cd.html https://www.anyviewer.cn/how-to/ctrl-alt-delete-remote-desktop-6540.html 网上查了很多方法&#xff0c;都说ctrlaltend可以解决这个问题。 但是笔记本键盘上没有end键。 继续查了一…

【数学建模】清风数模正课5 相关性分析

相关系数 相关性分析的关键是计算相关系数&#xff0c;在本节课中将会介绍两种常用的相关系数&#xff1a;皮尔逊相关系数&#xff08;Pearson&#xff09;和斯皮尔曼相关系数&#xff08;Spearman&#xff09;。 它们可以用来衡量两个变量间相关性的大小&#xff0c;对于不同…

Android 13 - Media框架(9)- NuPlayer::Decoder

这一节我们将了解 NuPlayer::Decoder&#xff0c;学习如何将 MediaCodec wrap 成一个强大的 Decoder。这一节会提前讲到 MediaCodec 相关的内容&#xff0c;如果看不大懂可以先跳过此篇。原先觉得 Decoder 部分简单&#xff0c;越读越发现自己的无知&#xff0c;Android 源码真…

安卓 tcp 客户端

安卓 tcp 客户端 Server:8888 是Qt 写的Tcp 服务器 ip 是 192.168.2.103 port是8888 安卓手机运行 kotlin 语法的Tcp Client &#xff0c;连接&#xff0c;收发数据 效果如下图 Tcpclient package com.example.myapplicationimport android.os.Handler import android.os.Loo…

Go操作各大消息队列教程(RabbitMQ、Kafka)

Go操作各大消息队列教程 1 RabbitMQ 1.1 概念 ①基本名词 当前市面上mq的产品很多&#xff0c;比如RabbitMQ、Kafka、ActiveMQ、ZeroMQ和阿里巴巴捐献给Apache的RocketMQ。甚至连redis这种NoSQL都支持MQ的功能。 Broker&#xff1a;表示消息队列服务实体Virtual Host&#x…

深入探讨梯度下降:优化机器学习的关键步骤(一)

文章目录 &#x1f340;引言&#x1f340;什么是梯度下降&#xff1f;&#x1f340;损失函数&#x1f340;梯度(gradient)&#x1f340;梯度下降的工作原理&#x1f340;梯度下降的变种&#x1f340;随机梯度下降&#xff08;SGD&#xff09;&#x1f340;批量梯度下降&#xf…

HTML5+CSS3+JS小实例:科技感满满的鼠标移动推开粒子特效

实例:科技感满满的鼠标移动推开粒子特效 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport&qu…

回归拟合 | 灰狼算法优化核极限学习机(GWO-KELM)MATLAB实现

这周有粉丝私信想让我出一期GWO-KELM的文章&#xff0c;因此乘着今天休息就更新了(希望不算晚) 作者在前面的文章中介绍了ELM和KELM的原理及其实现&#xff0c;ELM具有训练速度快、复杂度低、克服了传统梯度算法的局部极小、过拟合和学习率的选择不合适等优点&#xff0c;而KEL…

HFSS 3维曲线导入

HFSS 3维曲线导入 简介环境参考代码使用结果 简介 如图一所示&#xff0c;CST中可以通过导入和到出由任意点组成的曲线&#xff0c;但是HFSS中貌似不能导入&#xff08;如图二所示&#xff09;&#xff0c;如果我们要将matlab的产生的曲线的点的数据导入特变麻烦&#xff0c;特…

测试验证平台

测试验证平台 1.功能说明&#xff1a; 模拟智能终端车端数据采集及上报的功能&#xff0c;提供数据管理平台的模拟和验证功能。 2.系统组成&#xff1a; 系统示意图 功能要求&#xff1a; 本地电脑实现Imx6配置功能&#xff0c;能够通过运行不同的脚本&#xff0c;模拟不…

大规模网络爬虫系统架构设计 - 云计算和Docker部署

在大规模网络爬虫系统中&#xff0c;合理的架构设计和高效的部署方式是确保系统稳定性和可扩展性的关键。本文将介绍如何利用云计算和Docker技术进行大规模网络爬虫系统的架构设计和部署&#xff0c;帮助你构建高效、可靠的爬虫系统。 1、架构设计原则 在设计大规模网络爬虫系…