音视频剪辑|剪辑神器FFMPEG的详细介绍和一些基本的参数介绍

FFmpeg的介绍
 

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。 FFmpeg是在 Linux 下开发出来的,但它可以在包括 Windows 在内的大多数操作系统中编译。

这个项目最早由 Fabrice Bellard 发起,2004年至2015年间由 Michael Niedermayer 主 要负责维护。许多 FFmpeg 的开发人员都来自 MPlayer 项目,而且当前 FFmpeg 也是放在 MPlayer 项目组的服务器上。项目的名称来自 MPEG 视频编码标准 ,前面的 "FF" 代表 "Fast Forward" ,也就是快速转换。
FFMPEG的主要特点:

  1. 多种文件格式的支持:FFmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的;它还具有高度的便携性,易用性,FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows、BSDs、Solaris 等各种构建环境、机器架构和配置下编译、运行,并通过测试基础设施 FATE,当然,某些加密格式暂时还无能为力,例如mflac格式的文件
  2. 各种文件格式之间自由的转换:ffmpeg 可以轻而易举的在不同媒体格式之间进行自由转换了。你只需要指明输入和输出文件名就行了, ffmpeg 会从后缀名猜测格式,这个方法同时适用于视频和音频以及图片文件。例如可以将摄录下的视频avi等转成现在主流的视频网站所采用的flv格式,可以快速将音视频分解为帧图片,也可以将一系列图片合成为音视频文件等等,这使得文件格式的转换十分自由,简单
  3. 应用广泛:可用于短视频剪辑;可用于配合人工智能框架深度开发,实现智能识图,特征搜寻等等;可进行各种音视频资源的翻录,项目的demo演示;直播领域的实时推拉流;图片和音视频素材库之间的转换等等应用
  4. 易于开发:含 libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample等程序集,可以被程序开发者调用使用,先进的 音频/视频编解码库 libavcodec,为了保证高可移植性和编解码质量, libavcodec 里很多 code 都是 从头开发的;还有 ffmpeg、ffplay 和 ffprobe等可执行程序,可以被用户直接使用,进行调试开发工作



开发库:

  • x264 编码H.264视频,编译参数--enable-gpl --enable-libx264
  • fdk-aac 编码AAC音频,编译参数--enable-libfdk-aac
  • libvpx VP8/VP9视频编码器,编译参数--enable-libvpx
  • libvorbis 编码Vorbis音频,需要libogg。编译参数--enable-libvorbis
  • libopus 编码Opus音频。
  • LAME 编码MP3音频,编译参数--enable-libmp3lame
  • libass 字幕渲染器,编译参数--enable-libass

主程序:

  • ffmpeg.exe:是一个处理媒体文件的命令行工具 (command line based) ,主要用于对音视频进行处理,比如说剪切、抽取视频、抽取音频、增加贴纸水印,抽帧,加帧等等,音视频编解码工具(类似爱剪辑 格式工厂),并且因为他是开源的,很多知名的工具如 VLC,YouTube, iTunes 等等,都是基于ffmpeg开发出来的。也有许多为他定制UI的视频编辑器Linux video editors。
  • ffplay.exe:ffplay主要用于播放视频,几乎支持所有的本地视频播放,还能支持流媒体等网络视频播放,甚至还能播放YUV视频,这点在开发过程中非常好用。Simple media player 简单媒体播放器
  • ffprobe.exe:ffprobe主要用于查看音视频文件格式,比如说你要将一个音视频文件的所有信息以JSON格式输出,ffprobe这个命令行就很便捷,而这一点结合人工智能分析,重构音视频是非常重要的



ffmpeg的参数介绍:

查询参数:

什么情况下,使用这些查询命令呢?比如你正在使用 ffmpeg 编码时,结果报错了,你首先需要使用这个命令查看一下当前 ffmpeg 是否支持目标编码器。这里你可能会问,ffmpeg没有统一的版本吗?为什么支持的编码器还不一样?官网正式的 ffmpeg 版本肯定是统一的,但是实际项目我们不可能使用所有的编码器、解码器、滤镜等组件,一般会进行裁剪,也就是源码编译,并且适当的裁剪会提高服务器的安全性


 

  • -buildconf 

例如,下面这个是我的Linux编译参数,非常简单的编译

