如何在Java中轻松读取视频时长和比特率?
这是我的第一个 Java 项目。 我正在用 Java 创建批量 FTP 视频上传器小程序。
在开始上传视频之前,我需要从视频文件中读取视频时长和视频比特率。
我在 Google 上做了一些研究,但只找到了一些第三方库(jffmpeg、xugler 等)。
有没有更简单的方法可以使用 Java 获取这些信息?
This is my first project in Java.
I'm creating batch FTP video uploader applet in Java.
Before I start uploading videos I need to read the video duration and video bitrate from the video files.
I did some research on Google but I only found some third party libraries (jffmpeg, xugler etc..)
Is there any easier way to get this information using Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用第 3 方工具,例如 Xuggle 或直接购买 FFmpeg。 Java 中没有“本地”方法可以做到这一点。 (Java 在“媒体内容”方面的尝试,如 JMF,从未真正失败过。)编写自己的媒体文件解析器将是困难且耗时的——这是轻描淡写的说法。
不需要花费太多精力来处理 FFmpeg 并解析输出。我的应用程序做到了,尽管它只对持续时间感兴趣。这是一个简单的 CLI 示例:
因此,您只需要逐行解析此行并找到此行:
然后将其切碎即可开始!
You'll need to use a 3rd party tool, like Xuggle or shell out directly to FFmpeg. There is no 'native' way in Java to do this. (Java attempts at "media stuff", like JMF, have never really paned out.) Writing your own media file parser is going to be difficult and time consuming--and that is an understatement.
It doen't take much effort to shell out to FFmpeg and parse the output. My app does it, although it is only interested in the durration. Here is a simple CLI example:
So, you'll just need to parse this line-by-line and find this line:
Then chop that up and you are good to go!
您可以使用 ffmpeg 项目中的 ffprobe 来获取多媒体文件的信息并获得良好的 JSON 格式的输出。
请查看此答案作为示例。
You can use ffprobe from the ffmpeg project, to get the information of your multimedia files and get the a nicely JSON formated output.
Take a look at this answer for an example.