使用 IJKPlayer 搜索 google 时,有确切的四个条目。最好的似乎是这个。但是,通过添加提到的解决方案
mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "vf0", "yadif")
代码似乎不起作用。当然,在使用 ffplay(或 ffmpeg)时,一切都与是否包含过滤器有关。那么,是否有任何可用的解决方案,它与 IJKPlayer 去交错并告诉使用哪些过滤器(在编译时和运行时),白痴证明?
编辑:
我发现,播放器是用 --disable-avfilter 编译的。我从 git 中检查了最新版本并使用 --enable-avfilter 对其进行了编译。现在,目录 android/contrib/build/ffmpeg-armv7a/output/lib 也包含 libavfilter.a。libijkffmpeg.so 的大小更大并且正在运行
nm -D --defined-only libijkffmpeg.so
显示符号 vf_yadif。但是,IJKPlayer 在与选项 vf0/yadif 一起使用时仍然不会去隔行扫描。
我也为 avfilter 添加了版本信息:
I/IJKMEDIA: ===== versions =====
I/IJKMEDIA: ijkplayer : k0.8.0
I/IJKMEDIA: FFmpeg : ff3.3--ijk0.8.0--20170518--001
I/IJKMEDIA: libavutil : 55.58.100
I/IJKMEDIA: SDL_RunThread: [32440] ff_msg_loop
I/IJKMEDIA: libavcodec : 57.89.100
I/IJKMEDIA: libavformat : 57.71.100
I/IJKMEDIA: libavfilter : 6.82.100
I/IJKMEDIA: libswscale : 4.6.100
I/IJKMEDIA: libswresample: 2.7.100