我是新来的。我愿意转换.mov,.avi,.wmv到mp4使用xuggler。.mov和.wmv先转换为flv,然后再转换为mp4。啊,真灵。但是我想直接转换成mp4。但avi既不能转换为flv,也不能转换为mp4。我使用简单的代码。
IMediaReader reader = ToolFactory.makeReader("1.mov");
reader.addListener(ToolFactory.makeWriter("wild.flv", reader));
while(reader.readPacket() == null)
;请帮我弄清楚。谢谢
发布于 2014-08-01 17:48:24
您可以尝试以所需的格式进行输入和输出。
IMediaReader mediaReader = ToolFactory.makeReader(inputFilename);
IMediaWriter mediaWriter = ToolFactory.makeWriter(outputFilename, mediaReader);
mediaReader.addListener(mediaWriter);
IMediaViewer mediaViewer = ToolFactory.makeViewer(true);
mediaReader.addListener(mediaViewer);发布于 2014-08-01 17:50:43
我会这样做:
public void convertToMP3(File input, File output, int kbps) { //modify on your convenience
// create a media reader
IMediaReader mediaReader = ToolFactory.makeReader(input.getPath());
// create a media writer
IMediaWriter mediaWriter = ToolFactory.makeWriter(output.getPath(), mediaReader);
// add a writer to the reader, to create the output file
mediaReader.addListener(mediaWriter);
// add a IMediaListner to the writer to change bit rate
mediaWriter.addListener(new MediaListenerAdapter() {
@Override
public void onAddStream(IAddStreamEvent event) {
IStreamCoder streamCoder = event.getSource().getContainer().getStream(event.getStreamIndex()).getStreamCoder();
streamCoder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, false);
streamCoder.setBitRate(kbps);
streamCoder.setBitRateTolerance(0);
}
});
// read and decode packets from the source file and
// and dispatch decoded audio and video to the writer
while (mediaReader.readPacket() == null);
}输入是你想要转换的文件(aac/wav/wma),输出是一个新的.mp3文件(通过扩展名来计算转换)。
可以增加kbps的质量(即320kbps需要传入320000)。
希望这能有所帮助:-)
仅供参考:对于Java项目,如果您尚未导入以下内容,则需要导入:
import com.xuggle.mediatool.MediaListenerAdapter;
import com.xuggle.mediatool.event.IAddStreamEvent;
import com.xuggle.xuggler.IStreamCoder;https://stackoverflow.com/questions/25077054
复制相似问题