[root@centos10 ~]# ffmpeg -hide_banner -buildconf configuration:--enable-gpl--enable-ffplay
  • -formats:列出支持的文件格式,该命令列出了ffmpeg所有支持的文件格式,音视频和图片都包括
  • -codecs:列出支持的编解码器。
[root@centos10 ~]# ffmpeg  -hide_banner -codecs
Codecs:D..... = Decoding supported ###只支持解码.E.... = Encoding supported ###只支持编码..V... = Video codec  ###可支持视频编解码..A... = Audio codec ###可支持音频编解码..S... = Subtitle codec  ###字幕编解码..D... = Data codec  ##数据解码器..T... = Attachment codec  ###附件编解码器,没用过,也没了解...I.. = Intra frame-only codec ###独立帧编码器,每一帧都可以单独编辑,没用过,也没了解....L. = Lossy compression  ###有损压缩.....S = Lossless compression ###无损压缩-------
###
  • -decoders:列出支持的解码器。

Linux下:

[root@centos10 ~]# ffmpeg -hide_banner -decoders
Decoders:V..... = Video  #视频解码用A..... = Audio  #音频解码用S..... = Subtitle ##字幕解码用.F.... = Frame-level multithreading ##..S... = Slice-level multithreading...X.. = Codec is experimental....B. = Supports draw_horiz_band.....D = Supports direct rendering method 1------V....D 012v                 Uncompressed 4:2:2 10-bitV....D 4xm                  4X MovieV....D 8bps                 QuickTime 8BPS videoV....D aasc                 Autodesk RLE

Windows下:

C:\Users\Administrator>ffmpeg -hide_banner -decoders|more
Decoders:V..... = VideoA..... = AudioS..... = Subtitle.F.... = Frame-level multithreading..S... = Slice-level multithreading...X.. = Codec is experimental....B. = Supports draw_horiz_band.....D = Supports direct rendering method 1 ##可抽帧???------V....D 012v                 Uncompressed 4:2:2 10-bitV....D 4xm                  4X MovieV....D 8bps                 QuickTime 8BPS videoV....D aasc                 Autodesk RLEV....D agm                  Amuse Graphics MovieVF...D aic                  Apple Intermediate CodecV....D alias_pix            Alias/Wavefront PIX imageV....D amv                  AMV VideoV....D anm                  Deluxe Paint AnimationV....D ansi                 ASCII/ANSI artVF...D apng                 APNG (Animated Portable Network Graphics) imageV....D arbc                 Gryphon's Anim CompressorV....D argo                 Argonaut Games VideoV....D asv1                 ASUS V1V....D asv2                 ASUS V2V....D aura                 Auravision AURAV....D aura2                Auravision Aura 2V..... libdav1d             dav1d AV1 decoder by VideoLAN (codec av1)V....D libaom-av1           libaom AV1 (codec av1)

 

  • -encoders:列出支持的编码器。
  •  -muxers:列出支持解复用的编码器
  • demuxers:列出支持复用的编码器
  • -protocols:列出支持的协议。

Linux下:tcp,rtmp,rtmps,rtmpt,ftp,hls 等等协议

[root@centos10 ~]# ffmpeg -hide_banner -protocols
Supported file protocols:
Input:asynccacheconcatconcatfcryptodatafdffrtmphttpfileftpgopherhlshttphttpproxymmshmmstpipertmprtmptrtpsrtpsubfiletcpudpudpliteunix
Output:cryptofdffrtmphttpfileftpgopherhttphttpproxyicecastmd5pipeprompegrtmprtmptrtpsrtpteetcpudpudpliteunix

 Windows下:可以看到tcp,rtmp,rtmps,rtmpt,ftp,hls 等等协议

C:\Users\Administrator>ffmpeg -hide_banner -protocols
Supported file protocols:
Input:asyncbluraycacheconcatconcatfcryptodatafdffrtmpcryptffrtmphttpfileftpgophergophershlshttphttpproxyhttpsmmshmmstpipertmprtmpertmpsrtmptrtmptertmptsrtpsrtpsubfiletcptlsudpudpliteristsrtsftpzmqipfsipns
Output:cryptofdffrtmpcryptffrtmphttpfileftpgophergophershttphttpproxyhttpsicecastmd5pipeprompegrtmprtmpertmpsrtmptrtmptertmptsrtpsrtpteetcptlsudpudpliteristsrtsftpzmq
  • -bsfs:列出支持的比特流过滤器。

