動画圧縮する時ってみなさんどうしてます?2018.2.27970viewsこんにちは、フロントエンドエンジニアの坂本です。今から書くのは社内のチーム用に書いていたwikiなんですが、こういうことはもっと広めていった方が、みんな幸せになると思ったので、珍しく実用的な内容についてまとめたいと思います。「日々の業務で動画の容量圧縮を迫られるシーンが増えてきた。」と感じている、あなたのためにまとめました。Webで許容できるクオリティで)楽々動画圧縮ライフが手に入ります。コマンドライン(いわゆる黒い画面。winならコマンドプロンプト、macならターミナル)の基本操作ができる前提で進めさせていただきます。winの方はツールのインストール方法の説明がややこしいので、申し訳ないんですがその部分雑に説明します。インストール方法以外は多分一緒です。コマンドラインの使用に免疫のない方は、申し訳ないんですが、基本操作スキルをこことかで修得してきてください。すいませんお願いします。目次どのくらい軽くなる?使用するツールffmpegをインストールその1「そんなに重くないけど、一応軽くしとくか...。参考資料どのくらい軽くなる?サンプルなので、みんながみんな同じように等しく圧縮されるわけではないんですが、このくらいは軽く圧縮されます。サンプルはiPhoneで撮った草津温泉の湯もみ風景です。画像は一部を解像度そのままでクリッピングして表示しています。[43.9MB]ちなみに、画質を諦めればもっと容量は軽くなります。いうオープンソースのツールを使用します。GUIではなくCUI(いわゆる黒い画面で動く)のソフトです。前述した通りコマンドラインで動きます。無料のソフトながら動画・音声の変換(数多くの形式に対応している)から、動画・音声の合成や抽出までできる優秀なやつなんです。GUI版もなんだか出てるらしいんですが、今回は触りません。ググったらいっぱい出てきます。あとwindowsだと豊富にあるみたい。ffmpeg「Homebrew?」という方は、まず下記コマンドでhomebrewが入っているか確認してください。入ってなかった場合は下記のコマンドでインストールしてください。https://raw.githubusercontent.com/Homebrew/install/master/install)"一応公式ドキュメントはこちらです。ffmpegのインストールができたら一応下記コマンドで、ffmpegのインストールが完了したか確認をお願いします。...."みたいなことが出ます。windowsの場合windowsの方はこちらからダウンロードしたのち、パスを通してどこでもffmpegが使える状態にしてあげてください。パス通す作業は、説明がなんとも面倒なので、調べるなどしてください。あるディレクトリに移動してから、コマンドを打っていきます。圧縮方法は2パターン説明していきます。その1「そんなに重くないけど、一応軽くしとくか...。Rateの略)早いけど、全体で同じクオリティ(画質)でレンダリングするので、場合によっては、もっと圧縮できる可能性を秘めてる。video.mp4など圧縮したい動画を入れる。サイズなので適宜変更する。outputの名前は適当に変えていいけど拡張子は.mp4縛り。2500kとかするとビットレート変更できる。2pathというエンコード形式。2pathはエンコードする前に1度ファイル全体をスキャンする方法)シーンによって、クオリティを高くしたり低くしたりして書き出ししてくれるので、CBRと比較すると「激しい&静か」のシーンが混在する動画を効率良く圧縮できる。エンコードする前に1度全体をスキャンしているので2度エンコードしてる感覚だと思う。単純計算でCBRの倍時間がかかる。あと動画によって容量/時間の差が出る。2500kとかしちゃえばいいと思うんですが、そうでない場合は画質を見つつ何度か圧縮してみる必要ありそうです。サイズなので適宜変更する。〇〇kの部分を変えて画質を調整する。5000kくらいかなという印象。〇〇Mの指定もできる。〇〇kを追加すると音質も指定できる。32kくらいを指定していればいいと思う。音についてはあんまり詳しくないです。動画のビットレート部分はこちらを参考に計算すると良いみたいです。一度path1を通したあとにビットレートを変更して書き出し直したいときは、2行目のpath2のみの実行で大丈夫です。/dev/nullの部分をNULに変更する必要があるそうです。最後に書き出し終わったら、「どのくらい圧縮されたか」「画質はどんなもんか」「音ありの場合、音もちゃんとあるか」「音ズレはないか」など最低限は確認しましょう。ffmpegはCUIなので、ネットワーク上で、送られてきた動画を一定のクオリティまで圧縮してあげたりみたいな処理をすることもできるみたいです。ぼくはサーバー側の知識そんなないんで詳しいことはわからないんですが。今まで通りの方法がいい人やGUIでやりたい人は、AdobeMediaEncorderとかffmpegのGUI版とか使ったらいいと思います。ぼくはコマンドラインから動画圧縮する幸せライフを送ります。libx264動画のcodecをh264にする。aac音声のコーデックをaacにする。音声コーデックについてはlibfdk_aacというコーデックの方が綺麗に圧縮できる模様。デフォルトでは入っていないのでこちらを参考にインストールする必要あります。-anにしているみたいです。1280x720とかする。-bビットレートを設定する。:vビデオの~という事。codecとかbitrateなどoptionの後についてる。-b:vみたいなこと。:a上に同じく音声の~ということ。以下とても参考になったサイトを記します。ffmpepg公式DOCサンプルで使って慣れる。ffmpegの使い方。