有没有Java API的mp4文件?

前端之家收集整理的这篇文章主要介绍了有没有Java API的mp4文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Mp3文件可以使用这个 mp3 SPI support来处理,但是我没有找到类似于mp4文件的东西.

任何帮助将不胜感激.

–update

我想做的是获取文件的大小,就像使用这个代码的wave文件一样:

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));

– 回答

以下是使用@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;
}

相关,语言无关,问题:
Anyone familiar with mp4 data structure?

解决方法

Mp4是一种容器格式 – 为了能够在内部找到音频的持续时间,您必须首先从容器中解析出内容.您可以使用 isobox mp4parser提取mp4文件内容.

完成之后,您将拥有原始的音频数据.如果它是java(wav,mp3等)支持的格式之一,那么你可以打开这个文件,就像已经为wav已经完成的那样.最初,您可能会将音频解压缩到一个单独的文件,为了简单起见,调试更简单.当这样工作时,您可以在线提取 – 您实现一个InputStreamFilter,即时从mp4中提取音频内容,因此不需要额外的外部文件.

IBM Alphaworks有一个纯Java MP4解码器库可用,但它可能是为您目前的需求过度.

猜你在找的Java相关文章