【问题标题】:How can I embed Ffmpeg extension into Exoplayer under windows?如何在 windows 下将 Ffmpeg 扩展嵌入到 Exoplayer 中?
【发布时间】:2020-09-20 21:31:26
【问题描述】:

由于某些原因,我必须在 Windows 10 操作系统下使用 Android-Studio 作为 IDE。我的问题是,exoplayer 使用 Android-TV 设备的软硬件解码器来解码视频流。 显然,大多数 Android-TV 设备没有内置解码器来解码 mpeg-2 声音,因此 mpeg-2 流的声音是静音的,但 mpeg-2 视频播放良好。为了解决这样的问题,我相信我必须在 exoplayer 中嵌入 Ffmpeg 扩展。为此,我按照建议在 Windows PowerShell 下按照here 的说明进行操作,但存在一些问题。

首先:在使用 PowerShell 时,Windows 的 HOST_PLATFORM 变量的值应该是多少? 第二:由于未知原因,我在执行 Shell 脚本“build_ffmpeg.sh”时收到以下消息。

What I receive when I execute shell script

现在,我如何为 exoplayer 嵌入 ffmpeg 扩展(在 windows 10 操作系统下),启用它进行解码并解决这些问题?我的编程语言是java。谢谢。

注意:如果您有任何其他(除了将 Ffmpeg 嵌入到 exoplayer 中)建议来解决我的问题,请告诉我。

【问题讨论】:

    标签: java android exoplayer decoder encoder-decoder


    【解决方案1】:

    Windows 下为ExoPlayer 构建FFmpeg 您可以使用Git Bash for Windows 来执行构建过程。

    所有命令都几乎相同(我们将在稍后讨论差异)。 请注意,NDK_PATH 是您的 NDK 文件夹的路径(通常是版本号,默认情况下可以在 YourAndroidSDK\ndk\yourNDKversion 中找到它

    至于区别,只针对HOST_PLATFORM,你应该使用windows-x86_64,通过检查build_ffmpeg.sh,有一行说:

    TOOLCHAIN_PREFIX="${NDK_PATH}/toolchains/llvm/prebuilt/${HOST_PLATFORM}/bin"
    

    变量 HOST_PLATFORM 仅用于获取适用于 Windows 的正确 NDK 工具。如果你去检查上面的路径,你会在'prebuilt'下找到一个名为windows-x86_64的文件夹。这就是 HOST_PLATFORM 中的内容。

    如果您正确获取了 NDK 路径、HOST_PLATFORM 正确、FFMPEG_MODULE_PATH 以及最后但并非最不重要的 ENABLED_DECODERS,您应该能够非常轻松地构建 FFmpeg。

    如果您不想重新设置变量,只需使用记事本编辑 build_ffmpeg.sh 文件,然后编辑变量以使它们成为您想要的,而无需在 PowerShell 终端中进行所有操作重新来过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 2020-03-28
      • 2017-11-11
      • 1970-01-01
      • 2021-02-02
      • 2018-05-02
      • 1970-01-01
      相关资源
      最近更新 更多