Converting into FLV using Java

ぃ、小莉子 提交于 2019-11-30 15:56:00

None in Java comes directly to mind, even Java's own media framework JMF doesn't support FLV, but you may find this overview of Open Source Flash Projects useful. If any non-Java commandline tool turns out to be useful for you, then you could execute it from inside Java using Runtime#exec() (tutorial here) or preferably ProcessBuilder (tutorial here).

Using xuggler, here is a simple piece of code to do exactly what you asked for:

public class AnyMediaConverter {
    public void main(String[] args) {
        //assumes the following: arg0 is input file and arg1 is output file
        IMediaReader reader = ToolFactory.makeReader(args[0]);
        IMediaWriter writer = ToolFactory.makeWriter(args[1], reader);
        writer.open();
        writer.setForceInterleave(true);
        IContainerFormat outFormat = IContainerFormat.make();
        outFormat.setOutputFormat("flv", args[1], null);
        IContainer container = writer.getContainer();
        container.open(args[1], IContainer.Type.WRITE, outFormat);
        writer.addVideoStream(0, 0, ICodec.findEncodingCodecByName("flv"), 320, 240);
        writer.addAudioStream(1, 0, ICodec.findEncodingCodecByName("libmp3lame"), 2, 44100);
        reader.addListener(writer);
        while (reader.readPacket() == null);
    }
}
now try doing that in JMF or FMJ or whatever (if you want a headache)

There is a wrapper for ffmpeg that plugs into JMF: Fobs4JMF

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!