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

网站开发人员的岗位有河北省住房及城乡建设部网站

网站开发人员的岗位有,河北省住房及城乡建设部网站,山石网站超市,百度推广登陆首页一、前期准备 在 Visual Studio 2019 中编译 x264、x265、fdk-aac、lame 和 FFmpeg 需要在 Windows 环境下搭建一个类 Linux 的编译环境#xff0c;因为这些库主要在 Linux 下开发#xff0c;源码与 MSVC 不完全兼容#xff0c;基于 MSYS2 和 MinGW 的工具链#xff0c;并…一、前期准备 在 Visual Studio 2019 中编译 x264、x265、fdk-aac、lame 和 FFmpeg 需要在 Windows 环境下搭建一个类 Linux 的编译环境因为这些库主要在 Linux 下开发源码与 MSVC 不完全兼容基于 MSYS2 和 MinGW 的工具链并结合 Visual Studio 2019 的编译器cl.exe。 1.1 VS2019安装 要安装的组件 使用C的桌面开发Visual Studio 扩展开发英语 语言包 1.2 MSYS2安装 下载地址msys2-installer 启动MSYS2 # 进入 mingw32环境 msys2_shell.cmd -mingw32# 进入 mingw64环境 msys2_shell.cmd -mingw64更换国内源 # 修改源文件 sed -i s#mirror.msys2.org/#mirrors.ustc.edu.cn/msys2/#g /etc/pacman.d/mirrorlist*# 更新源 pacman -Sy参考地址https://mirrors.ustc.edu.cn/help/msys2.html 继承终端的环境变量 使用VS2019的终端启动MSYS2(继承VS2019的变量) 1.3 安装基本工具 pacman -S --needed git make autoconf automake libtool pkgconf mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-nasm mingw-w64-x86_64-yasm说明 核心工具 git用于从 Git 仓库下载源码如 git clone。make用于处理 Makefile执行编译和安装。autoconf, automake, libtool用于生成 autotools 构建脚本如 x264、fdk-aac 和 lame 使用 autotools。pkgconf处理 pkg-config 文件方便 FFmpeg 找到依赖库的路径。 汇编工具用于 x264 和 x265 的汇编优化 mingw-w64-x86_64-nasm汇编器用于编译 x264 和 x265 中的汇编代码若启用优化。mingw-w64-x86_64-yasm另一个汇编器某些库可能需要虽然 x264 更倾向于 nasm。 CMake用于 x265 mingw-w64-x86_64-cmakex265 使用 CMake 生成构建文件MSYS2 的 CMake 通常用于 MinGW 环境。 编译工具链mingw-w64-x86_64-toolchain 包含 gcc, g, ar, ranlib 等工具用于部分库的构建脚本或预处理步骤。编译有了VS2019为什么还需要 mingw-w64-x86_64-toolchain【主要为了兼容configure 脚本】 二、编译 所有源码下载ffmpeg4.4.1源代码 将所有源码解压到msys2家目录下避免盘符转义问题 2.1 设置终端代理 临时设置 # 设置代理 export http_proxyhttp://127.0.0.1:11819 export https_proxyhttp://127.0.0.1:11819# 取消代理 unset http_proxy unset https_proxy永久设置 # 修改~/.bashrc配置文件 vim ~/.bashrcexport http_proxyhttp://127.0.0.1:11819 export https_proxyhttp://127.0.0.1:11819# 使环境变量生效 source ~/.bashrc2.2 设置环境变量 env.sh文件内容 export CCcl export CXXcl export LDlink export ARlib export RCrc export STRIP: export CFLAGS-O2 -nologo -MT # MT 静态运行时库 export CXXFLAGS-O2 -nologo -MT export LDFLAGS-nologo使环境变量生效 chmod x env.sh source env.sh重命名cmake和link避免与VS2019的冲突 # 如果使用msys2的cmake会生成不了NMAKE的构建系统 mv /usr/bin/cmake /usr/bin/cmake_bak# 要使用VS2019的link否则容易在编译阶段失败 mv /usr/bin/link.exe /usr/bin/link.exe_bak2.3 编译x264 # 下载源码 git clone https://code.videolan.org/videolan/x264.git# 配置 ./configure \ --prefix$(pwd)/../3rdparty_msvc \ --enable-static# 编译安装 make -j$(nproc) make installx264.pc文件内容位置3rdparty_msvc\lib\pkgconfig\x264.pc prefix/home/wujh/3rdparty_msvc exec_prefix${prefix} libdir${exec_prefix}/lib includedir${prefix}/includeName: x264 Description: H.264 (MPEG4 AVC) encoder library Version: 0.165.3222 Libs: -L${exec_prefix}/lib -lx264 Libs.private: Cflags: -I${prefix}/include 2.4 编译x265 # 下载源码 git clone https://bitbucket.org/multicoreware/x265_git.git# 配置只编译静态库而且设定运行时库为静态库 mkdir tmp cd tmp cmake -G NMake Makefiles \ -DCMAKE_INSTALL_PREFIX$(pwd)/../../3rdparty_msvc \ -DCMAKE_CXX_FLAGS-DWIN32 -D_WINDOWS -W4 -GR -EHsc -MT \ -DCMAKE_C_FLAGS-DWIN32 -D_WINDOWS -W4 -MT \ -DCMAKE_BUILD_TYPERelease \ -DSTATIC_LINK_CRTON \ -DENABLE_SHAREDOFF \ -DENABLE_CLIOFF \ -DENABLE_TESTSOFF \ ../source# 编译安装 nmake nmake install说明 -MT明确指定静态 CRT取代默认的动态 CRT/MD。-DSTATIC_LINK_CRTON 强化静态 CRT 的使用确保 x265 的所有对象文件使用 libcmt.lib 而非 msvcrt.lib。-DENABLE_SHAREDOFF 确保只生成静态库 x265-static.lib避免生成动态库 libx265.lib 和 x265.dll。-DENABLE_CLIOFF禁用 x265 的命令行工具减少依赖如标准 I/O 函数可能引入的动态 CRT 符号。-DENABLE_TESTSOFF禁用测试程序进一步简化构建。-DWIN32 -D_WINDOWS -W4 -GR -EHsc 以确保与 Windows 环境的兼容性和编译器警告级别。 x265.pc文件内容-lx265-static 强制链接静态库 prefix/home/wujh/3rdparty_msvc exec_prefix${prefix} libdir${exec_prefix}/lib includedir${prefix}/includeName: x265 Description: H.265/HEVC video encoder Version: 4.1 Libs: -L${libdir} -lx265-static Libs.private: Cflags: -I${includedir}2.5 编译fdk-aac 注意2.0.1版提供了Makefile.vc编译文件2.0.2版本没有提供。 # 下载源码 wget https://github.com/mstorsjo/fdk-aac/archive/refs/tags/v2.0.1.tar.gz# 编译 nmake -f Makefile.vc# 安装 nmake -f Makefile.vc install prefix$(pwd)/../3rdparty_msvc# 清理 nmake -f Makefile.vc cleanfdk-aac.pc文件内容 prefix/home/wujh/3rdparty_msvc exec_prefix${prefix} libdir${exec_prefix}/lib includedir${prefix}/includeName: Fraunhofer FDK AAC Codec Library Description: AAC codec library Version: 2.0.1 Libs: -L${libdir} -lfdk-aac Cflags: -I${includedir}2.6 编译lame # 下载源码 wget https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz# 编译64位的库 默认时编译32位 nmake -f Makefile.MSVC rebuild MSVCVERWin64 MACHINE/machine:x64 OFFwin64# 清理 nmake -f Makefile.MSVC clean说明 -f Makefile.MSVC 指定makefile文件rebuild 包括clean allMSVCVERWin64 表示使用 64 位的 MSVC 编译器进行构建MACHINE/machine:x64 指示链接器和汇编器生成 64 位目标文件。OFFwin64 指定汇编器的输出格式。 copy_dll.sh文本内容 #!/bin/sh# Check if installation directory is provided if [ -z $1 ]; thenecho Usage: $0 install_direxit 1 fiINSTALL_DIR$1# Check if output directory exists if [ ! -d output ]; thenecho Error: output directory not found.exit 1 fi# Create destination directories mkdir -p $INSTALL_DIR/bin mkdir -p $INSTALL_DIR/lib mkdir -p $INSTALL_DIR/include/lame# Copy DLLs to bin cp -v output/*.dll $INSTALL_DIR/bin/ 2/dev/null || echo No DLL files to copy. cp -v output/*.exe $INSTALL_DIR/bin/ 2/dev/null || echo No exe files to copy.# Copy LIBs to lib, excluding libmp3lame-static.lib cp -v output/*.lib $INSTALL_DIR/lib/ 2/dev/null || echo No LIB files to copy.# Copy header files to include/lame cp -v include/* $INSTALL_DIR/include/lame/ 2/dev/null || echo No lame include to copy.拷贝依赖库到指定目录因为makefile中没有install指令 chmod x copy.sh ./copy_dll.sh $(pwd)/../3rdparty_msvc将libmp3lame-static.lib重命名为mp3lame.lib 2.7 编译ffmpeg # 下载源码 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg-4.4.1 cd ffmpeg-4.4.1 git checkout n4.4.1# 设置.pc文件搜索路径 export PKG_CONFIG_PATH$(pwd)/../3rdparty_msvc/lib/pkgconfig:$PKG_CONFIG_PATH# 配置 ./configure \ --prefix$(pwd)/../ffmpeg_build \ --toolchainmsvc \ --disable-everything \ --disable-programs \ --disable-shared \ --disable-doc \ --enable-muxermp4 \ --enable-protocolfile \ --enable-bsfaac_adtstoasc \ --enable-gpl \ --enable-nonfree \ --enable-libx264 \ --enable-libx265 \ --enable-libfdk-aac \ --enable-libmp3lame \ --extra-cflags-I$(pwd)/../3rdparty_msvc/include \ --extra-ldflags-LIBPATH:$(pwd)/../3rdparty_msvc/lib# 编译安装 make -j$(nproc) make install三、vscode使用ffmpeg库 项目目录结构 ./ ├── 3rd # 第三方依赖库 │ └── ffmpeg_4.4.1 │ ├── include # 头文件 │ ├── lib # 静态库库 │ └── share ├── CMakeLists.txt # cmake配置文件 └── src # 源码文件└── main.cmain.c文件内容 #include stdio.h #include libavcodec/avcodec.h #include libavdevice/avdevice.h #include libavfilter/avfilter.h #include libavformat/avformat.h int main() {printf(avcodec version is %u \n,avcodec_version());printf(avdevice version is %u \n,avdevice_version());printf(avfilter version is %u \n,avfilter_version());printf(avformat version is %u \n,avformat_version());return 0; }CMakeLists.txt文件内容 cmake_minimum_required(VERSION 3.10) project(ffmpeg_test VERSION 1.0)set(CXX_STANDARD 11) set(CXX_STANDARD_REQUIRED True)set(FFMPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rd/ffmpeg_4.4.1) include_directories(${FFMPEG_DIR}/include) set(FFMPEG_LIBS${FFMPEG_DIR}/lib/libavutil.a${FFMPEG_DIR}/lib/libswresample.a${FFMPEG_DIR}/lib/libswscale.a${FFMPEG_DIR}/lib/libavcodec.a${FFMPEG_DIR}/lib/libavformat.a${FFMPEG_DIR}/lib/libavfilter.a${FFMPEG_DIR}/lib/libavdevice.a${FFMPEG_DIR}/lib/libpostproc.a )add_executable(${PROJECT_NAME} src/main.c) target_link_options(${PROJECT_NAME} PRIVATE /NODEFAULTLIB:LIBCMT) target_link_libraries(${PROJECT_NAME} PRIVATE ${FFMPEG_LIBS} ws2_32 user32 bcrypt)# /NODEFAULTLIB:LIBCMT 默认库 LIBCMTMSVC静态运行时与其他库冲突 # ws2_32 # Windows Socket基础库 # user32 # 用户基础库 # bcrypt # Windows加密API构建命令 # 生成构建系统在项目根目录下执行 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOLTRUE --no-warn-unused-cli -S./ -B./build -G Visual Studio 15 2017 -T hostx64 -A x64# 编译在build目录下执行 cmake --build . --config Release
http://www.w-s-a.com/news/100587/

