当前位置: 首页 > news >正文

4.1 FFmpeg编译选项配置

一、不同场景的编译选项

1.1 源码调试场景

开启debug和禁用strip,防止代码优化,避免源码调试时乱跳。

# 生成Makefile
./configure \
--prefix=$(pwd)/../install_mingw \
--enable-gpl \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping \
--enable-nonfree \
--enable-shared# 编译 安装
make -j8
make install

1.2 支持x264、fdk-aac、mp4

./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--disable-programs \
--disable-doc \
--disable-zlib \
--disable-debug \
--disable-neon \
--enable-pic \
--enable-memalign-hack \
--enable-gpl \
--enable-libx264 \
--enable-nonfree \
--enable-libfdk-aac \
--enable-encoder=aac,libfdk_aac \
--enable-encoder=aac,libx264 \
--enable-decoder=aac,aac_latm,h264 \
--enable-demuxer=aac,asf,ffmetadata,h264,mp3  \
--enable-muxer=adts,h264,mp4,pcm_s16le  \
--enable-parser=aac,aac_latm,h264 \
--enable-protocol=file \
--extra-cflags="-I$(pwd)/../3rdparty_mingw/include" \
--extra-ldflags="-L$(pwd)/../3rdparty_mingw/lib"# 编译 安装
make -j8
make install

1.3 支持x264、x265、fdk-aac、lame、mp4、flv

./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--disable-programs \
--disable-doc \
--disable-zlib \
--disable-debug \
--enable-shared \
--enable-muxer=mp4,flv,mp3,wav \
--enable-demuxer=mp4,mov,mp3,aac \
--enable-encoder=libx264,libx265,libfdk_aac,libmp3lame \
--enable-decoder=aac,h264,hevc,mp3 \
--enable-protocol=file,http \
--enable-filter=aresample \
--enable-bsf=aac_adtstoasc \
--enable-gpl \
--enable-nonfree \
--enable-libx264 \
--enable-libx265 \
--enable-libfdk-aac \
--enable-libmp3lame \
--extra-cflags="-I$(pwd)/../3rdparty_mingw64/include" \
--extra-ldflags="-L$(pwd)/../3rdparty_mingw64/lib"# 编译 安装
make -j8
make install

二、参数讲解

2.1 组件禁用与启用

减小库大小原则:先关闭所有组件,再开启自己需要的功能。

禁用选项:

编译选项描述禁用的组件示例
--disable-everything禁用所有组件所有编码器、解码器、muxer、demuxer、协议、滤镜、设备、解析器、位流滤镜等
--disable-avdevice禁用所有输入、输出设备v4l2、alsa、pulse、directshow、decklink、x11grab 等
--disable-encoders禁用所有编码器libx264、libx265、aac、mp3、vp8、vp9、huffyuv、mpeg2video 等
--disable-decoders禁用所有解码器h264、hevc、mpeg2video、mp3、aac、vp8、vp9、flac、pcm_s16le 等
--disable-muxers禁用所有 muxermp4、avi、mkv、flv、mov、webm、mpegts、hls 等
--disable-demuxers禁用所有 demuxermp4、avi、mkv、flv、mov、webm、mpegts、rtsp 等
--disable-parsers禁用所有 parserh264、hevc、mpegvideo、mpeg4audio、aac、vp9、vp8 等
--disable-bsfs禁用所有 bitstream filtersh264_mp4toannexb、aac_adtstoasc、hevc_mp4toannexb、vp9_superframe 等
--disable-filters禁用所有 filtersscale、crop、overlay、vflip、hflip、drawtext、equalizer、volume 等
--disable-protocols禁用所有 protocolsfile、http、https、rtmp、rtsp、ftp、udp、tcp、srt 等
--disable-network禁用网络http、https、rtmp、rtsp、ftp、udp、tcp、srt 等网络相关协议
--disable-programs禁止生成程序ffmpeg、ffplay、ffprobe 等可执行程序

