C++音视频

代码改变世界

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

前提条件,vs2019@windows10。

MSYS2环境配置

1. MSYS2安装

MSYS2 下载地址:https://www.msys2.org/
当前版本 msys2-x86_64-20220603.exe,双击安装,安装在了 D:\msys64,因为 C 盘快满了。

2. yasm.exe

yasm下载地址:http://yasm.tortall.net/Download.html
下载到的是 yasm-1.3.0-win64.exe,拷贝到 D:/msys64/usr/bin 下,并改名为 yasm.exe

3. 修改msys2_shell.bat

修改 D:/msys64/msys2_shell.bat 文件,
约第17行,rem set MSYS2_PATH_TYPE=inherit 改成 set MSYS2_PATH_TYPE=inherit,去掉前面的 rem

约 100 行处增加两行,增加后如下:

rem Setup proper title and icon
if "%MSYSTEM%" == "MINGW32" (
  set "CONTITLE=MinGW x32"
  set "CONICON=mingw32.ico"
  call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"
) else if "%MSYSTEM%" == "MINGW64" (
  set "CONTITLE=MinGW x64"
  set "CONICON=mingw64.ico"
  call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
) else if "%MSYSTEM%" == "UCRT64" (
  set "CONTITLE=MinGW UCRT x64"
  set "CONICON=ucrt64.ico"
) else if "%MSYSTEM%" == "CLANG64" (
  set "CONTITLE=MinGW Clang x64"
  set "CONICON=clang64.ico"
) else if "%MSYSTEM%" == "CLANG32" (
  set "CONTITLE=MinGW Clang x32"
  set "CONICON=clang32.ico"
) else if "%MSYSTEM%" == "CLANGARM64" (
  set "CONTITLE=MinGW Clang ARM64"
  set "CONICON=clangarm64.ico"
) else (
  set "CONTITLE=MSYS2 MSYS"
  set "CONICON=msys2.ico"
)

4. 安装工具

使用如下命令安装 gcc、pkg-config、diffutils、make

pacman -S gcc pkg-config diffutils make

ffmpeg源码下载和编译

ffmpeg下载地址:http://ffmpeg.org/download.html 下载源码后解压到 E:/ffmpeg
打开 MSYS2, 使用开始菜单中的快捷方式 MSYS2 MingW X64 或者 MSYS2 MingW X86 打开,不能直接双击ming232.exe 或者 mingw64.exe 打开,否则会因为环境变量的问题导致找不到 cl.exe 错误。
cd 到 E:/ffmpeg 下执行 configure

./configure --toolchain=msvc --prefix=/e/ffmpeg/install --enable-debug --disable-optimizations --extra-cflags=-g --disable-stripping --disable-shared --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages 

重点是--toolchain=msvc,指定使用vs来编译. configure需要几分钟,视机器性能而定。configure完成后,编译安装。

make -j
make install

调试example

E:/ffmpeg/install/share/ffmpeg/examples/decode_video.c 拷贝出来,放到新的目录,(就保留在原目录也行),使用cmake创建项目工程,CMakeLists.txt如下

project(ffmpegtest)
cmake_minimum_required(VERSION 3.1.3)
INCLUDE_DIRECTORIES(E:/ffmpeg/install/include)
link_directories(E:/ffmpeg/install/lib)
SET (TEST_SRC decode_video.c)
add_executable(decode_video ${TEST_SRC})
target_link_libraries(decode_video libavcodec libavutil libswscale libswresample libavdevice libavformat libavfilter Mfuuid Strmiids Bcrypt)

在CMakeLists.txt目录下创建目录 \

mkdir vs2019
cd vs2019 
cmake ../ -DCMAKE_BUILD_TYPE=Debug

然后打开cmake生成的 vs2019 工程,编译调试。 需要将编译出来的库后缀名改成*.lib才能链接,不用改使用*.a链接还没有找到办法。

posted on 2022-06-24 10:33  shunxiang  阅读(209)  评论(0)    收藏  举报