Ijkplayer Snapshot

Issue

在Android使用Ijkplayer播放影片, 預設並沒有支援rtsp以及截圖功能, 因此修改config增加支援rtsp串流播放, 以及增加截圖功能。

Solution

參考原始的ijkplayer ,以及jgfntu增加截圖功能.

如下修改後的projet已經匯整在我的Github: ijkplayer


詳細方法如下:

下載

https://github.com/Bilibili/ijkplayer 下載

設定好環境變數 , ANDROID_SDK, ANDROID_NDK等.

*下載之後, 需要修改config改為使用module-default.sh
cd config
rm module.sh
ln -s module-default.sh module.sh
*參照下列底層檔案修改方式修改
  • ijkmedia/ijkplayer/Android.mk

  • ijkmedia/ijkplayer/android/ijkplayer_jni.c



  • ijkmedia/ijkplayer/ff_ffplay.c

依照下列官方方式建置

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.5.1

./init-android.sh

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

cd ..
./compile-ijk.sh all

建置完成後, 打開ijkplayer專案 (/android/ijkplayer) 即可看到各個平台的lib以及範例App

**因為底層增加截圖function, 所以Java程式也需要增加對應的function, 否則會在載入lib的時候報錯.

參考Java修改紀錄

  • IMediaPlayer.java 增加getCurrentFrame

  • IJKMediaPlayer.java

  • MediaPlayerProxy.java

  • ijkVideoView.java
  • ijkExoMdeiaPlayer.java
  • AndroidMediaPlayer
*到目前為止,只是編譯會過, 執行RSTP正常!
*要測試抓圖功能, 可以參考下列Github專案 , Branch:snapshot

Demo
ImageUtils.java

參考資料

選擇Branch: snapshot

底層檔案修改紀錄

Java檔案修改紀錄