Linux:

[root@centos10 ~]# ffmpeg -hide_banner -bsfs|more
Bitstream filters:
aac_adtstoasc
av1_frame_merge
av1_frame_split
av1_metadata
chomp
dump_extra
dca_core
dts2pts
dv_error_marker
eac3_core
extract_extradata
filter_units
h264_metadata
h264_mp4toannexb
h264_redundant_pps
hapqa_extract
hevc_metadata
hevc_mp4toannexb
imxdump
media100_to_mjpegb
mjpeg2jpeg
mjpegadump
mp3decomp
mpeg2_metadata
mpeg4_unpack_bframes
mov2textsub
noise
null
opus_metadata
pcm_rechunk
pgs_frame_merge
prores_metadata
remove_extra
setts
text2movsub
trace_headers
truehd_core
vp9_metadata
vp9_raw_reorder
vp9_superframe
vp9_superframe_split
vvc_metadata
vvc_mp4toannexb
evc_frame_merge

Windows

C:\Users\Administrator>ffmpeg -hide_banner -bsfs|more
Bitstream filters:
aac_adtstoasc
av1_frame_merge
av1_frame_split
av1_metadata
chomp
dump_extra
dca_core
dts2pts
dv_error_marker
eac3_core
extract_extradata
filter_units
h264_metadata
h264_mp4toannexb
h264_redundant_pps
hapqa_extract
hevc_metadata
hevc_mp4toannexb
imxdump
media100_to_mjpegb
mjpeg2jpeg
mjpegadump

 

  • -filters:列出支持的滤镜,这个是常用的,在剪辑的时候

Linux:

[root@centos10 ~]# ffmpeg -hide_banner -filters |more
Filters:T.. = Timeline support.S. = Slice threading..C = Command supportA = Audio input/outputV = Video input/outputN = Dynamic number and/or type of input/output| = Source or sink filter... abench            A->A       Benchmark part of a filtergraph...C acompressor       A->A       Audio compressor.... acontrast         A->A       Simple audio dynamic range compression/expansion filter.... acopy             A->A       Copy the input audio unchanged to the output.... acue              A->A       Delay filtering to match a cue.... acrossfade        AA->A      Cross fade two input audio streams.

Windows:

C:\Users\Administrator>ffmpeg -hide_banner -filters |more
Filters:T.. = Timeline support.S. = Slice threading..C = Command supportA = Audio input/outputV = Video input/outputN = Dynamic number and/or type of input/output| = Source or sink filter... abench            A->A       Benchmark part of a filtergraph...C acompressor       A->A       Audio compressor.... acontrast         A->A       Simple audio dynamic range compression/expansion filter.... acopy             A->A       Copy the input audio unchanged to the output.... acue              A->A       Delay filtering to match a cue.... acrossfade        AA->A      Cross fade two input audio streams..S. acrossover        A->N       Split audio into per-bands streams.T.C acrusher          A->A       Reduce audio bit resolution.TS. adeclick          A->A       Remove impulsive noise from input audio.TS. adeclip           A->A       Remove clipping from input audio.TS. adecorrelate      A->A       Apply decorrelation to input audio.T.C adelay            A->A       Delay one or more audio channels.TSC adenorm           A->A       Remedy denormals by adding extremely low-level noise.T.. aderivative       A->A       Compute derivative of input audio.

 

  • -pix_fmts:列出支持的图像采样格式。

Linux:

[root@centos10 ~]# ffmpeg -hide_banner -pix_fmts
Pixel formats:
I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format ##硬编码
...P. = Paletted format
....B = Bitstream format
FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS
-----
IO... yuv420p                3             12      8-8-8
IO... yuyv422                3             16      8-8-8
IO... rgb24                  3             24      8-8-8
IO... bgr24                  3             24      8-8-8
IO... yuv422p                3             16      8-8-8
IO... yuv444p                3             24      8-8-8

Windows:

