在How do I remove nullpointerexception上使用jmf时遇到异常。我现在可以播放我的视频,但只能播放.mov文件here at this website。
但我正在使用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
on that site一起使用。
问题是
如何对视频进行编码,以便我的jmf媒体播放器可以播放并处理格式?
感谢您的帮助,我非常感谢您为我提出的所有问题。 :)
答案 0 :(得分:1)
我有一个非常类似的项目,我用jmf
来播放视频文件。我刚刚使用了.mov
文件。所以我可以建议你.mov。您可以稍后将其转换为.avi。
以下是您在jmf中播放.avi视频的方法,据我所知,这适用于所有类型的.avi视频。您关心的是拥有高质量的视频,它会为您提供高质量的视频。
这就是诀窍,
您首先按照您想要的方式对视频进行编码。您可以设置比特率,按照您希望的方式对所有内容进行帧化。
尝试使用jmf运行视频,由于jmf的limited support格式,它可能无法运行。然后根据this site对其进行编码。
相同的代码现在可以在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
视频。
希望这会有所帮助:)。
答案 1 :(得分:0)
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
应该工作。