是否有用于 mp4 文件的 Java API?

2024-03-17

可以使用此处理 M3 文件mp3 SPI 支持 http://www.javazoom.net/mp3spi/sources.html,但我没有找到类似于 mp4 文件的内容。

任何帮助,将不胜感激。

--UPDATE

我想要做的是获取文件的大小,就像我使用以下代码处理波形文件一样:

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long audioFileLength = file.length();
int frameSize = format.getFrameSize();
float frameRate = format.getFrameRate();
float durationInSeconds = (audioFileLength / (frameSize * frameRate));

--ANSWER

这是使用@mdma(IBM工具包)提示的答案代码:

/**
 * Use IBMPlayerForMpeg4SDK to get mp4 file duration.
 * 
 * @return the mp4File duration in milliseconds.
 */
public static long getMp4Duration(File mp4File) throws IllegalStateException, IOException {
PlayerControl playerControl = PlayerFactory.createLightweightMPEG4Player();
playerControl.open(mp4File.getAbsolutePath());
long mili = playerControl.getDuration();
// int sec = (int) ((mili / 1000) % 60);
// int min = (int) ((mili / 1000) / 60);
// System.out.println("IBM Tookit result = " + min + ":" + sec);
return mili;
}

--

相关的、与语言无关的问题:有人熟悉mp4数据结构吗? https://stackoverflow.com/questions/3057157/anyone-familiar-with-mp4-data-structure


Mp4 是一种容器格式 - 为了能够找到内部音频的持续时间,您必须首先解析容器中的内容。您可以使用以下命令提取 mp4 文件的内容isobox mp4解析器 http://code.google.com/p/mp4parser/.

完成此操作后,您就获得了原始音频数据。如果它是 java 支持的格式之一(wav、mp3 等),那么您可以像打开 wav 一样打开该文件。最初,为了简单起见和更容易调试,您可能会将音频提取到单独的文件中。当此功能正常工作时,您可以进行内联提取 - 您实现一个从 mp4 中动态提取音频内容的 InputStreamFilter,因此不需要额外的外部文件。