启用选项:

编译选项描述启用组件示例
--enable-encoder=NAME启用指定编码器libx264, libx265, aac, mp3, vp8, vp9, mpeg2video
--enable-decoder=NAME启用指定解码器h264, hevc, mpeg2video, mp3, aac, vp8, vp9, flac
--enable-hwaccel=NAME启用指定硬件加速h264_vaapi, hevc_nvenc, mpeg2_vdpau, vp9_dxva2
--enable-muxer=NAME启用指定 muxermp4, avi, mkv, flv, mov, webm, mpegts, hls
--enable-demuxer=NAME启用指定 demuxermp4, avi, mkv, flv, mov, webm, mpegts, rtsp
--enable-parser=NAME启用指定 parserh264, hevc, mpegvideo, mpeg4audio, aac, vp9, vp8
--enable-bsf=NAME启用指定 bitstream filterh264_mp4toannexb, aac_adtstoasc, hevc_mp4toannexb, vp9_superframe
--enable-protocol=NAME启用指定协议file, http, https, rtmp, rtsp, ftp, udp, tcp, srt
--enable-indev=NAME启用指定输入设备v4l2, alsa, pulse, dshow, decklink, x11grab
--enable-outdev=NAME启用指定输出设备alsa, pulse, sdl, xv, opengl
--enable-filter=NAME启用指定滤镜scale, crop, overlay, vflip, hflip, drawtext, equalizer, volume

举例:

# 只启用flv、mp4、mp3、aac
./configure \
--prefix=$(pwd)/../ffmpeg_build \
--disable-everything \
--enable-shared \
--enable-muxer=mp4,flv,mp3,wav \
--enable-demuxer=mp4,mov,mp3,aac

2.2 第三方库编译选项

类别编译选项描述
音频--enable-libspeex --enable-encoder=speex --enable-decoder=speex启用 Speex 音频编解码支持
--enable-libopus --enable-encoder=opus --enable-decoder=opus启用 Opus 音频编解码支持
--enable-libfdk-aac --enable-gpl --enable-encoder=aac --enable-decoder=aac启用 Fraunhofer FDK AAC 音频编解码支持
--enable-libmp3lame --enable-encoder=mp3lame启用 LAME MP3 音频编码支持
视频--enable-libopenh264 --enable-encoder=libopenh264 --enable-decoder=openh264启用 OpenH264 视频编解码支持
--enable-libx264 --enable-nonfree --enable-encoder=libx264启用 x264 视频编码支持
--enable-libx265 --enable-encoder=libx265启用 x265 H.265 视频编码支持
--enable-libvpx --enable-encoder=libvpx_vp8 --enable-decoder=vp8 --enable-encoder=libvpx_vp9 --enable-decoder=vp9启用 VP8/VP9 视频编解码支持
--enable-libwebp --enable-encoder=libwebp --enable-decoder=webp启用 WebP 图像编解码支持
--enable-libopenjpeg --enable-encoder=libopenjpeg --enable-decoder=jp2k启用 OpenJPEG JPEG 2000 编解码支持
框架--enable-mediacodec --enable-hwaccel=mediacodec启用 Android MediaCodec 硬件加速支持
--disable-avfoundation禁用 macOS AVFoundation 框架支持
流媒体协议--enable-librtmp --enable-protocol=rtmp启用 RTMP 流媒体协议支持
--enable-libsrt --enable-protocol=srt启用 SRT 流媒体协议支持
加密--enable-openssl --enable-protocol=https --enable-protocol=tls启用 OpenSSL 加密协议支持
--enable-libtls --enable-protocol=tls启用 LibreSSL TLS 加密协议支持
--enable-mbedtls --enable-protocol=https --enable-protocol=tls启用 mbedTLS 加密协议支持
--enable-gnutls --enable-protocol=https --enable-protocol=tls启用 GnuTLS 加密协议支持
其他--disable-sdl2禁用 SDL2 输出支持
--enable-libopencv --enable-filter=opencv启用 OpenCV 计算机视觉滤镜支持
--enable-libfreetype --enable-filter=drawtext启用 FreeType 字体渲染支持
--enable-libfontconfig --enable-filter=drawtext启用 Fontconfig 字体配置支持
--enable-libfribidi --enable-filter=drawtext启用 FriBidi 双向文本渲染支持
设备--disable-alsa禁用 ALSA 音频设备支持
--enable-libv4l2 --enable-indev=v4l2启用 Video4Linux2 视频捕获支持
--enable-openal --enable-outdev=openal启用 OpenAL 音频输出支持

