一步步實現windows版ijkplayer系列文章之七——終結篇(附源碼)

一步步實現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

一步步實現windows版ijkplayer系列文章之七——終結篇(附源碼)

ijkplayer windows版本的移植工做終於有了一些進展,起初本身作這個項目是由於公司有可能會用到,因而用業餘時間慢慢熟悉相關知識和ijkplayer的代碼。如今應該是用不到了,到這裏作一個總結吧,最終可以達到的效果是是可以在windows上用OpenGL ES渲染視頻和用OpenAL播放聲音,可是還有音畫不一樣步的問題,之後有時間的話再去解決。各位若是有想學習音視頻渲染的能夠參考個人代碼相互交流學習。git

下面是編譯源碼的說明文檔,若是有任何問題能夠通知我。github

編譯環境

  • MinGW32
  • WIN7
  • Visual Studio 2017

MinGW32環境的搭建能夠參考以前的帖子windows

準備工做

編譯ijkplayer-ffmpeg

ijkplayer使用的ffmpeg直接拿來在windows上編譯會出錯,須要merge官方ffmpeg的最新代碼,能夠看以前的帖子。merge後的代碼push到了github上。源碼分析

將代碼clone到MInGW_root_path/msys/1.0/home/Admistrator/下面post

git clone https://github.com/harlanc/FFmpeg.git

將ijkplayer branch checkout下來:學習

git checkout origin/ijkplayer -b ijkplayer

configureui

$ ./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl --enable-debug=3 --disable-optimizations --disable-mmx --disable-s tripping

make && make installdebug

make && make install
  • 注意編譯ijkplayer-windows的時候會找一個<libffmpeg/config.h>的頭文件,這個文件若是在ijkplayer-ffmpeg/build目錄下沒有,本身新建一個文件夾libffmpeg,把ijkplayer-ffmpeg/build下面的config.h拷貝過去便可。

編譯Angle庫

clone到本地3d

git clone https://github.com/Microsoft/angle.git

調用批處理生成sln文件而後用Vistual Studio編譯生成如下3個dll:

  • d3dcompiler_47.dll
  • libEGL.dll
  • libGLESv2.dll

具體流程參考微軟的官方文檔

將上面三個dll拷貝到 MInGW_root_path/msys/1.0/local/bin下面

編譯ijkplayer-windows

clone代碼到本地

git clone https://github.com/harlanc/ijkplayer-windows.git
  • 注意:必定要把ijkplayer-windows和前面的ijkplayer-ffmpeg這兩個工程放在同一個目錄下,否則編譯ijkplayer-windows的時候會找不到ffmepg的頭文件

將ijkplayer-windows branch checkout下來:

git checkout origin/ijkplayer-windows -b ijkplayer-windows

將Angle代碼庫下面的include文件夾拷貝到ijkplayer-windows/ijkmedia/ijksdl 下面。

到ijkplayer-windows/ijkmedia目錄下執行configure命令:

./configure

執行make&& make install

make && make install

執行

最後會在ijkplayer-windows/ijkmedia/ijkplayer/windows/.libs 下面生成winplayer.exe可執行文件。將視頻文件拷貝到此目錄下面,執行下面的命令播放:

./winplayer.exe test.mp4

附一個最終的效果圖:

avatar

已知問題

  • 音畫不一樣步
相關文章
相關標籤/搜索