相关文章:

  • 上海网站设计公司电话甘肃路桥建设集团有限公司官方网站
  • 哈尔滨网站建设网站开发陕西省建设监理工程协会网站
  • 微信公众号电商网站开发wordpress增加论坛
  • 网站建设视频百度网盘下载免费wordpress搭建
  • 哈尔滨市网站建设公司汕头市公司网站建设平台
  • 东莞网站建设方案外包甘肃两学一做网站
  • 网站建设优化排名推广平面设计职业学校
  • 网后台的网站怎么做网站代理商
  • 网站如何转移到新的空间服务器上手机无人区离线地图app
  • 网站建设模板的买域名做网站的坏处
  • 长春做网站qianceyun做景观素材有哪几个网站
  • 自己建的网站也要注册域名吗邯郸市做网站
  • 天津网站建设制作软件潍坊个人做网站
  • 重庆城市建设集团官方网站php用什么做网站服务器
  • 深圳坪山站重庆市园林建设有限公司网站
  • 网站建设图片教程如何用自己的电脑建网站
  • 《网页设计与网站建设》A卷答案广东新闻联播
  • 海南专业网站运营托管wordpress 去掉主题
  • 企业品牌网站制作甜品制作网站
  • 手机网站怎么制作影响力网站建设
  • 猪八戒网站做私活赚钱吗一尊网 又一个wordpress站点
  • 上海市做网站的公司滨州哪里做网站
  • 简单的网站建设步骤wordpress 贴吧主题
  • 金泉网做网站找谁表格做网站
  • 北京做兼职从哪个网站好江西省建设监督网站电子网
  • 什么网站做生鲜比较好安徽建设厅城乡官网
  • 域名购买网站有哪些问题上海装修网站建设
  • 找人做seo要给网站程序河北建设网网站
  • 哪家做网站性价比高wordpress最新文章链接插件
  • 维修网站怎么做移动互联网应用程序指的是什么