1. 程式人生 > >win10 msys2 vs2015 ffmpeg3.2.2 編譯

win10 msys2 vs2015 ffmpeg3.2.2 編譯

01 環境

win10x64企業版。vs2015update3企業版。git(git version 2.10.0.windows.1)。

02 下載ffmpeg程式碼

git clone https://git.ffmpeg.org/ffmpeg.git
git tag #目前最新穩定版本3.2.2
git checkout -b release3.2.2 n3.2.2

03 下載msys2

http://msys2.github.io. 選擇第二個:msys2-x86_64-20161025.exe
下載後,安裝預設安裝到C:/msys64。
msys2-x86_64-20161025.exe的下載可能比較慢,中途可能斷掉,建議使用firefox下載,或者使用支援斷點續傳的工具下載。

03.02 安裝編譯程式

安裝後,到msys2視窗執行,安裝編譯程式:

pacman -S make gcc diffutils pkg-config
# 可能需要多嘗試幾次,我安裝的時候gcc更新了幾次才成功,這個更新過程支援斷點續傳。
# 如果不按照pkg-config,執行./configure的時候,會出現如下warning
# WARNING: pkg-config not found, library detection may fail.

這裡寫圖片描述

03.03 重新命名link.exe

重新命名C:/msys64/usr/bin/link.exe 為C:/msys64/usr/bin/link.bak, 避免和MSVC 的link.exe抵觸。

03.04 下載YASM

YASM下載地址:http://yasm.tortall.net/Download.html,下載其64位版本Win64 .exe (64 位 Windows 通用)。
下載後,將下載回來的yasm-1.3.0-win64.exe 改名為yasm.exe,並放置於 MSYS2 安裝目錄中。就是放置到c:/msys64/usr/bin/ 中。

04 配置msys2

04.01 編輯C:/msys64/msys2_shell.cmd,

將其中的:
rem set MSYS2_PATH_TYPE=inherit
“rem”註釋刪除掉,成為:
set MSYS2_PATH_TYPE=inherit

04.02 開啟vs2015關聯的msys2視窗

在命令提示符視窗輸入:

# 切換到c:/msys64目錄
cd c:/msys64
# 切換vs2015 64位環境
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
#開啟msys2的mingw64視窗
msys2_shell.cmd -mingw64

這裡寫圖片描述

04.03 檢查工具元件

which cl link yasm cpp
#顯示如下內容
/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/cl
/c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64/link
/usr/bin/yasm
/usr/bin/cpp

這裡寫圖片描述

04.04 修改msys2視窗內碼表為GBK,避免編譯時顯示亂碼。

在視窗上右擊滑鼠,選擇[Options]選單,選擇[Text],locale選擇:zh_CN,Character set 選擇 GBK。
這裡寫圖片描述

05 編譯ffmpeg

#在msys2視窗:
cd d:/git/ffmpeg
#進入下載ffmpeg目錄中
./configure  --toolchain=msvc --arch=x86 --enable-yasm --enable-asm --enable-shared --disable-static

這裡寫圖片描述

如有:WARNING: pkg-config not found, library detection may fail.
#安裝pkg-config 
pacman -S pkg-config

這裡寫圖片描述

# make 過程會有很多waring提示,不需理會
make
make install

這樣以後,編譯生產的執行檔案ffmpeg.exe和DLL檔案在目錄C:/msys64/usr/local/bin中,開發標頭檔案在C:/msys64/usr/local/include中。
這裡寫圖片描述

06 編譯ffplay.exe

01 更新msys64

# 更新mingw-w64-x86_64-toolchain工具鏈
pacman -S mingw-w64-x86_64-toolchain

02 下載SDL和X264

tar -zxvf SDL2-2.0.5.tar.gz
cd SDL2-2.0.5
./configure --prefix=/d/git/ffmpeg/build
make
make install

下載x264,並編譯

git clone http://git.videolan.org/git/x264.git
git checkout -b stable remotes/origin/stable
./configure --prefix=/d/git/ffmpeg/build --host=x86_64-w64-mingw32 --enable-shared
make
make install

編譯帶ffplay.exe的ffmpeg

export PKG_CONFIG_PATH=/d/git/ffmpeg/build/lib/pkgconfig/
# 如果不正確設定PKG_CONFIG_PATH環境變數,帶ffplay的ffmpeg ./configure 時,會出現Warning
# WARNING: using libx264 without pkg-config
./configure --prefix=/d/git/ffmpeg/build --enable-libx264 --enable-shared --enable-static --arch=x86 --extra-cflags='-I/d/git/ffmpeg/build/include -I/d/git/ffmpeg/build/include/SDL' --extra-ldflags='-L/d/git/ffmpeg/build/lib' --enable-yasm --enable-asm --enable-version3 --enable-gpl --enable-memalign-hack --enable-ffplay
make 
make install

相關推薦

win10 msys2 vs2015 ffmpeg3.2.2 編譯

01 環境 win10x64企業版。vs2015update3企業版。git(git version 2.10.0.windows.1)。 02 下載ffmpeg程式碼 git clone https://git.ffmpeg.org/ffmpeg

WIN10下使用VS2017的MSVC編譯FFMPEG3.4.2動態靜態庫

之前在Win10下成功編譯nginx給了我不少信心,這兩天嘗試在Win10下編譯FFMPEG,沒想到給搗鼓成功了,記錄一下。首先下載MINGW,這個文章最後放我打包好的下載地址,直接將壓縮包解壓到C盤根目錄下即可,即安裝目錄為C:\MinGW裡面已經包含了編譯FFMPEG所需

