необходимо конвертировать видео в flv на моем сервере Red5. Любая помощь в этом отношении будет очень полезна.Как преобразовать mpeg в flv на сервере?
ответ
Я использую ffmpeg на своей коробке Ubuntu с отличными результатами.
SVN Checkout SVN: //svn.ffmpeg.org/ffmpeg/trunk FFmpeg
Был проект, созданный Dan Fernandez на Coding4Fun, который использует FFMPEG конвертировать FLV в MPEG, обратное также верно.
Вот проект, который он назвал созданный InnerTube
Вот ссылка на сайт с подробным аргументы командной строки с FFMPEG.
Я предложил бы использовать 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.
Для создания статического файла, использование FFmpeg (также называемый avconv на Ubuntu):
ffmpeg -i /pathto/inputfile.xxx /pathto/outputfile.flvгде 'ххх' является расширение входного файла, такие как .avi, .mp4 и т.д.
для создания живого потока вывода, используя RED5 из входного потока (например, от захвата устройства) в режиме реального времени вещания, использовать FFmpeg в трубе, как это:
inputstream > - | ffmpeg -f xxx -i - -f flv rtmp://your.red5.server:1935/live/mybroadcast
Где ххй вашу лучшую догадка в поместите поток видео в формате. В зависимости от формата, например «rawvideo», вам могут потребоваться дополнительные опции преобразования и/или для обработки аудиопотока отдельно (вторая опция -i).
Чтобы получить трансляцию RED5, подключите флеш-плеер вашего браузера к тому же пути, что и выход из ffmpeg, который совпадает с входом для потока RED5, который снова совпадает с выходом потока RED5 (да , rtmp очень эффективен таким образом):
rtmp://your.red5.server:1935/live/mybroadcast