嗨,我试图在我的web应用程序中使用Xuggler,在这个应用程序中,我尝试将视频文件从一种格式转换为another.For (桌面java应用程序),我能够这样做,但是对于web应用程序,我得到了以下错误
frontend.DownloadServlet -
java.awt.HeadlessException
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:2
07)
at java.awt.Window.<init>(Window.java:535)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:180)
at com.xuggle.mediatool.MediaViewer$PositionFrame.<init>(MediaViewer.jav
a:1315)
at com.xuggle.mediatool.MediaViewer$MediaFrame.<init>(MediaViewer.java:1
427)
at com.xuggle.mediatool.MediaViewer.onAddStream(MediaViewer.java:421)
at com.xuggle.mediatool.AMediaToolMixin.onAddStream(AMediaToolMixin.java
:78)
at com.xuggle.mediatool.MediaReader.getStreamCoder(MediaReader.java:375)
at com.xuggle.mediatool.MediaReader.readPacket(MediaReader.java:461)
at com.dms.frontend.client.widget.Download.MediaConvertor.<init>(Medi
aConvertor.java:33)
at com.dms.servlet.frontend.DownloadServlet.service(DownloadServlet.java:204);我的猜测是,它试图创建一个窗口来显示编码(我在桌面应用程序中注意到了这一点),而web应用程序却无法这样做。
我的视频文件转换代码。
public MediaConvertor(File Dest,File Source) {
IMediaReader mediaReader =
ToolFactory.makeReader(Source.getPath());
// create a media writer
IMediaWriter mediaWriter =
ToolFactory.makeWriter(Dest.getPath(), mediaReader);
// add a writer to the reader, to create the output file
mediaReader.addListener(mediaWriter);
// create a media viewer with stats enabled
IMediaViewer mediaViewer = ToolFactory.makeViewer(true);
// add a viewer to the reader, to see the decoded media
mediaReader.addListener(mediaViewer);
// read and decode packets from the source file and
// and dispatch decoded audio and video to the writer
while (mediaReader.readPacket() == null) ;
}有人能通过一些灯光吗?就像我需要为我的网络应用程序做什么额外的配置。
我使用的是maven m2e和eclipse和xuggler 5.4。我已经在我的tomcat文件夹中放置了xuggle xuggler 5.4.jar。
发布于 2013-12-26 12:12:07
我犯了个错误,很明显我的代码行
// create a media viewer with stats enabled
IMediaViewer mediaViewer = ToolFactory.makeViewer(true);
// add a viewer to the reader, to see the decoded media
mediaReader.addListener(mediaViewer);是为所有视频请求创建一个查看器的人,因为某些原因,我的make.This代码不适用于web应用程序。移除了这个就成功了。
https://stackoverflow.com/questions/20743747
复制相似问题