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

ie9网站后台编辑器推广官网

ie9网站后台编辑器,推广官网,网站文章被采集,山东定制型网站建设推广一、VSCMake 1.1 使用ffmpeg动态库 项目目录结构: ./ ├── 3rdparty # 第三方依赖库 │ └── ffmpeg_4.4.1 │ ├── include # 头文件 │ ├── lib # 静态库库 │ └── share ├── build # 编译目…

一、VS+CMake

1.1 使用ffmpeg动态库

项目目录结构:

./
├── 3rdparty          # 第三方依赖库
│   └── ffmpeg_4.4.1 
│       ├── include   # 头文件
│       ├── lib       # 静态库库
│       └── share
├── build             # 编译目录
├── CMakeLists.txt    # cmake配置文件
└── src               # 源码文件└── main.c

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 3.10)
project(ffmpeg_test VERSION 1.0)set(CXX_STANDARD 11)
set(CXX_STANDARD_REQUIRED True)# 设置可执行文件输出目录为 bin  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)# 配置FFmpeg(avcodec.lib时动态库的导入库)
set(FFMPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ffmpeg-4.4.1)
include_directories(${FFMPEG_DIR}/include)# 动态库
set(FFMPEG_LIBS${FFMPEG_DIR}/lib/avcodec.lib${FFMPEG_DIR}/lib/avdevice.lib${FFMPEG_DIR}/lib/avfilter.lib${FFMPEG_DIR}/lib/avformat.lib${FFMPEG_DIR}/lib/avutil.lib${FFMPEG_DIR}/lib/swresample.lib${FFMPEG_DIR}/lib/swscale.lib
)# 编译和链接依赖库
add_executable(${PROJECT_NAME} src/main.c)# 动态库
target_link_libraries(${PROJECT_NAME} PRIVATE ${FFMPEG_LIBS} )# 使用file(GLOB)获取所有DLL文件
file(GLOB FFMPEG_DLLS "${FFMPEG_DIR}/bin/*.dll")# 添加自定义命令,在构建后复制DLL文件到输出目录
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different${FFMPEG_DLLS}"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
)

main.c文件内容:

#include <stdio.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>int main() {// 待检查的编解码器列表const char *codecs[] = {"libx264",    // H.264 编码器"libx265",    // HEVC 编码器"libfdk_aac", // AAC 编码器"libmp3lame", // MP3 编码器NULL          // 结束标记};printf("FFmpeg 集成编解码器状态检查:\n");printf("===========================\n");// 遍历并检查每个编解码器for (int i = 0; codecs[i] != NULL; i++) {const AVCodec *codec = avcodec_find_encoder_by_name(codecs[i]);if (!codec) {// 若编码器未找到,尝试查找解码器codec = avcodec_find_decoder_by_name(codecs[i]);}if (codec) {printf("[✅] %-12s : 已启用 (类型: %s)\n", codecs[i], codec->type == AVMEDIA_TYPE_VIDEO ? "视频" : "音频");} else {printf("[❌] %-12s : 未启用或未编译\n", codecs[i]);}}return 0;
}

生成构建系统的文件(相当于cmake .. 这里省略了一些参数):
在这里插入图片描述

编译:

cd build
cmake --build . --config Release

在这里插入图片描述

1.2 使用ffmpeg静态库

