將ijkplayer播放器移植到windows平臺(附原始碼)
將ijkplayer移植到windows平臺(附原始碼)
ijkplayer windows版本的移植工作終於有了一些進展,起初自己做這個專案是因為公司有可能會用到,於是用業餘時間慢慢熟悉相關知識和ijkplayer的程式碼。現在應該是用不到了,到這裡做一個總結吧,最終能夠達到的效果是是能夠在windows上用OpenGL ES渲染視訊和用OpenAL播放聲音,但是還有音畫不同步的問題,以後有時間的話再去解決。各位如果有想學習音視訊渲染的可以參考我的程式碼相互交流學習。
下面是編譯原始碼的說明文件,如果有任何問題可以通知我。
編譯環境
- MinGW32
- WIN7
- Visual Studio 2017
MinGW32環境的搭建可以參考之前的帖子
準備工作
編譯ijkplayer-ffmpeg
ijkplayer使用的ffmpeg直接拿來在windows上編譯會出錯,需要merge官方ffmpeg的最新程式碼,可以看之前的帖子。merge後的程式碼push到了 FFmpeg.git" rel="nofollow,noindex" target="_blank">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
編譯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 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
附一個最終的效果圖:
已知問題
- 音畫不同步