web-dev-qa-db-ja.com

トランスコーディングする前にffmpegを使用してファイルのエンコーディングを判別する方法はありますか?

私はffmpegを使用して、私のWebサイトにアップロードされたすべてのビデオファイルがmp4 h264としてエンコードされることを確認する予定です。

すべてのファイルを自動的に処理するのではなく、まだmp4 h264ではないファイルのみを処理することで、処理のオーバーヘッドを最小限に抑えたいと思います。 ffmpegまたは別のコマンドラインユーティリティを使用してこれを行う簡単な方法はありますか?

21
Bill Noble

他のパラメーターなしで入力ファイルをffmpegに渡すと、ビデオソースに関する情報が得られます。

ffmpeg -i myfile.avi

別の方法は-identify mplayerのオプション。解析が少し簡単になる場合があります。より優れた出力を提供するラッパースクリプトmidentifyがあります。 この例を参照してください。

23
pixelistik

ffprobeを使用します。

コマンドの例

$ ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=nokey=1:noprint_wrappers=1 input.mp4

結果

h264

オプションの説明

  • -v error致命的なエラーを除いて、追加情報を省略します。

  • -select_streams v:0最初のビデオストリームのみを選択します。それ以外の場合、codec_nameファイル内の他のすべてのストリーム(オーディオなど)も表示されます。

  • -show_entries stream=codec_name出力のみcodec_nameすべてのストリーム情報の代わりに。

  • -of default=nokey=1:noprint_wrappers=1デフォルトの出力形式スタイルを選択し、キーとラッパー情報を省略します。それ以外の場合は、これらのオプションなしで、次のように出力されます。

    [STREAM]
    codec_name=h264
    [/STREAM]
    

また見なさい

29
llogan

別の方法は、ffmpegに含まれているffprobeを使用することです。以下は、ffmpegツールから見つけることができる最も簡潔な出力を提供します。

ffprobe -hide_banner -stats -i myfile.avi
5