ijkplayer с использованием Android MediaCodec и SurfaceTexture имеет низкую производительность с видео 60fps

Мы используем:

  • Sumsung S7
  • ijkplayer 0.84
  • mediacodec
  • surfaceTexture

чтобы воспроизвести это видео 60fps ( https://pan.baidu.com/s/1slFlDb3), используя ijkplayer's официальная демоверсия.

Производительность не очень хорошая с потерей большого количества кадров при использовании разрешения mediacodec &_enable textureview (используя surfacetexture).

Но vfps & dfps (DECODE_FRAMES_PER_SECOND & OUTPUT_FRAMES_PER_SECOND) видит почти 60 так же, как использование enable mediacodec & включить Surfaceview (используя Surfaceview), которые воспроизводят видео очень гладко, может кто-нибудь сказать мне, что surfaceTexture сделано, чтобы сделать такое отставание, или я должен установить некоторые настройки ijkplayer?

Оба метода (surfaceview а также surfacetexture) использовать же ijkmdeiaplayer

конфиги ijkplayer:

{
    IjkMediaPlayer player = new IjkMediaPlayer();
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-all-videos", 1L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 5L);
    playercalIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "subtitle", 1L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1L);
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "sync", "video");
    player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "android_version", android.os.Build.VERSION.SDK_INT);
}
```

есть идея объяснить это явление?

0 ответов

Другие вопросы по тегам