一步步實現windows版ijkplayer系列文章之一——Windows10平臺編譯ffmpeg 4.0.2,生成ffplay
一步步實現windows版ijkplayer系列文章之二——Ijkplayer播放器源碼分析之音視頻輸出——視頻篇
一步步實現windows版ijkplayer系列文章之三——Ijkplayer播放器源碼分析之音視頻輸出——音頻篇
一步步實現windows版ijkplayer系列文章之四——windows下編譯ijkplyer版ffmpeg
一步步實現windows版ijkplayer系列文章之五——使用automake一步步生成makefile
一步步實現windows版ijkplayer系列文章之六——SDL2源碼分析之OpenGL ES在windows上的渲染過程
一步步實現windows版ijkplayer系列文章之七——終結篇(附源碼)html
最近想研究下ffplay的代碼,學習代碼是枯燥無味的,也是抽象的,學習一個系統或者軟件以前,好的入門方法是先把系統搭建起來,或者把軟件編譯出來,直觀的操做一下相關的功能,由表入裏,熟悉功能以後,在慢慢深刻代碼,由現象看到本質,才能理解的更加深入。windows
ffmpeg目前最新的代碼是4.0.2.編譯ffmpeg代碼以前須要作一些準備工做。bash
網上有兩種windows下的gcc編譯環境可供選擇,一個是MinGW,另一個是cygwin,兩者的區別能夠參考一個帖子。其中注意有一點是使用cygwin編譯出來的程序都要依賴Cygwin1.dll,所以決定使用WinGW編譯ffmpeg。tcp
下載連接工具
下載以後安裝,打開主界面,安裝下面的組件。源碼分析
MSYS即Minimal GNU(POSIX)system on Windows,是一個小型的GNU環境,包括基本的bash,make等等。是Windows下最優秀的GNU環境,它也能夠經過minGW installation manager進行安裝。post
打開minGW installation manager,按照下圖進行勾選:學習
點擊Installation->Apply Changes 進行安裝基本包。ui
編譯ffmpeg是很簡單的,但默認編譯ffmpeg是不帶ffplay的。須要作額外的操做。.net
yasm是彙編編譯器,由於ffmpeg中爲了提升效率用到了彙編指令,好比MMX和SSE。所以須要安裝這個工具。下載連接
我編譯的是32位的ffmpeg,因此下載「Win32.exe」。下載完成以後將yasm-1.3.0-win32.exe重命名爲yasm.exe,放到C:\MinGW\msys\1.0\bin下面。
下載nasm,並將nasm.exe拷貝到C:\MinGW\msys\1.0\bin下面。
連接
pkg-config是一個輔助的配置、連接工具,能夠方便的支持gcc自動配置。
下載連接,下載完以後將bin下面的pkg-config.exe拷貝到C:\MinGW\msys\1.0\bin下面。
下載SDL2,解壓以後,把目錄下lib,bin.include,share下面的內容拷貝到C:\MinGW\msys\1.0的對應目錄下,注意,是所有。
把下載的ffmpeg源碼包放到home目錄下面,打開C:\MinGW\msys\1.0下的msys.bat,會自動在目錄C:\MinGW\msys\1.0下生成一個home目錄,進入ffmpeg源碼根目錄,建立build文件夾,進入文件夾,執行下面的命令:
$ ../configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-pthreads --enable-sdl
gdb debug用下面的命令:
$ ./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl --enable-debug=3 --disable-optimizations --disable-mmx --disable-s tripping
成功以後,執行make
make
可是會報以下錯誤:
"ws2tcpip.h is not compatible with winsock.h. Include winsock2.h instead."
字面意思是某個文件包含了winsock.h,可是應該包含winsock2.h。找了半天,最後想到一個辦法,把C:\MinGW\include下面的winsock.h刪掉,再次執行make命令,最後發現是ptw32_errno.h這個文件包含了winsock.h,將其改成winsock2.h, 再次make,成功。
最後make install
make install
ffplay.exe ed_1024_512.mp4
https://www.cnblogs.com/tocy/p/windows_mingw_compile_ffmpeg_with_ffplay.html