一步步實現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系列文章之七——終結篇(附源碼)

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

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

下面是編譯源碼的說明文檔,如果有任何問題可以通知我。

編譯環境

  • MinGW32
  • WIN7
  • Visual Studio 2017

MinGW32環境的搭建可以參考之前的帖子

准備工作

編譯ijkplayer-ffmpeg

ijkplayer使用的ffmpeg直接拿來在windows上編譯會出錯,需要merge官方ffmpeg的最新代碼,可以看之前的帖子。merge后的代碼push到了github上。

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

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

將ijkplayer branch checkout下來:

git checkout origin/ijkplayer -b ijkplayer

configure

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

make && make install

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

編譯Angle庫

clone到本地

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

已知問題

  • 音畫不同步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM