【发布时间】:2014-05-13 08:28:59
【问题描述】:
我正在尝试使用 Java 和 Xuggler 转换视频。但是当我尝试运行此代码时,我收到以下错误消息。
我需要手动指定格式还是默认为 mp4?
正在转换 线程“main”中的异常 java.lang.IllegalArgumentException:没有行匹配接口 SourceDataLine 支持格式 PCM_SIGNED 44100.0 Hz,16 位,立体声,4 字节/帧,支持 little-endian。
at javax.sound.sampled.AudioSystem.getLine(Unknown Source)
at com.xuggle.mediatool.MediaViewer.getJavaSoundLine(MediaViewer.java:730)
at com.xuggle.mediatool.MediaViewer.getAudioQueue(MediaViewer.java:575)
at com.xuggle.mediatool.MediaViewer.onAddStream(MediaViewer.java:440)
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 at.jku.tk.mms.xuggler.VideoTranscoderApp.transcode(VideoTranscoderApp.java:44)
at at.jku.tk.mms.xuggler.VideoTranscoderApp.main(VideoTranscoderApp.java:53)
IMediaReader mediaReader =
ToolFactory.makeReader(source.getAbsolutePath());
// create a media writer
IMediaWriter mediaWriter =
ToolFactory.makeWriter(target.getAbsolutePath(), 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);
System.out.println("converting");
// 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) ;
}
public static void main(String[] args) {
File source = new File(args[0]);
if (source.canRead()) {
File target = new File(args[1]);
VideoTranscoderApp transcoder = new VideoTranscoderApp(source,
target);
transcoder.transcode();
}
}
【问题讨论】:
-
您的视频有多少个频道?你可以试试其他视频吗?可能xuggler不支持这个
-
一个视频和两个音频。我试过另一个。我在哪里可以在 xuggler 中指定目标格式?
-
我希望我能给你一个工作样本,但是我的办公室阻止了音频/视频:(但是这是我在做 xuggler poc benfarahmand.com/2012/11/…987654321@ 时提到的教程