English 中文(简体)
Java中无损视频编解码器的播放。
原标题:
  • 时间:2008-12-27 18:01:43
  •  标签:

我需要使用无损视频编解码器编码一系列帧并在Java应用程序中播放它们。我不在乎文件大小。输出帧应完全匹配输入帧。即使在高比特率下,有损编解码器也无法做到这一点。

似乎没有任何着名的无损视频编解码器在 JMF 或 FMJ 中得到支持:

  • HuffYUV
  • CorePNG
  • Lagarith
  • FFV1
  • ...

你知道任何被Java支持的无损视频编解码器吗?

我考虑过的其他选择:

  • animated GIF: is the playback guaranteed to have a constant frame rate like real video codecs?
  • load and display the separate frames: how difficult will it be to do this at a constant frame rate and without dropping too many frames?
  • Proce55ing: the video playback library requires Quicktime, which isn t available on my platform.

编辑:我最终决定选择JMF的(非标准)MotionJPEG以最高质量进行调整。虽然不是严格意义上的无损,但仍比MPEG4质量要好得多。

问题回答

FMJ支持一种实验性的存储/播放PNG图像系列的方法,就像MJPEG是一系列JPEG图像一样。其中一种是实验性的XML文件格式,可以对PNG进行uuencode编码(相当臃肿),另一种是x-multipart-mixed-replace HTTP格式,它在以扩展名.mmr结尾的文件格式中得到了FMJ的支持。

  • 动态 GIF:是的,您可以定义动态 GIF 的帧速率(实际上,您可以为每个单独的帧设置延迟时间)。

  • 手动显示帧取决于硬件、帧速和图像大小。在没有硬件支持的情况下,30fps 的高清分辨率将很困难,任何平台上都不应该有缩略图大小的问题。

  • 另一种选择:根据您想要做什么,您可以考虑使用一些本地代码来远程控制另一个播放器或框架。例如,在*nix/X11上嵌入mplayer,或者在Windows上使用COM来控制WMP或DirectShow。

嗯,既然你说文件大小不是问题,gzip / bzip2 可能是一个快速而无痛苦的选择。它不会提供最大的压缩效果,但如果你找不到更好的答案,它可能是最后的手段。

使用java.util.zip.GZIPInputStream可以透明地打开Gzipped文件,并且类似的接口也可用于Bzip2。





相关问题
热门标签