Windows下PythonQt編譯vs2015+Qt5.11.2+PythonQt 3.2

測試的 pat qt 5 圖片 引入 以及 .org add info 時間:2018年10月22日,學習任何物事都有個探索過程。歡迎留言探討。   在Qt程序中,添加python進行混合編程,可以使用Python API,但交互起來很麻煩,不友好。網上推薦使用Python

win10+python3.66+vs2017+cuda9.2下執行tensorflow版的faster-Rcnn編譯訓練

win10+python3.66+vs2017+cuda9.2下執行tensorflow版的faster-Rcnn   配置Faster-RCNN(網上找的的都是基於python3.5的,不支援py3.6,本文主要嘗試用py3.6配置) python3.5版本 &

MSYS2下gdb-8.2編譯安裝

1,編譯環境: 1)作業系統環境: 系統版本:Windows 10 專業版 系統型別:64位作業系統,基於x64的處理器 2)MSYS2環境: mintty 2.9.4 (x86_64-pc-msys) gcc (GCC) 7.3.0 GNU Make 4.2.1 &

Apache 編譯安裝2.2

linux基礎運維學習一、Apache介紹1、Apache是什麽? Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服

vs2015+opencv-3.2.0-vc14配置

over comm lan tar ros blank num important ack 用的VS2015免費的community社區版,功能足矣。 很早就有配置opencv249,原本覺得低版本的穩定,一直沒有配成功過,測試總是報錯 出現error LINK:無法打開文

mongodb c++ driver 2.0編譯使用

頭文件 dem set program 指令 driver -- cts b- 安裝boost1.48.0 在boost的官網下載boost1.48.0,鏈接例如以下: http://sourceforge.net/projects/boost/files/bo

Spark入門實戰系列--2.Spark編譯與部署(中)--Hadoop編譯安裝

二進制包 1.10 不能 mapr 修復 att 機器 mave end 【註】該系列文章以及使用到安裝包/測試數據 能夠在《[傾情大奉送–Spark入門實戰系列] (http://blog.csdn.net/yirenboy/article/deta

使用bcc32做在windowXP上qt3.2.1編譯環境的配置

內容 技術分享 ima and 3.2 文件內容 可執行 技術 cut 1.安裝borland C++編譯器,編譯器文件所在目錄下的文件如下: 其中bcc32.cfg和ilink32.cfg文件是自己加進去的,bcc32.cfg內容是-I"C:\Borland\BCC

Apache2.2.32編譯安裝

linux 系統管理 服務器版本:centos 6.5版本:Apache2.2.32下載Apache安裝包:wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.32.tar.gz安裝Apache依賴的軟件: yum install -y zlib-

在CentOS 7.2編譯安裝Nginx 1.13.6

創建 ont uname group with pen 還需 www stub 第一個裏程碑 --- 檢查軟件安裝的系統環境 [root@rainjin ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (

apache編譯安裝 httpd 2.2 httpd 2.4

oca 2.3 出現 目錄 export sco kcon rpm ini #apache編譯安裝#httpd 2.2 , httpd 2.4 #!/bin/sh #apache編譯安裝 #httpd 2.2 , httpd 2.4 #centos #rpm -e

安裝zabbix-3.2.6編譯報錯no acceptable C compiler

zabbix linux執行安裝zabbix在編譯的時候./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libc

JVM理論:(四/2編譯過程——晚期(運行期)

num 計算 圖片 標準 int 虛擬 java 方法 特殊情況 cap 一、解釋器與編譯器   當虛擬機發現某個方法或代碼塊的運行特別頻繁時,就會把這些代碼認定為“熱點代碼” 。為了提高熱點代碼的執行效率,在運行時,虛擬機將會把這些代碼編譯成與本地平臺相關的機器碼,並進行

GCC編譯器原理(三)------編譯原理三:編譯過程(2-2)---編譯之語法分析

tails 需要 表達式 一個數 就是 out 和數 margin 操作符 2.2 語法分析 語法分析器(Grammar Parser)將對由掃描器產生的記號進行語法分析,從而產生語法樹(Syntax Tree)。整個分析過程采用了上下文無關語法(Context-free

spa 小程序的研發隨筆 (2) --- 預編譯

關鍵點 index img ive sets 需要 function ted console 因為是連續寫的2篇隨筆,廢話不多說。直接進入正題。 選擇預編譯的工具時,筆者采用了gulp。雖然,如今市面上大多采用的多為webpack,使用gulp也是有自己的緣由的。 webp

PHP 7.2.10 編譯安裝

ech ssi bug exif freetype ati rpath sco nts 準備環境 1.CentOS 系統 [root@test3 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)

number (2編譯錯 (類的大小寫錯誤) Filewriter cannot be resolved to a type

沒找到所使用的類所在的類定義,一般常見於使用了外部jar中的類,但有對應的import語句。比如,如果程式中使用了ArrayList這個類,但你程式類檔案的最開始import部分如果沒有import java.util.ArrayList;這句話的話,ArrayList出線的地方就會報ArrayLi

[更新時間:2018.11.9]Win10 +VS2017+ python3.66 + CUDA9.2 + cuDNNv7.2.1 + tensorflow-gpu 1.12.0 最新版

Win10 +VS2017+ python3.66 + CUDA9.2 + cuDNNv7.2.1 + tensorflow-gpu 1.10.0 最新版     官網的tensorflow 1.10只支援 cuda9.0