【问题标题】:deinterlace video when playing with IJKPlayer使用 IJKPlayer 播放时去隔行视频
【发布时间】:2017-11-23 01:10:30
【问题描述】:

在谷歌上搜索关于使用 IJKPlayer 进行去隔行播放时,有四个条目。最好的似乎是this。但是,通过添加

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

【问题讨论】:

  • 我在 IJKPlayer 源中找到了以下文件: ./android/contrib/ffmpeg-armv7a/libavfilter/vf_yadif.c ./android/contrib/ffmpeg-armv7a/libavfilter/yadif.h 我想知道,如何激活 yadif。

标签: android video options ijkplayer


【解决方案1】:

终于找到了解决办法:

这是在 android 上使用 IJKPlayer 去隔行扫描的方法:

  • 从 GIT 获取 IJKPlayer 的最新源代码

    git clone https://github.com/Bilibili/ijkplayer.git

  • 在新建的目录下,进入config。

  • 打开你喜欢的module*.sh文件并启用过滤:

    export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avfilter"

    export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-filters"

  • 现在,转到 ijkplayer/ijkmedia 并打开 config.h。在 config.h 中删除以下行:

// FIXME: merge filter related code and enable it // remove these lines to enable avfilter #ifdef CONFIG_AVFILTER #undef CONFIG_AVFILTER #endif #define CONFIG_AVFILTER 0

  • 按照 README.md 中的说明构建播放器。

播放器现在通过设置支持去隔行:

mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "vf0", "yadif");

这必须在 mediaPlayer.start() 之前完成。

由于去隔行是一项耗时的工作,我不得不使用 yadif 选项,让它在我的设备上运行,很好。我将它与"yadif=2" 一起使用。有关 yadif 的更多详细信息,请参阅官方 FFmpeg 文档。

【讨论】:

    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多