1

在使用 jmf 遇到异常后,如何删除 nullpointerexception。我现在可以播放我的视频,但只能播放此网站上的 .mov 文件。

但我正在ffmpeg使用图像和.wav音频文件创建我的视频文件。

我可以以任何格式创建它,.avi, .mov, .mp4,但重要的是我应该能够在我使用 JMF 构建的播放器中播放它。

目前,我收到此错误,

Unable to handle format: FMP4, 1366x768, FrameRate=30.0, Length=3147264 0 extra bytes
java.lang.NullPointerException
        at java.awt.Container.addImpl(Unknown Source)
        at java.awt.Container.add(Unknown Source)
        at javax.swing.JFrame.addImpl(Unknown Source)
        at java.awt.Container.add(Unknown Source)
        at mediaPlayer.<init>(mediaPlayer.java:31)
        at mediaPlayer.main(mediaPlayer.java:38)

这里的例外不是问题,因为播放器lunarphases.mov 在该站点上可以正常工作。

问题是

如何对视频进行编码,以便我的 jmf 媒体播放器可以播放并处理格式?

感谢您的所有帮助,我非常感谢您为我解决这个问题所做的所有努力。:)

4

2 回答 2

1

我有一个非常相似的项目,我曾经jmf在其中播放视频文件。我刚刚使用了该.mov文件。所以我可以向你推荐.mov。您可以稍后再将其转换为 .avi。

这是在 jmf 中播放 .avi 视频的方法,据我猜测,这适用于所有类型的 .avi 视频。你关心的是有一个高质量的视频,它会给你一个高质量的视频。

这里的诀窍,

您首先对视频进行编码,无论您想以何种方式进行编码。您可以按照您想要的方式设置比特率,帧速率。

尝试使用 jmf 运行视频,由于jmf 对格式的支持有限,它可能无法运行。然后根据这个站点对其进行编码。

相同的代码现在可以jmf毫无问题地在视频播放器中运行视频。

Robadob 在上述答案中也指出了同样的问题,

ffmpeg -i input.avi -vcodec mjpeg -acodec pcm_s16be -ac 2 -y output.mov 

是的,它给了我一个质量很差的视频,所以通过提供不同的比特率对其进行编码,

ffmpeg -i input.avi -vcodec mjpeg -acodec pcm_s16be -ac 2 -y -b:v 5000k output.mov 

这将为您提供质量更好的.mov视频。

希望这可以帮助:)。

于 2013-08-03T14:28:10.813 回答
0

http://www.oracle.com/technetwork/java/javase/formats-138492.html

avi is a container, it can hold video encoded in various different methods. Check this list for the formats which JMF can and can't decode.

According to; http://jeshua.me/blog/EncodingvideowithffmpegforJMF

ffmpeg -i input.mpg -vcodec mjpeg -acodec pcm_s16be -ac 2 -y ouput.mov 

Should work.

于 2013-07-27T15:53:18.363 回答