Twitterに投稿 はてなブックマークに追加 Google Bookmarksに追加

目次 >> ffmpeg >> 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

再エンコードをしないので、処理も高速である。

最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて20.04、21.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2021 Chikuma Engineering Co., Ltd. All Rights Reserved.