ffprobe
ffprobe はファイルの中身を調べる専用ツールです。コーデック・解像度・長さ・ビットレート・
音声チャンネル数などを表示します。変換前に「今どうなっているか」を確認すると失敗が激減します。
まずはそのまま実行
ffprobe input.mp4
標準エラー出力にまとめて情報が出ます。ざっと全体を把握したいときはこれで十分です。
項目を絞って表示する
# フォーマット情報(長さ・ビットレート・コンテナ名)
ffprobe -show_format input.mp4
# 全ストリーム情報(映像・音声の詳細)
ffprobe -show_streams input.mp4
余計な出力を消して必要項目だけ
-v error で警告類を抑え、-show_entries で欲しい項目だけ取り出します。
# ノイズを消して必要項目だけ表示
ffprobe -v error -show_entries stream=codec_type,codec_name,width,height,sample_rate,channels -of default=noprint_wrappers=1 input.mp4ヒント
-of(出力フォーマット)は default / csv / json などが選べます。スクリプトで使うなら csv か json が扱いやすいです。1つの値だけ取り出す(スクリプト向け)
シェルスクリプトで長さや解像度を変数に入れたいときの定番です。
# 長さ(秒)だけを取得
ffprobe -v error -show_entries format=duration -of csv=p=0 input.mp4# 解像度だけを WxH で取得
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4
JSONで取得する
# JSON形式で出力(スクリプトで扱いやすい)
ffprobe -v error -show_format -show_streams -of json input.mp4
一括処理で条件分岐したいときは、Bashスクリプトと組み合わせると強力です。