--enable-libx264--enable-encoder=libx264的区别?

  • --enable-libx264 要求在编译ffmpeg时链接libx264库文件
  • --enable-encoder=libx264 启用lib264编码器,如果没有使用--enable-libx264,单独使用--enable-encoder=libx264是无效的。

使用--disable-everything--enable-libx264 后,是否需要使用--enable-encoder=libx264

  • 需要--enable-encoder=libx264
  • 因为使用--disable-everything会禁用所有组件,包括所有编码器,也包括libx264编码器,如果不启用,--enable-libx264只是链接libx264库文件而已,没有启用libx264编码器。

如何指定第三方库的路径?

# 1.通过pkg-config搜索路径
export PKG_CONFIG_PATH=$(pwd)/../mingw64/lib/pkgconfig:$PKG_CONFIG_PATH# 2.通过cflags和ldflags#(1)Linux
# 所有第三方库都安装在一个目录下
./configure \
...
--extra-cflags="-I/mingw64/include" \
--extra-ldflags="-L/mingw64/lib" \
--extra-libs="-lpthread -lm"# 第三方库分别在不同目录
./configure \
...
--extra-cflags="-I/opt/x264/include -I/opt/fdk-aac/include -I/mingw64/include" \
--extra-ldflags="-L/opt/x264/lib -L/opt/fdk-aac/lib -L/mingw64/lib" \
--extra-libs="-lpthread -lm"# --extra-cflags 头文件的目录
# --extra-ldflags 库的目录
# --extra-libs  库名称,一般用不到#(2)Windows
./configure \
...
--extra-cflags="-I$(pwd)/../3rdparty_msvc/include" \
--extra-ldflags="-LIBPATH:$(pwd)/../3rdparty_msvc/lib"

2.3 交叉编译

编译选项描述
--arch=ARCH指定目标架构(如 arm、aarch64、x86、x86_64 等)
--target-os=OS指定目标操作系统(如 linux、android、windows 等)
--cross-prefix=PREFIX指定交叉编译工具链的前缀(如 arm-linux-gnueabi-)
--enable-cross-compile启用交叉编译模式
--sysroot=PATH指定目标系统的根文件系统路径,用于查找库和头文件
--sysinclude=PATH指定系统头文件的路径,用于交叉编译时的头文件位置
--toolchain=NAME指定工具链名称(如 gcc、msvc 等)
--cc=CC指定 C 编译器路径(如 arm-linux-gnueabi-gcc)
--cxx=CXX指定 C++ 编译器路径(如 arm-linux-gnueabi-g++)
--ld=LD指定链接器路径(如 arm-linux-gnueabi-ld)
--ar=AR指定 ar 工具路径,用于创建静态库(如 arm-linux-gnueabi-ar)
--strip=STRIP指定 strip 工具路径,用于去除调试信息(如 arm-linux-gnueabi-strip)
--as=AS指定汇编器路径(如 arm-linux-gnueabi-as)
--ln_s=LN_S指定符号链接工具路径(如 ln -s)
--nm=NM指定 nm 工具路径,用于列出目标文件符号(如 arm-linux-gnueabi-nm)
--extra-cflags=ECFLAGS指定额外的 C 编译器标志(如 -I/path/to/include)
--extra-cxxflags=ECFLAGS指定额外的 C++ 编译器标志(如 -I/path/to/include)
--extra-ldflags=ELDFLAGS指定额外的链接器标志(如 -L/path/to/lib)
--extra-ldexeflags=ELDFLAGS指定额外的可执行文件链接器标志(如 -L/path/to/lib)

