需要在我的Red5服务器上将视频转换为flv。在这方面的任何帮助都会非常有帮助。
答案 0 :(得分:1)
我在我的Ubuntu盒子上使用ffmpeg效果很好。
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
答案 1 :(得分:1)
要创建静态文件,请使用ffmpeg(在Ubuntu上也称为avconv):
ffmpeg -i /pathto/inputfile.xxx /pathto/outputfile.flv其中'xxx'是输入文件的扩展名,例如.avi,.mp4等。
要使用RED5从输入流(例如来自捕获设备)创建实时输出流以进行实时广播,请在管道中使用ffmpeg,如下所示:
inputstream > - | ffmpeg -f xxx -i - -f flv rtmp://your.red5.server:1935/live/mybroadcast
对于输入流的视频格式,xxx是您最佳猜测。根据格式,例如'rawvideo' - 您可能需要一些额外的转换选项和/或单独处理音频流(第二个-i选项)。
要接收您的RED5广播,请将浏览器的Flash播放器连接到与ffmpeg输出相同的路径,这与RED5流的输入相同,RED5流的输入也与RED5流的输出相同(是的, rtmp非常有效):
rtmp://your.red5.server:1935/live/mybroadcast
答案 2 :(得分:0)
由Dan Fernandez在Coding4Fun上创建了一个项目,该项目使用FFMPEG将flv转换为mpeg,反之亦然。
这是他创建的名为InnerTube
的项目以下是详细说明FFMPEG命令行参数的网站的链接。
答案 3 :(得分:0)
我建议使用Xuggler(http://www.xuggle.com)来完成这项工作,这是一个可以添加到Red5应用程序的示例方法:
public void convert(String sourceFilePath, String destinationFilePath) {
//assumes the following: sourceFilePath is input file and destinationFilePath is output file
IMediaReader reader = ToolFactory.makeReader(sourceFilePath);
IMediaWriter writer = ToolFactory.makeWriter(destinationFilePath, reader);
writer.open();
writer.setForceInterleave(true);
IContainerFormat outFormat = IContainerFormat.make();
outFormat.setOutputFormat("flv", destinationFilePath, 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);
}
您提到“mpeg”,但此代码块将转换FFMpeg和Xuggler支持的任何媒体类型。