取材者が動画や音声のデータをffmpegで小さくする小技集
記者会見などに取材のために参加したときには、ボイスレコーダーで音声データを録音したり、PCやスマホで動画データを録画したりします。
これらのデータはサイズが大きくなりがちです。そこから、重要な部分だけ抜き出したり、クラウドサービスにかけるためにサイズを小さくしたり、後のために保存するためにサイズを小さくしたりすることがあります。
これを、Linuxなどで動画や音声を扱うコマンドラインツール「ffmpeg」で実現する小技を紹介します。いずれも自分で普通に使っている技です。
なお、ffmpegはWindowsやMacでもインストールして使えると思います。
再エンコード
ffmpegにオプションなしで入力ファイルと出力ファイルを指定すると、再エンコードがなされます。
撮ったままの動画は圧縮効率が高くないので、これだけでかなりサイズが小さくなります。特に、スライド投影や、座って話している映像が続く動画などでは効果が大きいと思います。
反対に、再エンコードしない場合は、-c(コーデック)オプションに「copy」を付けます。
単体では意味がありませんが、以降でいくつか紹介するように、ほかのオプションを指定した場合に意味があることがあります。
指定区間を切り出し
開始時間と終了時間を指定することで、その区間の動画や音声を切り出せます。切り出すだけなら再エンコード不要です。
動画から映像のみ/音声のみを取り出す
動画から映像のみを取リ出すには「-an」(音声抜き)を指定します。「-c:v copy」(映像コーデックをコピー)も指定することで、映像の再エンコードなしになります。
反対に動画から音声のみを取リ出すには「-vn」(映像抜き)を指定します。「-c:a copy」(音声コーデックをコピー)も指定することで、音声の再エンコードなしになります。
音声をモノラルに
普通のボイスレコーダーでは、デフォルトでステレオで録音されても、あまりその効果はありません。「-ac 1」(音声を1チャンネルに)を指定して音声をモノラルにすることで、ファイルサイズが半分近くになります。
この場合は再エンコードが必要です。
音声のビットレートを下げる
音声認識などのクラウドサービスにかけたとき、ビットレートを下げても影響は小さいことが多いように思います。そこで「-b:a」(音声ビットレート)オプションを指定してビットレートを32kbpsにしてみます。
ビットレート変更なので、もちろん再エンコードが必要です。
最後に
それぞれのオプションを説明しましたが、複数のオプションを組み合わせることも、もちろんできます。たとえば、「動画のうち指定した箇所から、音声のみ、モノラルのビットレート32kbpsで切り出す」といったふうに。
ffmpegは便利です。使って楽しましょう。
コメント
コメントの投稿
トラックバック
https://emasaka.blog.fc2.com/tb.php/1602-15f4aa6f