C:\Users\Administrator>ffmpeg -hide_banner -pix_fmts|more
Pixel formats:
I.... = Supported Input  format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
FLAGS NAME            NB_COMPONENTS BITS_PER_PIXEL BIT_DEPTHS
-----
IO... yuv420p                3             12      8-8-8
IO... yuyv422                3             16      8-8-8
IO... rgb24                  3             24      8-8-8
IO... bgr24                  3             24      8-8-8
IO... yuv422p                3             16      8-8-8
IO... yuv444p                3             24      8-8-8
IO... yuv410p                3              9      8-8-8
IO... yuv411p                3             12      8-8-8
IO... gray                   1              8      8
IO..B monow                  1              1      1
IO..B monob                  1              1      1
I..P. pal8                   1              8      8
IO... yuvj420p               3             12      8-8-8
IO... yuvj422p               3             16      8-8-8
IO... yuvj444p               3             24      8-8-8
IO... uyvy422                3             16      8-8-8

 

  • -sample_fmts:列出支持的声音采样格式

Linux下:

[root@centos10 ~]# ffmpeg -hide_banner -sample_fmts
name   depth
u8        8 
s16      16 
s32      32 
flt      32 
dbl      64 
u8p       8 
s16p     16 
s32p     32 
fltp     32 
dblp     64 
s64      64 
s64p     64 
  • -devices 列出现有支持的,可用的输入输出设备

Linux下的:

[root@centos10 ~]# ffmpeg -devices -hide_banner
Devices:D. = Demuxing supported.E = Muxing supported--DE alsa            ALSA audio outputDE fbdev           Linux framebufferD  lavfi           Libavfilter virtual input deviceDE oss             OSS (Open Sound System) playbackE sdl,sdl2        SDL2 output deviceDE video4linux2,v4l2 Video4Linux2 output deviceD  x11grab         X11 screen capture, using XCB ###这个好像也是录屏用的驱动类

Windows下的:

C:\Users\Administrator>ffmpeg -devices -hide_banner
Devices:D. = Demuxing supported.E = Muxing supported--E caca            caca (color ASCII art) output deviceD  dshow           DirectShow capture  ###录屏用的设备驱动D  gdigrab         GDI API Windows frame grabberD  lavfi           Libavfilter virtual input deviceD  libcdioE sdl,sdl2        SDL2 output deviceD  vfwcap          VfW video capture设备 D dshow DirectShow capture 指的是录制相关 , 摄像头录制 , 麦克风录制等 ;设备 D lavfi Libavfilter virtual input device 是虚拟的输入设备 , 用于测试 ;设备 E sdl,sdl2 SDL2 output device 输出设备 , 播放视频时 , 使用该模块作为输出 ;设备 D vfwcap VfW video capture 摄像头采集设备 ;



术语介绍:

媒体流

媒体流 ( Stream ) : 时间上的一段连续数据 , 一段声音数据 称为 音频流 , 一段视频数据 称为 视频流 , 一段字幕数据 称为 字幕流 ;

这些媒体流数据 可以压缩 , 也可以不压缩 , 如视频流以 H.264 格式进行压缩 , 将视频帧编码成 关键帧 , 非关键帧 , 音频流一般是 AAC 编码格式进行压缩 ;

媒体流如果是压缩的 , 在播放时 , 先使用解码器解码 , 然后再播放 ; 生成文件时需要使用编码器 , 编码后存储到文件中 ;

数据帧

数据帧 ( Data Frame ) : 媒体流 由 若干 数据帧构成 ; 压缩格式中 , 数据帧是最小的处理单元 ;

在容器中如果有多个数据流 , 那么 视频帧 , 音频帧 , 字幕信息 , 交错存储 , 以保证实时性 ;

数据帧是未压缩的原始数据 , 如 : 视频帧每一帧都是一张完整的 YUV 图片 , 音频帧是 PCM 格式的 ;

数据包

数据包 ( Data Packet ) : 将 数据帧 压缩后就是 数据包 , 数据帧是未压缩的原始数据 , 数据包时压缩后的数据 ;

生成容器文件时 , 压缩数据 , 将数据帧 编码压缩 成 数据包 ;

播放容器文件时 , 解压数据 , 将数据包 解码展开 成 数据帧 ;

视频编码过程 : YUV 格式的图像 -> H.264 编码器编码 -> H.264 视频帧 视频解码过程 : H.264 视频帧 -> H.264 解码器解码 -> YUV 格式的图像

