有没有人知道如何使用java将任何类型的视频格式转换为flv,我一直在寻找用于转换视频的java api但似乎没有这样的东西,但可能有办法做到这一点,我意味着像youtube服务一样转换视频,但是使用java,我需要一个可以将视频显示为FLv格式但可以以任何格式上传的网络应用程序,如果有人做过这样的事情,请告诉我怎么做或任何想法,
感谢。
答案 0 :(得分:4)
使用xuggler,这是一段简单的代码,可以完全满足您的要求:
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);
}
}
现在尝试在JMF或FMJ中做任何事情(如果你想头疼)
答案 1 :(得分:1)
Java中没有人直接想到,即使Java自己的媒体框架JMF也不支持FLV,但您可能会发现this overview of Open Source Flash Projects很有用。如果任何非Java命令行工具对您有用,那么您可以使用Runtime#exec()
(tutorial here)或最好ProcessBuilder
(tutorial here)从Java内部执行它
答案 2 :(得分:0)
插入JMF的ffmpeg包装器:Fobs4JMF