这是我第一次在这个表格上提问。我的问题有 2 个部分。
首先请看下面的代码,使用 Xuggle 从视频文件中提取音频。
IMediaReader reader;
File f;
reader = ToolFactory.makeReader("E:\\NetBeanWorkspace\\Repo\\VideoSamples\\one.mp4");
f = new File("E:\\NetBean Workspace\\Repo\\VideoSamples\\"+"one"+".wav");
IMediaWriter mediaWriter =ToolFactory.makeWriter(f.getAbsolutePath(), reader);
int sampleRate = 44100;
int channels = 2;
mediaWriter.addAudioStream(0, 0, ICodec.ID.CODEC_ID_ADPCM_IMA_WAV, channels, sampleRate);
reader.addListener(mediaWriter);
mediaWriter.setMaskLateStreamExceptions(true);
while( reader.readPacket() == null );
我在某些文件上收到以下错误,并且某些文件工作正常。
java.lang.IllegalArgumentException:流 [0] 不是 com.xuggle.mediatool.MediaWriter.encodeVideo(MediaWriter.java:754) 的视频,位于 com.xuggle.mediatool.MediaWriter.encodeVideo(MediaWriter.java:783) 的 com。 xuggle.mediatool.MediaWriter.onVideoPicture(MediaWriter.java:1434) at com.xuggle.mediatool.AMediaToolMixin.onVideoPicture(AMediaToolMixin.java:166) at com.xuggle.mediatool.MediaReader.dispatchVideoPicture(MediaReader.java:610) at com .xuggle.mediatool.MediaReader.decodeVideo(MediaReader.java:519) at com.xuggle.mediatool.MediaReader.readPacket(MediaReader.java:475) at audioextractor.AudioExtractor.main(AudioExtractor.java:108)
提取 16 位 WAV 文件的最佳编解码器是什么。
请帮我找到这两个问题的答案。