在使用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媒体播放器可以播放它并处理格式?
谢谢你的帮助,我真的很感谢你为我解决这个问题所做的一切努力
我有一个非常类似的项目,我使用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
视频。
希望这能有所帮助:)。
http://www.oracle.com/technetwork/java/javase/formats-138492.html
avi是一个容器,它可以容纳以各种不同方法编码的视频。请查看此列表,了解JMF可以解码和不能解码的格式。
根据;http://jeshua.me/blog/EncodingvideowithffmpegforJMF
ffmpeg -i input.mpg -vcodec mjpeg -acodec pcm_s16be -ac 2 -y ouput.mov
应该有效。