音频数据编码过程 : PCM 音频数据 -> ACC 编码器编码 -> AAC 音频帧 音频数据解码过程 : AAC 音频帧 -> AAC 解码器解码 -> PCM 音频数据

编解码器

编解码器 ( Codec ) : 数据帧 ( 原始数据 ) 与 数据包 ( 压缩数据 ) 之间的转换工具 ;

数据帧 ( 原始数据 ) -> 编解码器 ( 编码 ) -> 数据包 ( 压缩数据 )

数据包 ( 压缩数据 ) -> 编解码器 ( 解码 ) -> 数据帧 ( 原始数据 )

复用

复用 ( Mux ) : 将不同的 媒体流流 , 按照一定规则放入容器 ;

音频流 , 视频流 , 字幕流 , 按照一定规则 封装到 容器 ( 视频文件 ) 中 ;

复用的关键工具时 复用器 ( Muxer ) ;

解复用

解复用 ( Demux ) : 从容器中解析不同的流出来 ;

从 容器 ( 视频文件 ) 中 , 按照一定规则 拆分出 音频流 , 视频流 , 字幕流 ,

解复用的关键工具时 解复用器 ( Demuxer ) ;

码率与帧率


帧率 : 帧频率 , 视频中每秒钟含有视频帧的帧数 , 一秒钟刷新多少张图像 , 连续移动的图像至少每秒15帧 , 才能形成肉眼观察的连续播放效果 , 低于这个帧率 , 画面有卡顿感 ;

码率 : 比特率 , 数据率 ; 每秒处理的位数 ; 码率的单位是 bps , 表示每秒处理的位数 , 除以8

就是每秒的字节数 ; 该参数决定了音视频文件的播放质量 , 码率越大 , 视频质量越高 ;视频文件 中 码率 和 帧率 决定了视频的质量 ;根据 码率 和 时长 可以计算出视频文件的字节大小 ;

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

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

相关文章

1.蓝桥勇士

Problem: 蓝桥勇士 文章目录 思路解题方法复杂度Code 思路 这是一个典型的动态规划问题,我们可以使用最长递增子序列(LIS)的思想来解决。我们可以定义一个数组dp,其中dp[i]表示以第i个对手结束的最长挑战序列的长度。对于每一个对…

比特币再次上演“初五破五”精彩戏法!

号外:2.13教链内参《随着BTC一度突破5万刀,超过9成持有者已盈利》 比特币无惧美通胀数据阻击,在短暂回落之后坚决反攻,在中国农历大年初五,2月14日情人节,大涨6%,从48k绝地反击,再次…

游戏服务器租用多少钱一年?

游戏服务器租用多少钱一年?1个月游戏服务器费用多少?阿里云游戏服务器26元1个月、腾讯云游戏服务器32元,华为云26元,游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选,游戏专业服务器公网带宽10M、12M、15M…

吃瓜 - 春山学

2024年春晚看似一个贵州献上的歌舞节目《上春山》(白敬亭、魏大勋、魏晨合唱)引发网络破案:白敬亭有没有抢C位和故意换衣服?网上的“白敬亭春晚走位风波”不断升级,喂到嘴里的瓜不吃也不行啊。 三人都是明侦的元老嘉…

学习和长跑很类似,长跑可以通过训练提高跑步的速度和时长,那么学习也可以通过训练提高学习的速度和时长吗?

问题描述:学习和长跑很类似,长跑可以通过训练提高跑步的速度和时长,那么学习也可以通过训练提高学习的速度和时长吗?另外,学习和长跑一样,后半程会出现乏力的现象,但是只要坚持下去,…

【数据结构】15 队列应用实例:多项式加法运算