案例背景

  • 目标架构:aarch64(ARM 64位)
  • 目标操作系统:Linux
  • 工具链:aarch64-linux-gnu(基于 GCC 的交叉编译工具链)
  • 功能需求:支持 H.264 视频编码(使用 libx264),输出 MP4 容器格式,仅支持本地文件协议。
  • 环境:在 x86_64 Linux 主机上进行交叉编译,目标系统的 sysroot 位于 /path/to/aarch64-sysroot

安装交叉编译工具链

sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu

安装 libx264 开发库(为 aarch64 架构预编译):
假设 libx264 的头文件和库文件已安装在 /path/to/aarch64-sysroot/usr/include/path/to/aarch64-sysroot/usr/lib

配置命令

./configure \--arch=aarch64 \--target-os=linux \--cross-prefix=aarch64-linux-gnu- \--enable-cross-compile \--sysroot=/path/to/aarch64-sysroot \--sysinclude=/path/to/aarch64-sysroot/usr/include \--toolchain=gcc \--cc=aarch64-linux-gnu-gcc \--cxx=aarch64-linux-gnu-g++ \--ld=aarch64-linux-gnu-ld \--ar=aarch64-linux-gnu-ar \--strip=aarch64-linux-gnu-strip \--as=aarch64-linux-gnu-as \--nm=aarch64-linux-gnu-nm \--extra-cflags="-I/path/to/aarch64-sysroot/usr/include" \--extra-ldflags="-L/path/to/aarch64-sysroot/usr/lib" \--disable-everything \--enable-libx264 \--enable-encoder=libx264 \--enable-muxer=mp4 \--enable-protocol=file

2.4 编译选项详解

(1)许可证和协议(影响分发)

编译选项描述启用的组件或注意事项
--enable-gpl启用 GPL 许可证,允许使用 GPL 授权的代码。x264、x265 等 GPL 组件,编译结果受 GPL 限制。
--enable-nonfree启用非自由代码,支持专利或专有功能。fdk-aac 等非自由组件,编译结果不可自由分发。
--enable-lgpl启用 LGPL 许可证(默认启用),限制较少。LGPL 组件,适合自由分发场景。
--enable-version3启用 LGPL v3 许可证,兼容某些新版本库。LGPL v3 库,需注意兼容性。

(2)安装路径

编译选项描述启用的组件或注意事项
--prefix=PREFIX指定安装路径,默认 /usr/local自定义安装路径(如 /usr),需确保权限。
--bindir=DIR指定可执行文件安装目录,默认 PREFIX/bin可执行文件(如 ffmpeg),用于分离二进制文件。
--libdir=DIR指定库文件安装目录,默认 PREFIX/lib库文件(如 libavcodec),用于分离库文件。
--includedir=DIR指定头文件安装目录,默认 PREFIX/include头文件,用于开发环境。
--mandir=DIR指定 man 页面安装目录,默认 PREFIX/share/manman 页面,用于文档分离。
--docdir=DIR指定文档安装目录,默认 PREFIX/share/doc/ffmpeg文档文件,用于文档管理。
--enable-rpath启用 rpath,确保动态链接库使用指定路径。动态链接库路径,适合自定义安装路径。

(3)组件控制

