52

私は Java にかなり慣れていないので、ビデオ変換命令をリッスンし、新しい命令が到着したらビデオを変換するプログラムを作成する必要があります (命令は Amazon SQS に保存されますが、私の質問には関係ありません)。

Javaランタイムを使用して「ffmpeg」変換を実行する(コマンドラインからのように)か、Javaで書かれたffmpegラッパーを使用できますhttp://fmj-sf.net/ffmpeg-java/getting_started.php

Java ランタイムを使用して ffmpeg を直接実行し、ライブラリを学習する必要があるため、java-ffmpeg ラッパーの使用を避けたいと思います。私の質問は、ランタイムを直接使用して exec ffmpeg よりも Java-ffmpeg ラッパーを使用する利点はありますか? 動画を再生するのに ffmpeg は必要ありません。動画を変換するだけです

ありがとう

4

8 に答える 8

37

私が間違っていなければ、リンク先の「ffmpeg ラッパー」プロジェクトは古く、維持されていません。ffmpeg は非常に活発なプロジェクトであり、常に多くの変更とリリースが行われています。

Xuggler プロジェクトを見る必要があります。これは、やりたいことのための Java API を提供し、ffmpeg と緊密に統合されています。

http://www.xuggle.com/xuggler/

Runtime.exec() パスをたどることを選択した場合は、次の Red5 スレッドが役立ちます。

http://www.nabble.com/java-call-ffmpeg-ts15886850.html

于 2009-08-15T08:19:35.247 に答える
23

私も Java で FFMPEG をラップするものを探しています。検索中に、https ://github.com/bramp/ffmpeg-cli-wrapper を見つけました。

今日の時点で、1 か月前に変更されたようです。ですから、うまくいけば、それはしばらく続くでしょう。

彼らのドキュメントからのサンプル:

FFmpeg ffmpeg = new FFmpeg("/path/to/ffmpeg");
FFprobe ffprobe = new FFprobe("/path/to/ffprobe");

FFmpegBuilder builder = new FFmpegBuilder()
    .setInput(in)
    .overrideOutputFiles(true)
    .addOutput("output.mp4")
        .setFormat("mp4")
        .setTargetSize(250000)

        .disableSubtitle()

        .setAudioChannels(1)
        .setAudioCodec("libfdk_aac")
        .setAudioRate(48000)
        .setAudioBitrate(32768)

        .setVideoCodec("libx264")
        .setVideoFramerate(Fraction.getFraction(24, 1))
        .setVideoResolution(640, 480)

        .setStrict(FFmpegBuilder.Strict.EXPERIMENTAL)
        .done();

FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
executor.createTwoPassJob(builder).run();
于 2015-08-26T15:03:30.383 に答える
19

FFMPEG ラッパーを提供する Java ライブラリは多数あります。ただし、これらのライブラリのほとんどは残念ながら時代遅れであり、いくつかの重要なコーデック (Xuggler、謙虚なビデオ、JavaAV、JavaAVC、jave など) が欠けている古い FFMPEG バージョンを使用しています。したがって、これらのプロジェクトを使用するときは注意してください。

ただし、現在も活発に開発され、 FFMPEG 4をサポートするFFMPEG ラッパーが 1 つあります。

  • JavaCPP FFMPEG - 完全にバンドルされた Maven アーティファクト

または、 ffmpeg-cli-wrapperなど、FFMPEG のコマンド ライン インターフェイス用のラッパーを使用することもできます。その後、ラッパー ライブラリの新しいリリースを待つことなく、手動で ffmpeg を更新できます。

于 2016-08-08T13:51:42.860 に答える
8

Also, as of Xuggler 3.3, Xuggler is LGPL meaning you don't need a commercial license.

于 2009-11-06T21:29:49.243 に答える
4

あなたはjaveを試すことができ ますhttp://www.sauronsoftware.it/projects/jave

于 2010-04-01T11:12:20.087 に答える
3

ラッパーを使用する利点は、主に、コマンド ライン経由ではアクセスできない (ユーザーには関係のない) よりきめ細かい機能を提供し、エラー処理とステータス コントロールが容易になることです。コマンド ライン ツールの標準を解析する必要があります。出力ストリームとエラー ストリーム。

于 2009-08-15T07:34:14.480 に答える