Android 从视频中去除音频

发布于 2024-07-14 06:48:10 字数 178 浏览 12 评论 0原文

在我的程序中,它获取 MP4 视频,我希望它输出 MP3(没有任何服务器端内容)。由于 Android(和我的应用程序)需要在许多不同的硬件配置上运行,这意味着我可能无法使用 FFMPEG 。 我知道这可能非常消耗电池和处理能力,尤其是对于手机而言,但我需要为我的用户提供此选项。 我找不到任何不使用 FFMPEG 的 Java 本机库。

In my program, it gets MP4 video in, and I want it to output a MP3 (without any server-side stuff.) Since Android (and my app) needs to run on many different hardware configurations, this means I probably cannot use FFMPEG. I know this may be very battery and processing power intensive, especially for a mobile phone, but I need this option for my users. I cannot find any native libraries for Java that don't use FFMPEG.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

携余温的黄昏 2024-07-21 06:48:10

我认为 FFMPEG 没有什么问题,因为 显然它运行在 Debian 支持的 11 架构上。 唯一不支持的架构显然是 m68k,其他都是移植到 FreeBSD 内核或 Hurd 内核的旧版本。 据我对 Android 的了解,它基于 ARM 的事实不会很快改变。

当然,围绕本机代码的 Java 包装器可能存在一些问题。 这是问题所在吗? 我既不是 Android 程序员,也不是 Java 程序员,但我确信您可以检测平台并动态加载适当的本机包装器。

I see little problem with FFMPEG, since apparently it runs on 11 architectures supported by Debian. Only architecture not supported is apparently m68k, others are old versions in ports to FreeBSD kernel, or Hurd kernel. And from what I know of Android, fact that it's based on ARM isn't going to change any time soon.

Of course, there could be some issues with Java wrappers around native code. Is that the issue? I'm not an Android nor a Java programmer, but I'm sure you can detect the platform and dynamically load appropriate native wrapper.

冷月断魂刀 2024-07-21 06:48:10

MPEG_4 Part 14(.mp4 文件扩展名)是一种容器格式。 换句话说,这指定了如何将多个媒体流打包在一起。 处理容器格式的计算成本比压缩或解压缩视频要低得多。 如果事实证明在手机 ARM 处理器上读取 .mp4 文件并提取音频流的计算成本太高,我会感到惊讶。

我也没有看到任何立即合适的 Java 库。 建立自己的图书馆可能不会太难。 解析容器格式比解压缩视频简单得多。 并且您确实有 ffmpeg 中的 libavformat 实现作为参考。 MPEG4 第 14 部分标准可在此处找到:

http:// webstore.iec.ch/preview/info_isoiec14496-14%7Bed1.0%7Den.pdf

和此处:

http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html

MPEG_4 Part 14 (.mp4 file extension) is a container format. In other words, this specifies how multiple media streams can be packaged together. Processing container formats is much less computationally expensive than - for example - compressing or decompressing video. I would be surprised if it turned out to be too computationally expensive to read through an .mp4 file and extract an audio stream on a cell phone ARM processor.

I haven't seen any immediately suitable Java libraries either. It probably wouldn't be too hard to build your own library. Parsing container formats is much simpler than decompressing video. And you do have the libavformat implementation in ffmpeg as a reference. The MPEG4 Part 14 standards can be found here:

http://webstore.iec.ch/preview/info_isoiec14496-14%7Bed1.0%7Den.pdf

and here:

http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html

撩人痒 2024-07-21 06:48:10

我还没有使用过它,但我下载并正在查看 IBM Toolkit for MPEG- 的 API- 4.。 不过,它在数据访问功能上看起来有点轻。 不过,其实现是纯java的。 看起来他们已经混淆了他们的编解码器罐子。

I haven't used it, but I downloaded and am looking at the API for IBM Toolkit for MPEG-4. It looks a little light on data access features, though. The implementation is pure java, though. It looks like they've obfuscated their codec jars.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文