编译选项描述禁用的组件示例或启用的组件
--disable-everything禁用所有组件,需逐个启用所需功能。所有编码器、解码器、muxer、demuxer、协议、滤镜、设备、解析器、位流滤镜等
--disable-static不构建静态库(默认构建)。静态库文件(如 libavcodec.a)
--enable-shared构建共享库(.so 或 .dll)。动态链接库(如 libavcodec.so)
--disable-doc不编译文档。HTML 文档、man 页面
--disable-ffmpeg不编译 ffmpeg 命令行工具。ffmpeg 可执行文件
--disable-ffplay不编译 ffplay 播放器。ffplay 可执行文件
--disable-ffprobe不编译 ffprobe 媒体分析工具。ffprobe 可执行文件
编译选项描述禁用的组件示例或启用的组件
--disable-avdevice禁用所有输入、输出设备。v4l2、alsa、pulse、directshow、decklink、x11grab 等
--disable-swresample禁用 libswresample 库(音频重采样)。音频重采样功能(如格式转换、采样率调整)
--disable-postproc禁用 libpostproc 库(视频后处理,如去块效应)。视频后处理(如去块滤镜)
--disable-avcodec禁用 libavcodec 库(编解码核心)。所有编码器和解码器(如 h264、aac、mpeg2)
--disable-avformat禁用 libavformat 库(容器格式处理)。所有容器格式(如 mp4、mkv、flv)
--disable-swscale禁用 libswscale 库(视频缩放和像素格式转换)。视频缩放、像素格式转换(如 yuv420p 到 rgb)
--disable-avfilter禁用 libavfilter 库(音视频滤镜)。所有滤镜(如 scale、crop、drawtext)
--disable-programs禁用所有命令行工具(ffmpeg、ffplay、ffprobe)。ffmpeg、ffplay、ffprobe 可执行文件
--enable-avresample启用 libavresample 库(旧版音频重采样)。libavresample(已 deprecated,推荐 swresample)
--disable-encoders禁用所有编码器。libx264、libx265、aac、mp3、vp8、vp9、huffyuv、mpeg2video 等
--disable-decoders禁用所有解码器。h264、hevc、aac、mp3、vp8、vp9、mpeg2video 等
--disable-muxers禁用所有封装器。mp4、mkv、flv、avi、hls 等
--disable-demuxers禁用所有解封装器。mp4、mkv、flv、avi、hls 等
--disable-protocols禁用所有协议。http、rtmp、srt、udp、tcp 等
--disable-filters禁用所有滤镜。scale、crop、drawtext、overlay、eq 等

(4)外部库支持

音频编解码器

编译选项描述启用的组件或注意事项
--enable-libmp3lame启用 MP3 编码(LAME)。MP3 编码器,需 libmp3lame-dev--enable-gpl
--enable-libfdk-aac启用高质量 AAC 编码(fdk-aac)。AAC 编码器,需 libfdk-aac-dev--enable-nonfree
--enable-libopus启用 Opus 音频编解码。Opus 编解码器,需 libopus-dev
--enable-libvorbis启用 Vorbis 音频编码。Vorbis 编码器,需 libvorbis-dev
--enable-libshine启用 Shine MP3 编码器(轻量级)。MP3 编码器,需 libshine-dev,替代 LAME。
--enable-libtwolame启用 TwoLAME MP2 编码器。MP2 编码器,需 libtwolame-dev
--enable-libspeex启用 Speex 音频编解码(适合语音)。Speex 编解码器,需 libspeex-dev
--enable-libflac启用 FLAC 无损音频编解码。FLAC 编解码器,需 libflac-dev
--enable-libgsm启用 GSM 音频编解码(移动通信格式)。GSM 编解码器,需 libgsm-dev

视频编解码器