多项式加法运算 我们准备采用不带头节点的单向链表结构表示一元多项式,并按照指数递减的顺序排列各项。 对列表存放的两个多项式进行加法运算时,可以使用两个指针p1和p2。初始时的p1和p2分别指向这两个多项式第1个节点(指数的最高项&#x…

JavaScript中的Symbol:加密与安全性

JavaScript中的Symbol是一种唯一且不可变的数据类型,引入了一种新的基本数据类型,用于表示独一无二的标识符。在本文中,我们将深入介绍JavaScript中的Symbol,讨论如何将其应用于JS加密中,提供案例代码,并说…

C#通过重写虚方法实现加、减、乘、除运算 通过多态确定人类的说话行为

目录 一、涉及到的知识点1 1.虚方法 2.重写方法 3.重写方法与重载方法的区别 4.通过KeyPressEventArgs.KeyChar限制键盘输入的内容 5.if-else if-else嵌套转换为switch case 二、 涉及到的知识点2 1.多态性 2.使用多态性的注意事项 3. 使用虚方法实现多态性 三、实…

黑马Java——集合进阶(不可变集合、Stream流、方法引用)

目录 一、不可变集合 1、创建不可变集合的应用场景 2、创建不可变集合的书写格式 2.1、不可变的List集合 2.2、不可变的Set集合 2.3、不可变的Map集合 3、小结 二、Stream流 1、体验Stream流的作用 2、Stream流的思想 3、Stream流的使用步骤 3.1、单列集合获取Strea…

站在C/C++的肩膀速通Java面向对象

默认学过C或C,对变量、表达式、选择、循环都会。 运行特征 解释型语言(JavaScript、Python等) 源文件-(平台专属解释器)->解释器中执行编译型语言(C、Go等) 源文件-(平台编译器)->平台可执行文件Java 源文件-(…

【白话前端】JS库的作用和常见的九种类型—值得收藏

js库就好比预制菜,我们想吃美食没必要从买菜、择菜、炒菜开始,直接加工就行。 一、什么是JS库 JS库(JavaScript Library)是指一组封装好的函数、方法、类等,用于简化开发者的编程工作。它们通常提供了常用的功能和算…

Android ·移动应用开发 创建第一个Android项目

文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录(所有图片、布局、字符串等资源)AndroidManifest.xml 有四大组件,程序添加权限声明 Project下的结构 二、开发android时&…

【ArcGIS Pro二次开发】(79):符号系统_CIMUniqueValueRenderer

CIMUniqueValueRenderer是ArcGIS Pro SDK中的一个类,用于创建唯一值渲染器(Unique Value Renderer)。 在ArcGIS Pro中长这样: 通过对CIMUniqueValueRenderer的操作,可以对符号系统进行更改,实现很多功能。…

【AI写文章】解释 Git 的基本概念和使用方式

Git是一个版本控制系统,它可以追踪文件的变化并记录历史。以下是Git的基本概念和使用方式: 1. 仓库(Repository):Git仓库是用来存储项目的历史记录和文件的地方。可以在本地计算机上创建一个仓库,也可以在…

尚硅谷最新Node.js 学习笔记(一)

目录 一、Nodejs入门 1.1、为什么要学习Nodejs? 1.2、Nodejs是什么? 1.3、Nodejs的作用 1.4、Nodejs安装 1.5、Nodejs初体验 1.6、编码注意事项 二、Buffer(缓冲器) 2.1、概念 2.2、特点 2.3、使用 创建Buffer Buffe…

Cocos2dx-lua ScrollView[一]基础篇

一.ScrollView概述 cocos游戏中ScrollView控件大量使用,95%以上的项目都会使用ScrollView,个别游戏可能全部使用翻页的滑动效果。如果想要精通Cocos的UI开发,精通ScrollView控件非常关键,因此对ScrollView的使用进行总结很有必要。 下文缩写说明:sv = ScrollView, item代…

嵌入式Linux网络编程入门:轻松构建网络通信

大家好,今天给大家介绍嵌入式Linux网络编程入门:轻松构建网络通信,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 为什么选择嵌入式Linux网络编程&#x…

vue3+ts+vite+uniapp项目常见问题

vue3tsvite中""路径失效的问题 ""需要进行配置: 首先npm install types/node --save-dev(需要用到node其中的path)接着在vite.config.ts配置文件中进行配置: 引入 import path from ‘path’,然…

Imgui(2) | macOS 绘制 CPU 占用率曲线

Imgui(2) | macOS 绘制 CPU 占用率曲线 文章目录 Imgui(2) | macOS 绘制 CPU 占用率曲线0. 简介1. 绘制曲线 - 以正弦函数为例1.1 基于 sf::RectangleShape 的渲染 - 不好看,效率低1.2 基于 sf::VertexArray 的绘制 2. 获取和绘制所有 CPU 的占用率2.1 测试程序 - 用…

1.JavaScript中的数据类型

JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: Symbol 代表创建后独一无二…