除了CMakeLists.txt文件内容不同,其他的和上面的动态库一样。

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 3.10)
project(ffmpeg_test VERSION 1.0)set(CXX_STANDARD 11)
set(CXX_STANDARD_REQUIRED True)# 设置可执行文件输出目录为 bin  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)# 配置FFmpeg
set(FFMPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ffmpeg-4.4.1)
include_directories(${FFMPEG_DIR}/include)
set(FFMPEG_LIBS${FFMPEG_DIR}/lib/libavcodec.a${FFMPEG_DIR}/lib/libavdevice.a${FFMPEG_DIR}/lib/libavfilter.a${FFMPEG_DIR}/lib/libavformat.a${FFMPEG_DIR}/lib/libavutil.a${FFMPEG_DIR}/lib/libswresample.a${FFMPEG_DIR}/lib/libswscale.a
)# 添加 MSVC 编码支持
if(MSVC)add_compile_options("/utf-8")
endif()# 编译和链接依赖库
add_executable(${PROJECT_NAME} src/main.c)# 强制使用静态运行时库(ffmpeg静态库使用MT,这里强制使用MT)
target_link_options(${PROJECT_NAME} PRIVATE "/NODEFAULTLIB:LIBCMT")
target_link_libraries(${PROJECT_NAME} PRIVATE ${FFMPEG_LIBS}  ws2_32 bcrypt)

二、MSYS2+CMake

项目目录结构:

./
├── 3rd               # 第三方依赖库
│   └── ffmpeg_4.4.1 
│       ├── include   # 头文件
│       ├── lib       # 静态库库
│       └── share
├── build			  # 编译目录
├── CMakeLists.txt    # cmake配置文件
├── set_env.ps1       # msys2配置脚本(使我们能在powershell上使用msys2)
└── src               # 源码目录└── main.c

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 3.10)
project(ffmpeg_test VERSION 1.0)set(CXX_STANDARD 11)
set(CXX_STANDARD_REQUIRED True)# 设置可执行文件输出目录为 bin  
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)# 配置FFmpeg(avcodec.lib时动态库的导入库)
set(FFMPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ffmpeg-4.4.1)
include_directories(${FFMPEG_DIR}/include)
set(FFMPEG_LIBS
${FFMPEG_DIR}/bin/avdevice.lib
${FFMPEG_DIR}/bin/avfilter.lib
${FFMPEG_DIR}/bin/avformat.lib
${FFMPEG_DIR}/bin/avcodec.lib
${FFMPEG_DIR}/bin/swscale.lib
${FFMPEG_DIR}/bin/swresample.lib
${FFMPEG_DIR}/bin/avutil.lib
)# 编译和链接依赖库
add_executable(${PROJECT_NAME} src/main.c)
target_link_libraries(${PROJECT_NAME} PRIVATE ${FFMPEG_LIBS} )# 使用file(GLOB)获取所有DLL文件
file(GLOB FFMPEG_DLLS "${FFMPEG_DIR}/bin/*.dll")# 添加自定义命令,在构建后复制DLL文件到输出目录
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different${FFMPEG_DLLS}"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
)

set_env.ps1脚本内容:

# =============================================================================
#                          MSYS2 配置参数(可修改)
# =============================================================================
# MSYS2安装路径
$MSYS2_DIR = "D:\Program\msys64"# 选择MSYS2子系统: MINGW64, MINGW32, MSYS, CLANG64
$MSYSTEM = "MINGW64"# 是否继承当前环境变量PATH (yes=继承, no=不继承)
$MSYS2_PATH_TYPE = "inherit"
# =============================================================================
#                          以下内容请勿修改
# =============================================================================
# 设置输出编码为 UTF-8
$OutputEncoding = [System.Text.Encoding]::UTF8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8# 检查 MSYS2 目录是否存在
if (-not (Test-Path $MSYS2_DIR)) {Write-Error "Error: MSYS2 directory not found at $MSYS2_DIR"Write-Error "Please update MSYS2_DIR in this script to your MSYS2 installation path."exit 1
}# 设置基本环境变量
$env:MSYS = "winsymlinks:nativestrict"
$env:MSYS2_ARG_CONV_EXCL = "*"
$env:MSYSTEM = $MSYSTEM
$env:MSYS2_PATH_TYPE = $MSYS2_PATH_TYPE# 更新 PATH 环境变量
$env:Path = "$MSYS2_DIR\$MSYSTEM\bin;$MSYS2_DIR\usr\bin;$env:Path"Write-Host "MSYS2 $MSYSTEM environment loaded successfully."
Write-Host ""# 验证环境
$bashPath = "$MSYS2_DIR\usr\bin\bash.exe"
if (Test-Path $bashPath) {Write-Host ""Write-Host "MSYS2 Environment Information:"Write-Host "----------------------------"try {$unameOutput = & $bashPath -c "uname -a"if ($LASTEXITCODE -eq 0) {Write-Host $unameOutput} else {Write-Warning "Failed to execute uname command"exit 1}} catch {Write-Warning "Failed to execute uname command"exit 1}Write-Host "----------------------------"Write-Host "MSYS2 environment loaded successfully."Write-Host ""
} else {Write-Error "Error: bash.exe not found at $bashPath"exit 1
}# 查看 系统上所有环境变量
# Get-ChildItem Env:# 查看powershell配置文件内容
# notepad $PROFILE

