msys2在windows10下編譯安裝ffmpeg+x265

本文編譯於2019-07-31,下載當下最新版本的安裝包。

一、下載

1.1 msys2下載

下載地址:http://www.msys2.org/

安裝包:msys2-x86_64-20190524.exe(當前最新的)

1.2 x265下載

下載地址:http://ftp.videolan.org/pub/videolan/x265/

安裝包:x265_3.1.1.tar.gz(當前最新的)

1.3 ffmpeg下載

下載地址:http://ffmpeg.org/download.html#releases

安裝包:ffmpeg-3.3.9.tar.gz(生產使用)

二、安裝

2.1 msys2安裝

注意:
1. msys2不可以安裝在FAT*分區
2. msys2不能安裝在winXP系統上

1. 雙擊msys2-x86_64-20190524.exe,並點擊下一步選擇安裝文件夾。

注意:安裝文件路徑要短,不能有空格,只能用ASCII字符,不能用單引號。

è¿éåå¾çæè¿°

然後下一步直到開始安裝

2. 安裝完成後點擊完 成退出安裝程序

注意:此處不要勾選"立即運行 MSYS2 64bit",因爲接下來要配置國內更新源。

è¿éåå¾çæè¿°

3. 配置國內更新源
這裏選用中科大的源,也可以搜索其他的源,如阿里雲,清華大學等的源。

修改“安裝位置\etc\pacman.d”中的三個配置文件

mirrorlist.msys
mirrorlist.mingw32
mirrorlist.mingw64

1) 在mirrorlist.msys中添加

Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

添加後的文件內容如下:

##
## MSYS2 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/

2)在mirrorlist.mingw32中添加

Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

添加後文件內容如下:

##
## 32-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://repo.msys2.org/mingw/i686
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686

3)在mirrorlist.mingw64中添加

Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

添加後文件內容如下:

##
## 64-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://repo.msys2.org/mingw/x86_64
Server = https://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64

4. 打開菜單中的“MSYS2 MinGW 64-bit”

打開“MSYS2 MinGW 64-bit”,以後也一直使用“MSYS2 MinGW 64-bit”。

è¿éåå¾çæè¿°

打開後執行命令pacman -Syu更新系統核心和各種包等,如下面的截圖:

è¿éåå¾çæè¿°

輸入“Y”鍵開始更新。
注意: 更新時會遇到下圖的警告,這時一定要點擊右上角的X來關閉窗口。

è¿éåå¾çæè¿°

關閉窗口時會彈出一個對話框(如下圖),點擊OK。

è¿éåå¾çæè¿°


上面的更新沒有結束,需要繼續更新。再次打開“MSYS2 MinGW 64-bit”,再執行一次pacman -Syu

è¿éåå¾çæè¿°

這樣更新就可以順利結束了,msys2的安裝也順利結束了。

5. 安裝編譯環境
安裝msys2是爲了寫程序、編譯程序,因此編譯環境的安裝還是必要的。

1) 安裝基本工具

命令:pacman -S base-devel(默認全部安裝)

$ pacman -S base-devel
:: 在組 base-devel 中有 56 成員:
:: 軟件倉庫 msys
   1) asciidoc  2) autoconf  3) autoconf2.13  4) autogen  5) automake-wrapper  6) automake1.10  7) automake1.11
   8) automake1.12  9) automake1.13  10) automake1.14  11) automake1.15  12) automake1.16  13) automake1.6
   14) automake1.7  15) automake1.8  16) automake1.9  17) bison  18) diffstat  19) diffutils  20) dos2unix  21) file
   22) flex  23) gawk  24) gdb  25) gettext  26) gettext-devel  27) gperf  28) grep  29) groff  30) help2man
   31) intltool  32) lemon  33) libtool  34) libunrar  35) libunrar-devel  36) m4  37) make  38) man-db  39) pacman
   40) pactoys-git  41) patch  42) patchutils  43) perl  44) pkg-config  45) pkgfile  46) quilt  47) rcs  48) scons
   49) sed  50) swig  51) texinfo  52) texinfo-tex  53) ttyrec  54) unrar  55) wget  56) xmlto

輸入某個選擇 ( 默認=全部選定 ):

