2009-04-15 3 views

ответ

1

Я использую ffmpeg на своей коробке Ubuntu с отличными результатами.

SVN Checkout SVN: //svn.ffmpeg.org/ffmpeg/trunk FFmpeg

0

Был проект, созданный Dan Fernandez на Coding4Fun, который использует FFMPEG конвертировать FLV в MPEG, обратное также верно.

Вот проект, который он назвал созданный InnerTube

Вот ссылка на сайт с подробным аргументы командной строки с FFMPEG.

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.

1

Для создания статического файла, использование 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