IBM Alphaworks http://www.alphaworks.ibm.com/tech/tk4mpeg4有一个纯 java MP4 解码器库可用,但它对于您当前的需求来说可能有点过头了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有用于 mp4 文件的 Java API? 的相关文章

  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 在 Mac 上安装 xgboost - ld: 未找到库

    我正在尝试在我的 Mac 上安装支持 OpenMP 的 xgboost 我安装了gcc没有问题 brew install gcc without multilib 然后克隆 git 存储库 git clone recursive https
  • 在 Python 中使用 for 循环从外部文件打印列表中的每一项

    我正在编写一个从 txt 文件读取 2D 列表的程序 我试图循环遍历该列表 并打印其中的每个项目 我使用了 for 循环来遍历列表中的每个项目 txt 文件中二维列表的内容为 1 10 Hello World 这是我到目前为止打开文件 读取
  • Bokeh - 堆叠和分组图表

    是否可以在散景中创建一个既堆叠又分组的图 有点像http www highcharts com demo column stacked and grouped http www highcharts com demo column stac
  • Datastax java 驱动程序 3.0.0 未找到枚举注释

    希望我能很好地阅读文档 http docs datastax com en developer java driver 3 0 java driver reference crudOperations html http docs data
  • 如何使用 glide 加载圆形 appcompat 操作栏徽标

    到目前为止 我已经完成了以下操作 如果我省略圆形图像创建部分 它可以正常工作 但我必须在操作栏中显示圆形图像 这是我到目前为止所尝试过的 任何帮助将不胜感激 Glide with mContext load doctorDetailsLis
  • 使用 Android SDK 3.0 登录 Facebook 导致 ANR 或根本无法工作

    为了让用户在 Android 应用程序中登录 Facebook 我尝试使用以下代码 用户登录后 应获取其所有朋友的位置 不幸的是 此代码有时会导致 ANR 如 Google Play 开发者控制台中报告的那样 有时甚至不起作用 如果我删除
  • 访问 iframe 中的表

    i have a website login email protected cdn cgi l email protection pas 12345678 log in and go to the drivers section left
  • 代码签名错误:身份“iPhone Developer”与默认钥匙串中的任何有效证书/私钥对不匹配

    我正在尝试创建我的应用程序的临时发行版以发送给同事 尝试存档我的项目以供分发时出现以下错误 代码签名错误 身份 iPhone 开发者 与任何有效的不匹配 中的证书 私钥对 默认钥匙串 这些是我遵循的步骤 我已在配置门户中注册了该设备 我已在
  • Vulkan命令执行顺序

    引用Vulkan 1 0规范文档 chapter 5 Command Buffers 第4段 除非另有说明 并且没有显式同步 否则通过命令缓冲区提交到队列的各种命令可以按相对于彼此的任意顺序执行 和 或同时执行 在第2 1 1章 队列操作
  • LDADD 和 LIBADD 有什么区别?

    我正在尝试设置一个混合使用 libtool 库和可执行文件的 automake 项目 并且我很难理解 automake 文档 尤其是 as 涉及告诉编译器进行链接 那么有人可以解释一下之间的区别吗LDADD and LIBADD 像 什么时
  • 如何将 cv::Mat 转换为 QImage 或 QPixmap?

    我尝试环顾四周并尝试了我发现的所有内容 但尚未找到解决此问题的方法 我正在尝试通过单击按钮来更新 QT 应用程序中的图像 在构造函数中 我成功地显示了图像 cv Mat temp cv Mat this gt cv size CV 8UC3
  • “推送通知”-反馈、卸载应用

    Apple 推送通知 反馈服务 您如何知道用户何时卸载您的应用程序 这样您就可以从推送服务器中删除他们的设备令牌 你根本不知道 您可以获取对于同一应用程序令牌字符串可能相同的设备标识字符串 并跟踪特定设备的令牌是否已更改 因此 您可以使用新
  • Web Essentials 2017 和 TypeScript 定义生成

    刚刚从 Visual Studio 市场安装了 Web Essentials 2017 但似乎缺少从 C 类创建 TypeScript 定义的功能 在 Web Essentials 2015 中 我将鼠标右键悬停在 C 类文件上 将会出现一
  • JavaScript 对象字面量和数组

    我有以下 JavaScript 代码 oCoord x null y null var aStack oCoord x 726 oCoord y 52 aStack push oCoord oCoord x 76 oCoord y 532
  • file_get_contents 失败并显示“getaddrinfo 失败:没有与主机名关联的地址”

    我正在尝试从另一台主机获取该页面 我按照 hph 手册所述 page file get contents http www example com echo page 但它失败了 在 apache 日志中我得到以下内容 Mon Oct 12
  • 为什么scss/css中文件名前面要加“_”或“_”?

    Why put scss 中文件名前面 filename scss 为什么需要 下划线 是 scss 的部分内容 这意味着样式表将被导入 import 到主样式表 即 styles scss 使用部分的优点是您可以使用多个文件来组织代码 并
  • 教义 2 中的关系

    我完全没有理解教义中的关联 我想知道单向和双向关系有什么区别 学说2中的正方和反方是什么 双向和单向关系 双向和单向与 PHP 对象中的引用有关 如你看到的here http www doctrine project org docs or
  • 使用 CGMutablePath 创建路径会创建指向错误 CGPoint 的线

    我打算在屏幕上用 2D 箭头显示 AR 对象的信息 所以我用了projectPoint获取物体在屏幕中对应的位置 我有这个函数返回将节点的 3D 位置转换为 2D 并CGPoint显示信息文本 func getPoint sceneView
  • 通过socket编程将png图像文件从服务器(桌面)发送到客户端(android)

    我创建了一个 Android 应用程序 其中 Android 应用程序充当客户端 服务器驻留在桌面上 我正在使用套接字编程进行通信 我已成功在客户端和服务器之间传输消息 但我不知道如何传输图像 我需要将图像文件从服务器发送到客户端 不是从客
  • 是否有用于 mp4 文件的 Java API?

    可以使用此处理 M3 文件mp3 SPI 支持 http www javazoom net mp3spi sources html 但我没有找到类似于 mp4 文件的内容 任何帮助 将不胜感激 UPDATE 我想要做的是获取文件的大小 就像