2016-05-10 1 views
0

ビデオフォーマット変換、ライブストリームスナップショットなど、いくつかのビデオ処理を行うにはffmpegが必要です... ffmpegには深入りしません。ffmpegを使う良い方法はどれですか?

今私はffmpegを使う良い方法があると思っています。私たちはGolangで開発中です.ffmpegをシェルコマンドラインのように呼び出すか、ffmpegのlibav * libraryを使用します。

command line: 
    Pros: 
     easy to use, reliable (I got a quality loss problem with library mode), many tutorials 
    Cons: 
     the is is a separate process, out of our control, we can't get detailed information of the process, like the video conversion progressing data 
     the command line way seems not so cool, this is not well integrated in the whole project. 

libav* library: 
    Pros: 
     we can have the process detailed data, progressing status.... 
     ... 

    Cons: 
     difficult to use, much less materials 

ffmpegを使用する方がいいですか?

この質問の前に、私は他の二つの質問を求めている:
Why calling libav* library doesn't have same quality as ffmpeg command line?

一つは、ステータス検索問題を進展コマンドラインのためである:

一つは*ライブラリはqulityの損失の問題を引き起こしたのLibav呼び出しに関するさ How to get the realtime output for a shell command in golang?

答えて

0

私はそれがすべてのあなたのニーズによって異なり言う:

2人のあなたの比較はかなり合理的です。さらに、ffmpegライブラリを使用すると、独自のコードを実装することもできます。ffmpegユーザーだけではなく開発者でもあります.ffmpeg内部実装にアクセスすることができます。

あなた自身のソフトウェアをプログラミングしたり、ffmpegを他のプログラムに統合しようとするなら、おそらくライブラリがこれを行う良い方法です。 (あなたの場合、Golangのffmpeg APIをプログラムするには...)

コマンドラインツールは使いやすく、機能は既にそこに固定されています。したがって、プログラマーにとって柔軟性に欠けます。しかし、それはあなたにいくつかの瞬間的な結果を提供します。たとえば、コマンドラインを使用してストリーム情報を実質的に取得することも、適切なパラメータを使用してフレームを効率的に保存することもできます。コマンドラインは、さらなる分析のための迅速な結果を得るための優れたツールです。つまり、話すことができます。

関連する問題