目次 >> ffmpeg >> ffmpegの最も基本的な使い方
まずは、もっと基本的な使い方。-iで入力ファイルを、すべてのオプションの最後に出力ファイルを設定するだけである。
ffmpeg [グローバルオプション] [入力ファイル関係のオプション類] -i 元動画ファイル [出力ファイル関係オプション類] 出力動画ファイル
ffmpegは入力元動画に関しては、ffmpegが解析し、適切なデコーダを、出力先動画に関しては、拡張子を元に適切なエンコーダが選ばれる。
例
ffmpeg -i exapmle.avi exapmle.mp4
ffmpeg -i exapmle.mov exapmle.flv
ffmpeg -i exapmle.wmv exapmle.mov
ffmpeg -i exapmle.mp4 exapmle.wmv
ffmpeg -i exapmle.mp4 exapmle.webm
このようにオプションを何もつけない場合、動画、音声ともデフォルトのパラメータが適用され、選択されるコーデックもffmpegのバージョンによって少しずつ変わってくる。
以下では、様々なオプションを駆使して、よりきれいな動画を、そして様々なプレーヤーで互換性の高いファイル作成することを目指す。
エンコードを行わず、動画ファイルにどのようなコーデックが使われているかなどの情報を見たい場合は、
ffmpeg -i 動画ファイル
とすると、入力ファイルの情報を見ることができる(出力ファイルが指定されていない旨のエラーは表示される)
ffmpeg -i example.avi
の様に、出力ファイルを指定せずに、入力ファイルだけを指定する、。
ffmpegは音声のみをエンコードすることもできる。
ffmpeg -i exapmle.avi exapmle.mp3
のように、入力ファイルに動画を出力ファイルに音声ファイルの拡張子(ここではmp3)を指定してやると、動画ファイルを音声ファイルに変換することができる。
ただし、この場合、再エンコードがかかるので、音質は劣化する。
上記のように、音声ファイルを指定しただけだと、再エンコードで音質は劣化する。-codec:c copyのオプションを加えてやると、元のファイルから音声部分を抜き出したファイルが作成される。
ffmpeg -i exapmle.avi -codec:a copy exapmle.mp3
とすると、音声部分が再エンコードせずに単純に抜き出されたファイルができる。
なお、ここでは、aviに含まれている、音声ファイルがmp3だと仮定している。実際に何が使われているかは、上記の「入力動画の情報を見る」を参考に調べると良い。
動画から音声を取り除く
上記のは逆に動画から音声を取り除く、すなわち映像だけ取り出すには-anオプションをつけてやればよい。
ffmpeg -i exapmle.avi -codec:v copy -an exapmle.avi
とすると、映像部分が再エンコードせずに単純に抜き出されたファイルができる。ここでは-codec:vにcopyを指定して抜き出したが、好きなコーデックを使ってエンコードしてもよい。
ffmpegは動画を扱うプログラムだが、入力、出力とも音声ファイルを指定することもできる。
ffmpeg -i exapmle.wav exapmle.mp3
この例ではwavファイルをmp3に変換している。
ffmpegが扱えるものなら基本的に何でも可能である。
ffmpeg -i exapmle.mp3 exapmle.opus
この例ではmp3ファイルをopusフォーマットに変換している。
例えば、flv形式はiOSでは内蔵プレーヤでは再生できないが、mp4形式であれば再生できる。
もし、flv形式の動画が、mp4でもサポートしている、例えばH.264+ACCでエンコードされている場合、コンテナをflvからmp4に変えるだけで無劣化でiOSでも再生できるようになる。
コンテナを変換するには、動画、音声ともコーデックにcopyを指定してやれば良い。具体的には
ffmpeg -i example.flv -codec:v copy -codec:a copy example.mp4
再エンコードをしないので、処理も高速である。
最終更新日