4

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

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

执行 shell 脚本时收到的内容

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

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

4

1 回答 1

1

要在下面构建 FFmpeg,ExoPlayerWindows 可以只使用它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 工具。如果你去检查上面的路径,你会发现一个名为windows-x86_64“prebuilt”的文件夹。这就是 HOST_PLATFORM 中的内容。

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

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

于 2021-11-07T10:53:20.177 回答