音视频开发常用工具
文章目录
- 前言
- 一、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)两部分,其中文件体由一系列的 Tag 及 Tag 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,欢迎交流!
相关文章:
音视频开发常用工具
文章目录 前言一、VLC 播放器1、简介2、下载3、VLC media player4、VLC 打开网络串流5、VLC 作为流媒体服务器①、搭建 RTSP 流媒体服务器②、新建播放器 二、MediaInfo1、简介2、下载3、MediaInfo①、主界面②、主要功能特点③、使用方法④、Mediainfo 相关参数和含义简介 三、…...
【leetcode 力扣刷题】字符串匹配之经典的KMP!!!
字符串子串匹配相关 28. 找出字符串中第一个匹配项的下标暴力求解KMP 459. 重复的子字符串暴力求解在SS中找S 以下是能用KMP求解的算法题,KMP是用于字符串匹配的经典算法【至今没学懂………啊啊啊】 28. 找出字符串中第一个匹配项的下标 题目链接:28. 找…...
C#的反射机制
介绍 当谈到C#的反射机制时,它提供了一种动态地在运行时获取和操作类型信息的能力。通过反射,可以在编译时未知的情况下,使用类型信息来创建对象、调用方法、访问属性和字段等。下面是一些反射机制的重要概念和用法: Type 类型&a…...
浅谈城市轨道交通视频监控与AI视频智能分析解决方案
一、背景分析 地铁作为重要的公共场所交通枢纽,流动性非常高、人员大量聚集,轨道交通需要利用视频监控系统来实现全程、全方位的安全防范,这也是保证地铁行车组织和安全的重要手段。调度员和车站值班员通过系统监管列车运行、客流情况、变电…...
【LeetCode每日一题合集】2023.8.14-2023.8.20(⭐切披萨3n块披萨)
文章目录 617. 合并二叉树833. 字符串中的查找与替换(模拟)2682. 找出转圈游戏输家(模拟)1444. 切披萨的方案数(⭐⭐⭐⭐⭐)解法——从递归到递推到优化(二维前缀和记忆化搜索) 1388…...
通过ref 操作dom , 点击按钮后跳转到页面指定图片位置
滚动图片到视图 定义了一个名为 scrollToIndex 的函数,它接受一个参数 index。当按钮被点击时,这个函数会被调用,并根据传入的 index 值来滚动到对应的图片。 以 alt 来标记图片位置 alt“Tom” import { useRef } from "react";c…...
QT 设置应用程序图标
1.下载xx.ico图标:ico网址 2.在线PNG转换ICO:png在线转换ico 3.添加图标资源 1)新建文件路径 2)添加图片资源 3)在 .pro文件里面添加图片 4)将xx.ico放到工程目录,编译完可以看到xx.exe的图标…...
牛客网刷题
牛客网刷题-C&C 2023年9月3日15:58:392023年9月3日16:37:01 2023年9月3日15:58:39 2023年9月3日16:37:01 整型常量和实型常量的区别...
ES6核心语法
主要记录学习ES6的语法 1、let和const 同es5中的var来声明变量。三者的区别分别是: var声明的变量存在变量提升,先声明未赋值,值为undefined。且变量声明可在函数块内使用。变量声明之后可以重复声明let声明的变量无变量提升。作用域是块级…...
python 之import与from import 导入库的解析与差异
文章目录 1. **使用import导入整个模块**:2. **使用from import导入特定内容**:注意事项别名的使用 在Python中,import和from import是用于导入模块中内容的两种不同方式。下面详细介绍它们的用法和差异: 1. 使用import导入整个模…...
python实现MQTT协议(发布者,订阅者,topic)
python实现MQTT协议 一、简介 1.1 概述 本文章针对物联网MQTT协议完成python实现 1.2 环境 Apache-apollo创建brokerPython实现发布者和订阅者 1.3 内容 MQTT协议架构说明 : 利用仿真服务体会 MQTT协议 针对MQTT协议进行测试 任务1:MQTT协议应…...
2023年09月03日-----16:58
协同过滤推荐和矩阵分解本质上有什么不同?协同过滤推荐和矩阵分解是两种推荐系统方法,它们在某些方面有相似之处,但也有一些本质不同之处。 基本原理: 协同过滤推荐:协同过滤是一种基于用户行为数据的推荐方法,它依赖于用户-物品交互数据,如用户的评分或点击历史。协同过…...
HTTP状态码504(Gateway Timeout)报错原因分析和解决办法
文章目录 504报错原因分析一、用户角度1. 代理服务器问题2. 网络问题 二、网站管理员角度1. 服务器负载过重2. 网关配置问题3. 目标服务器响应慢4. IIS/nginx/apache服务关闭5. 维护或故障6. 数据库的慢处理也会导致504 用户角度可以采取哪些措施解决504错误1. 刷新页面2. 检查…...
《凤凰架构》第三章——事务处理
前言 由于一些地方原文感觉不太清楚,有些地方用小林coding的文章代替。 总结 事务处理主要的目的就是要让数据在各种条件下,最终的运行结果都能符合你的期望。要达成这个目标有三点需要满足:原子性(业务要么同时成功࿰…...
音视频添 加水印
一、文字水印 在视频中增加文字水印需要准备的条件比较多,需要有文字字库处理的相关文件,在编译FFmpeg时需要支持FreeType、FontConfig、iconv,系统中需要有相关的字库,在FFmpeg中增加纯字母水印可以使用drawtext滤镜进行支持&am…...
使用Python的requests库与chatGPT进行通信
前言 在人工智能领域,自然语言处理模型如OpenAI GPT-3.5 Turbo具有广泛的应用。虽然官方提供了Python库来与这些模型进行交互,但也有一些人更喜欢使用requests库来自定义请求和处理响应,比如现在很多第三方LLM都提供了与chatGPT类似的http请…...
SASS常用内置函数
1,math 引入:use "sass:math"; 常用函数: ceil($number) - 向上取整floor($number) - 向下取整round($number) - 四舍五入max($number...) - 比较若干数值并取最大值min($number...) - 比较若干数值并取最小值random() - 取0~1之…...
2023年05月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
C/C++编程(1~8级)全部真题・点这里 第1题:怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往…...
Emmet 使用笔记小结
Emmet 使用笔记小结 最近在跟视频走 CSS 的教程,然后要写很多的 HTML 结构,就想着总结一下 Emmet 的语法。 Emmet 是一个工具可以用来加速 HTML 和 CSS 的开发过程,不过 emmet 只支持 HTML & XML 文件结构,所以我个人觉得对…...
如何使用Puppeteer进行新闻网站数据抓取和聚合
导语 Puppeteer是一个基于Node.js的库,它提供了一个高级的API来控制Chrome或Chromium浏览器。通过Puppeteer,我们可以实现各种自动化任务,如网页截图、PDF生成、表单填写、网络监控等。本文将介绍如何使用Puppeteer进行新闻网站数据抓取和聚…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