main.c文件内容:

#include <stdio.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>int main() {// 待检查的编解码器列表const char *codecs[] = {"libx264",    // H.264 编码器"libx265",    // HEVC 编码器"libfdk_aac", // AAC 编码器"libmp3lame", // MP3 编码器NULL          // 结束标记};printf("FFmpeg 集成编解码器状态检查:\n");printf("===========================\n");// 遍历并检查每个编解码器for (int i = 0; codecs[i] != NULL; i++) {const AVCodec *codec = avcodec_find_encoder_by_name(codecs[i]);if (!codec) {// 若编码器未找到,尝试查找解码器codec = avcodec_find_decoder_by_name(codecs[i]);}if (codec) {printf("[✅] %-12s : 已启用 (类型: %s)\n", codecs[i], codec->type == AVMEDIA_TYPE_VIDEO ? "视频" : "音频");} else {printf("[❌] %-12s : 未启用或未编译\n", codecs[i]);}}return 0;
}

构建命令

# 在vscode的powershell 执行set_env.ps1脚本,配置msys2
.\set_env.ps1# 生成构建系统(在项目根目录下执行)
cmake .. -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++# 编译(在build目录下执行)
cmake --build . --config Release

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/wzjs/452104.html

相关文章:

  • vps做电影网站百度搜索排行榜前十名
  • 陕西省市建设委员会网站哈尔滨网络优化推广公司
  • 新建的网站打不开职业技能培训网上平台
  • 昆山建设局网站查预售公司网页制作流程
  • 地方门户类网站湖南 seo
  • 网站制作中搜索栏怎么做百度指数批量获取
  • 揭阳做网站的淘宝seo推广优化
  • 平面设计培训哪个好360优化大师历史版本
  • 织梦dedecms医院类网站在线预约挂号插件网络营销的职能有哪些
  • 网站建设五行百度信息流推广教程
  • 白色网站配色百度惠生活怎么做推广
  • 二七区建设局网站中小企业网站优化
  • 公司域名邮箱怎么注册整站优化的公司
  • 苹果cms网站建设合肥网站优化seo
  • 做商城网站要多少钱微信scrm
  • wordpress主题教程广州seo招聘网
  • 昆明网站建设frf长沙网站seo诊断
  • 网站建设招标技术要求5118关键词挖掘工具
  • 广西藤县疫情优化网站结构一般包括
  • 上海公共服务平台官网google优化推广
  • 南宁大型网站设计公司陕西今日头条新闻
  • 网上商城系统概述长沙优化网站哪家公司好
  • 华为商城网站设计分析seo怎么收费的
  • 部署php网站优化手机性能的软件
  • 制作网站的列子专业的seo排名优化
  • 有什么做外贸的网站免费网络推广100种方法
  • 苏州专业网站建设开发seo推广外包
  • 中国万网怎么自己做网站360seo排名优化服务
  • 品牌建设的阶段和步骤是什么seo查询 站长工具
  • 连云港网站建设推广中国知名网站排行榜