编译选项描述启用的组件或注意事项
--enable-libx264启用 H.264/AVC 视频编码(x264)。H.264 编码器,需 libx264-dev--enable-gpl
--enable-libx265启用 HEVC/H.265 视频编码(x265)。H.265 编码器,需 libx265-dev--enable-gpl
--enable-libvpx启用 VP8/VP9 编解码(libvpx)。VP8/VP9 编解码器,需 libvpx-dev
--enable-libaom启用 AV1 编码(AOM)。AV1 编码器,需 libaom-dev,编译时间较长。
--enable-libsvtav1启用 SVT-AV1 编码(Intel AV1 编码器)。AV1 编码器,需 libsvtav1-dev
--enable-libtheora启用 Theora 视频编码。Theora 编码器,需 libtheora-dev
--enable-libxvid启用 Xvid(MPEG-4 ASP)编码。Xvid 编码器,需 libxvid-dev
--enable-libzimg启用 zimg 库(高质量图像缩放和颜色转换)。zimg 缩放/转换,需 libzimg-dev
--enable-libopenh264启用 OpenH264(Cisco 的 H.264 实现)。H.264 编解码器,需 libopenh264-dev

容器

编译选项描述启用的组件或注意事项
--enable-libwebp支持 WebP 图像格式。WebP 容器,需 libwebp-dev
--enable-libxml2支持 XML 解析(用于 DASH 等格式)。DASH 容器,需 libxml2-dev
--enable-libopenjpeg支持 JPEG 2000 格式。JPEG 2000 容器,需 libopenjpeg-dev
--enable-libbluray支持 Blu-ray 光盘解析。Blu-ray 容器,需 libbluray-dev

协议

编译选项描述启用的组件或注意事项
--enable-libsrt支持 SRT 协议(安全可靠传输)。SRT 协议,需 libsrt-dev,适合实时流媒体。
--enable-libzmq支持 ZeroMQ 协议(用于实时消息传递)。ZeroMQ 协议,需 libzmq-dev
--enable-librtmp支持 RTMP 协议(实时流媒体)。RTMP 协议,需 librtmp-dev

硬件加速

编译选项描述启用的组件或注意事项
--enable-cuda启用 CUDA 支持(NVIDIA GPU)。CUDA 加速,需 NVIDIA GPU 和 CUDA SDK。
--enable-cuvid启用 NVIDIA CUVID 解码。CUVID 解码,需 NVIDIA GPU 和驱动。
--enable-nvenc启用 NVIDIA NVENC 编码。NVENC 编码,需 NVIDIA GPU 和驱动。
--enable-vaapi启用 VAAPI(视频加速,Linux)。VAAPI 加速,需 Intel/AMD GPU 和驱动。
--enable-vdpau启用 VDPAU(Linux)。VDPAU 加速,需 NVIDIA GPU 和驱动。
--enable-libmfx启用 Intel QuickSync(Windows/Linux)。QuickSync 加速,需 libmfx-dev
--enable-vulkan启用 Vulkan 硬件加速(跨平台)。Vulkan 加速,需 Vulkan 支持的 GPU。
--enable-opencl启用 OpenCL 支持(GPU 计算)。OpenCL 加速,需 OpenCL 驱动。
--enable-dxva2启用 DXVA2 硬件加速(Windows)。DXVA2 加速,需 Windows 和支持的 GPU。
--enable-d3d11va启用 Direct3D11 视频加速(Windows)。D3D11VA 加速,需 Windows 和支持的 GPU。
--enable-amf启用 AMD AMF 硬件加速(Windows/Linux)。AMF 加速,需 AMD GPU 和驱动。
--enable-videotoolbox启用 VideoToolbox 硬件加速(macOS/iOS)。VideoToolbox 加速,需 Apple 设备。

其他

