0

需要在我的 Red5 服务器上将视频转换为 flv。这方面的任何帮助都会非常有帮助。

4

4 回答 4

1

我在我的 Ubuntu 机器上使用 ffmpeg,效果很好。

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

于 2009-04-15T17:07:02.647 回答
1

要创建静态文件,请使用 ffmpeg(在 Ubuntu 上也称为 avconv):

ffmpeg -i /pathto/inputfile.xxx /pathto/outputfile.flv
其中“xxx”是输入文件的扩展名,例如 .avi、.mp4 等。



要使用 RED5 从输入流(例如来自捕获设备)创建实时输出流以进行实时广播,请在管道中使用 ffmpeg,如下所示:

输入流 > - | ffmpeg -f xxx -i -f flv rtmp://your.red5.server:1935/live/mybroadcast

其中 xxx 是您对输入流的视频格式的最佳猜测。根据格式,例如 'rawvideo' - 您可能需要一些额外的转换选项和/或单独处理音频流(第二个 -i 选项)。

要接收 RED5 广播,请将浏览器的 flash 播放器连接到与 ffmpeg 的输出相同的路径,这与 RED5 流的输入相同,与 RED5 流的输出相同(是的,rtmp 非常那样有效):

rtmp://your.red5.server:1935/live/mybroadcast

于 2013-05-22T13:36:03.123 回答
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 支持的任何媒体类型。

于 2011-08-04T15:44:26.800 回答
0

Dan Fernandez在 Coding4Fun 上创建了一个项目,它使用 FFMPEG 将 flv 转换为 mpeg,反之亦然。

这是他创建的名为InnerTube的项目

这是一个站点的链接,该站点详细说明了FFMPEG的命令行参数。

于 2009-04-15T17:07:03.553 回答