Java 如何将.mov、.avi、.wmv转换为mp4

Java 如何将.mov、.avi、.wmv转换为mp4,java,xuggler,Java,Xuggler,我是xuggler的新成员。我愿意使用xuggler将.mov、.avi、.wmv转换为mp4。mov和.wmv先转换为flv,然后再转换为mp4。成功了。但是我想直接转换成mp4。但avi既不转换为flv也不转换为mp4。我使用简单的代码 IMediaReader reader = ToolFactory.makeReader("1.mov"); reader.addListener(ToolFactory.makeWriter("wild.flv", reader))

我是xuggler的新成员。我愿意使用xuggler将.mov、.avi、.wmv转换为mp4。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)
                ;
请帮我弄清楚。
谢谢

您可以尝试以所需格式输入和输出

   IMediaReader mediaReader = ToolFactory.makeReader(inputFilename);

   IMediaWriter mediaWriter = ToolFactory.makeWriter(outputFilename, mediaReader); 

    mediaReader.addListener(mediaWriter); 

    IMediaViewer mediaViewer = ToolFactory.makeViewer(true); 

     mediaReader.addListener(mediaViewer);

我会这样做:

 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文件(Xugler通过扩展名计算转换)

您可以提高质量,增加kbps(即,对于320 kbps,您需要通过320000)

希望有帮助:-)

仅供参考:对于Java项目,如果尚未导入,则需要导入以下内容:

import com.xuggle.mediatool.MediaListenerAdapter;
import com.xuggle.mediatool.event.IAddStreamEvent;
import com.xuggle.xuggler.IStreamCoder;

我已经试过了。统计信息为索引0,id 1,类型:编解码器\类型\视频,名称:H.264/AVC/MPEG-4 AVC/MPEG-4第10部分,方向:入站,时间:23:30:00.041-41,程序不存在。这就是我得到的全部信息。谢谢你给我的东西我已经很累了,但是转换成mp4不起作用。谢谢你帮助我。你介意再帮我一次吗?