编译选项描述启用的组件或注意事项
--enable-libdav1d支持 AV1 解码(dav1d)。AV1 解码器,需 libdav1d-dev
--enable-libmjpeg支持 MJPEG 编码/解码。MJPEG 编解码器。
--enable-libvmaf支持 VMAF(视频质量评估,Netflix 开发)。VMAF 评估,需 libvmaf-dev
--enable-libass支持 ASS/SSA 字幕渲染。ASS/SSA 字幕,需 libass-dev
--enable-libfreetype支持加载字体(用于文本叠加/字幕)。字体渲染,需 libfreetype-dev
--enable-libfontconfig启用 Fontconfig(高级字体管理,Linux)。Fontconfig 字体管理,需 libfontconfig-dev
--enable-libcdio支持 CD 音频抓取。CD 音频解析,需 libcdio-dev
--enable-libzvbi支持 VBI(视频广播信息,如字幕)。VBI 数据解析,需 libzvbi-dev
--enable-libvidstab启用视频防抖。视频防抖,需 libvidstab-dev

(5)优化选项

编译选项描述启用的组件或注意事项
--enable-optimizations启用编译器优化(如 GCC 的 -O3)。编译器优化(如 -O3),推荐性能优先。
--enable-small优化代码大小(牺牲速度)。小体积二进制,适合嵌入式设备。
--arch=ARCH指定目标架构(如 x86, x86_64, armv7, aarch64)。目标架构优化,需匹配硬件。
--enable-lto启用链接时优化(Link-Time Optimization)。LTO 优化,提升性能但增加编译时间。
--enable-pic生成位置无关代码(适合共享库)。位置无关代码,推荐用于动态链接库。
--cpu=CPU指定目标 CPU(如 i686, sandybridge, armv8-a)。CPU 特定优化,需匹配硬件。
--extra-cflags=FLAGS添加编译器标志(如 -march=native)。自定义编译器标志,需了解编译器支持。
--extra-ldflags=FLAGS添加链接器标志。自定义链接器标志,需了解链接器支持。

(6)调试选项

编译选项描述启用的组件或注意事项
--enable-debug=LEVEL设置调试级别(0-3,默认 0)。调试日志(级别越高越详细),性能下降。
--enable-valgrind启用 Valgrind 兼容性(内存调试)。Valgrind 内存调试,需 Valgrind 工具。
--enable-gcov启用代码覆盖率测试。代码覆盖率分析,需 gcov 工具。
--enable-logging启用详细日志(默认启用)。详细日志,可通过级别控制。
--toolchain=TOOLCHAIN指定工具链(如 gcc 或 clang)。工具链支持,需匹配开发环境。

相关文章:

  • 基于Attention机制的模型。这使得它摆脱了RNN模型顺序读取序列的缺点,可以实现高度的并行化的理解
  • 《Effective Python》第九章 并发与并行——使用 concurrent.futures 实现真正的并行化
  • HarmonyOS 5的分布式通信矩阵是如何工作的?
  • Docker 高级管理笔记
  • HTML5简介
  • 高云GW5AT-LV60 FPGA图像处理板
  • 升级到 .NET 9 分步指南
  • redis分布式锁 Redisson在电商平台开发中的实际应用
  • sqlsuger 获取表行数
  • 基于物联网的智能饮水机系统设计
  • 1.23Node.js 中操作 mongodb
  • Qt Library库系列----Serial串口
  • 智慧医院核心引擎:IBMS 系统守护医疗环境高效与安全​
  • clickhouse-server连不上clickhouse-keeper的问题记录
  • SQL Server 分区方案 VS 分表方案——区别与选型分析
  • 【unity】批量剔除图片四周空白像素的工具
  • UE5 游戏模板 —— FirstShootGame
  • 【论文笔记】【强化微调】T-GRPO:对视频数据进行强化微调
  • WPF调试三种工具介绍:Live Visual Tree、Live Property Explorer与Snoop
  • TMultiplexedProtocol 和 TMultiplexedProcessor
  • 网站建设与推广实训总结/星巴克营销策划方案
  • 网站服务器怎么做安全防护/南京seo报价
  • 网站建设南宁/友情链接怎么设置
  • 龙岩北京网站建设/百度广告投放平台叫什么
  • 微信投票网站制作/北京seo管理
  • 做微信视频的网站/简述网站制作的步骤