2)安裝編譯工具,包括gcc,make等。

命令:pacman -S mingw-w64-x86_64-toolchain(默認全部安裝)

$ pacman -S mingw-w64-x86_64-toolchain
:: 在組 mingw-w64-x86_64-toolchain 中有 17 成員:
:: 軟件倉庫 mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git  3) mingw-w64-x86_64-gcc  4) mingw-w64-x86_64-gcc-ada
   5) mingw-w64-x86_64-gcc-fortran  6) mingw-w64-x86_64-gcc-libgfortran  7) mingw-w64-x86_64-gcc-libs
   8) mingw-w64-x86_64-gcc-objc  9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-headers-git
   11) mingw-w64-x86_64-libmangle-git  12) mingw-w64-x86_64-libwinpthread-git  13) mingw-w64-x86_64-make
   14) mingw-w64-x86_64-pkg-config  15) mingw-w64-x86_64-tools-git  16) mingw-w64-x86_64-winpthreads-git
   17) mingw-w64-x86_64-winstorecompat-git

輸入某個選擇 ( 默認=全部選定 ):

注意:如果想要編譯的程序在windows環境下運行,記得要靜態編譯

3)安裝其他依賴庫

彙編
pacman -S yasm
pacman -S nasm

安裝cmkae
pacman -S mingw-w64-x86_64-cmake

如需編譯ffplayer,還需安裝SDL
pacman -S mingw-w64-x86_64-SDL2

或許要裝,沒對比過
pacman -S mingw-w64-x86_64-SDL2_gfx mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-SDL2_mixer mingw-w64-x86_64-SDL2_net mingw-w64-x86_64-SDL2_ttf mingw-w64-x86_64-SDL_gfx

2.2 x265安裝

1. 解壓

把安裝包“x265_3.1.1.tar.gz”拷貝到“安裝位置\home\用戶\”路徑下。

在打開的“MSYS2 MinGW 64-bit”窗口操作。

cd ~
tar xvf x265_3.1.1.tar.gz

mv x265_3.1.1 x265

2. 配置

cd x265/build/msys/

修改make-Makefiles.sh,添加安裝路徑-DCMAKE_INSTALL_PREFIX=/usr/local。添加後內容如下:

#!/bin/sh
# Run this from within an MSYS bash shell
cmake -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local ../../source && cmake-gui ../../source

執行配置

$ ./make-Makefiles.sh

3. 編譯與安裝

make
make install

2.3 ffmpeg安裝

1. 解壓

把安裝包“ffmpeg-3.3.2.tar.bz2”拷貝到“安裝位置\home\用戶\”路徑下。

在打開的“MSYS2 MinGW 64-bit”窗口操作。

cd ~
tar xvf ffmpeg-3.3.2.tar.bz2

2. 配置

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig":$PKG_CONFIG_PATH

cd ffmpeg-3.3.2
./configure --enable-gpl --enable-libx265 --enable-shared

configure配置大概需要10分鐘,耐心等待。

3. 編譯與安裝

make
make install

make編譯大概需要20分鐘,耐心等待。

如當前計算機是多核(數量爲:n),可以採用make -jn(如:make -j4),可以快一些。

三、驗證

3.1 x265驗證

$ which x265
/usr/local/bin/x265


$ x265 --version
x265 [info]: HEVC encoder version 3.1+5-9c5c9cef2a86
x265 [info]: build info [Windows][GCC 9.1.0][64 bit] 8bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2

3.2 ffmpeg驗證

$ which ffmpeg
/usr/local/bin/ffmpeg


$ ffmpeg -version
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 9.1.0 (Rev3, Built by MSYS2 project)
configuration: --enable-gpl --enable-libx265 --enable-shared
libavutil      55. 58.100 / 55. 58.100
libavcodec     57. 89.100 / 57. 89.100
libavformat    57. 71.100 / 57. 71.100
libavdevice    57.  6.100 / 57.  6.100
libavfilter     6. 82.100 /  6. 82.100
libswscale      4.  6.100 /  4.  6.100
libswresample   2.  7.100 /  2.  7.100
libpostproc    54.  5.100 / 54.  5.100

 


參考:

https://blog.csdn.net/engineer520/article/details/82192776 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章