こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

FFMPEGと動画変換ソフトの容量削減に関して。

一般の動画変換、編集ソフトでは、動画のファイルの容量削減を目的とはしていないのでしょうか?
動画変換ソフトで、ファイルの容量を減らそうと思うときに、フレームレートか、ビットレートを小さくすると思います。
もしくは、h264なら、h265に変える。

のですが、経験的に、変換後元ファイルよりファイル容量が大きくなるか、そこまで変わらないことが、多いと感じます。

しかし、ffmpeg を使ったほうが、経験的に変換後のファイル容量を、小さくできています。

とくに、h265の変換は、
ffmpeg -y -i "入力動画" -vcodec libx265 -acodec copy "出力先ファイル名"

だと、確実に、同じクオリティで、動画ファイルの容量が半分以下になります。
もともと、h265は、h264より高圧縮を期待できるので、当たり前なのですが・・・。

しかし、動画編集ソフトで、h265で変換しても、特に指定しなくても、元の動画のビットレートより、変換後のビットレートの方が、基本的に大きくなります。
だから、設定を縮小させても、動画変換ファイルの容量が変わらないか、むしろファイルサイズが増える結果になる。
これは、動画編集ソフトは、動画の編集のエフェクトなりを考えて、元より情報量が増えるだろうという、想定の元、ビットレートを増やすというスタンスなのでしょうか?

いろいろとソフトの設定をいじるより、その点、
ffmpeg -y -i "入力動画" -vcodec libx265 -acodec copy "出力先ファイル名"

の方が、簡単にかつ、確実にファイルの容量を減らせると思うのですが・・・。
これだと、設定はそのままですよね?
そのままで、動画のファイルサイズが半分になります。

動画変換ソフトの内部でも、ffmpegが使われていると思うのですが、、、動画変換、編集ソフトは、動画のファイル容量の削減には、向いていないのですかね?


あと、余談。
私の定義では、動画の劣化とは、人の目による判断であって、人の目ではわからない変化は、変換であり、劣化とは考えていません。

投稿日時 - 2019-07-03 21:04:40

QNo.9631673

困ってます

質問者が選んだベストアンサー

単純にエンコードに使用されたコーデック.ライブラリの初期設定値の問題だと思います。ffmpegは代表的なフリーの動画編集ソフトですが、その他の動画編集ソフトではそのソフト毎にまた別の内蔵されたエンコードエンジン(コーデックライブラリ)が使われています。web上で無料で入手可能なソフトはffmpegを内蔵している場合が多いですが、有料ソフトや無料ソフトであっても歴史的背景等から必ずしもffmpegを使っている訳では無く、またffmpegを使っていたとしてもその動画編集ソフトの開発者が最適だと考える設定値が最終的にffmpegへ送られてエンコードされるため、必ずしも同じ設定地が適用されている訳ではありません。

ffmpegだと初期設定値の場合、x264/x265動画のエンコ設定は「VBR(1pass/ビットレート可変)」になっているはずなので、特に設定しなければ画質は無視して出来上がりのファイルサイズを小さくする事を最優先にした設定値になっています。しかし実際には「CRF(固定品質)」にして最適な数値設定した方が画質とファイルサイズのバランスが取れたより良い高画質低容量の動画ファイルになります。特に現時点でのHEVC/x265はCRFの方が圧倒的に高画質で低容量の動画ファイルを作る事が出来るので、事実上VBRは捨てても構わないと思います(画質は同じでもエンコ時間が倍以上かかる上、ファイルサイズはそれほど圧縮出来ない)。

ffmpegでCRFエンコにした場合、初期設定値は 28 になってたと思いますが…これは 25 くらいの方が良いと思います。ただし動画がアニメか実写映像か、アクション系かインタビュー映像の様に変化の少ない映像かで最適値は変わって来ます。後はマシンパワーとの相談で、可能ならば crf=20 でエンコしたいところですが…これは相当なモンスターマシンで無いと30分動画で10時間くらい掛かってしまいますので。現実的な数値は 22~25 の範囲内だと思います。自分はブッロクノイズが目立ちにくい実写系なら25で、アニメや8bit系ゲーム動画なら23でエンコしてます(再生時間の3倍、平均10fps以上なら良しと考えています)。

また特にHEVC/x265でエンコードする場合、単純なビットレート指定値の他にもファイルサイズ低減に直結する設定値がたくさんあります。前述の crf もそうですが、他にも tu-intra-depth や tu-inter-depth 等も出来上がりのファイルサイズに影響を及ぼします。また総じてエンコード時間が長くなるほど比例して圧縮効率も良くなるため、最終的にはエンコードに使うPCのマシンパワーと相談になると思います。充分なマシンパワーがあれば、エンコ時間を無視して限り無く圧縮効率を追求した高画質なHEVC/x265動画ファイルを書き出す事が可能になります。


P.S.
色々と手前勝手な意見を述べましたが…自分も以前は「少しくらい画質が劣化しても構わない、とにかく動画はファイルサイズが小さければ小さいほど良い!」という考え方だったので、質問者の考えもよく分かります。結局は個人の趣味というか主義主張に集約する問題であって、充分な資金がありハイエンドなモンスターマシンPCを持っている人ならばとにかく画質最優先で、少々のファイルサイズ低減は意味をなさないと思います。また逆に余り余裕が無くて限られたリソースをやり繰りしている人であれば、HDD容量を圧迫させない様に1MBでもファイルサイズを小さくしたいと切望するでしょう。

もちろんこの場合の「画質」とは人間の目で見た印象のみならず、内部的に保持されているデジタルデータ的な高画質の意味合いの方が強いです。質問者は「人間の目で見た印象が全て」とお考えで、無論それは一つの考え方であり、またある程度主流の考え方でもあります。しかしながら自分はデジタル映像のMPEG2から現在に至るまでの "モーションJPEG" の画像圧縮技術の特性を知っていますので、人間の目では視認出来ないごく僅かな差異であっても可能な限りデジタル映像ファイルにはオリジナルに近い色情報を詰め込めるだけ詰め込んで保持させて置いた方が、後々で再利用が容易になり結果的には得をする事が多いと考えています。

具体的な事例で言うと、Youtubeでは投稿された動画ファイルは必ずサーバ上で再エンコ処理される仕様になっており、それが一部の画質至上主義の動画投稿者達から不評で一時期はニコ動が持て囃されていた遠因ですが。これには大いなる利点がり、それはYoutubeに投稿された動画ファイルはそのままのオリジナルファイルが半永久的に保持保存され続ける仕様になっており、技術革新などでYoutube側の動画エンコ処理がバージョンアップすると、この保存されていたオリジナル動画ファイルをベースに新たに最新動画規格で再エンコされる仕組みになっています。

ですので元動画を可逆圧縮形式のUtVideoとFLAC音声の組み合わせなどでアップロードして置けば、その後は永続的に常にYoutubeが提供する最新の動画フォーマットで最適化された動画形式で配信が行われる事になり、いちいち個々の動画投稿者が最適化されたビットレートだのフレームレートなどに頭を悩ます事は無い訳です。この際に元動画が中途半端に圧縮されたH265動画だと、コピーのコピーの様な現象が発生し画面にブロックノイズと呼ばれる汚いゴミの様な映像の乱れが生じてしまいます。これは前述のモーションJPEGの画像変換システムの仕様上で避けられない現象であり、これを最小化して限り無く目立たなくさせるためには元動画を無圧縮のRGBのAVIにするか、内部的な色情報を極力多く保持したままでのMPEG映像としてエンコードするしか回避策はありません。

この2次的発生のブロックノイズは「人間の目で見てギリギリまで許容出来るレベルまで画質を下げた状態」だとほぼ間違い無く発生しこれを低減無効化させる方法は事実上ありません。自分としてはこれを何としても回避したいので、繰り返しになりますが「許容できるファイルサイズの上限まで画質を上げるべき、例えそれが人間の目で知覚出来ないとしても」という考え方になるのです。従って一旦、何かの動画形式に固定させた動画ファイルは、その後は半永続的にそのままでの利用しか考えてないのであれば、最初の1回目のエンコ作業でその時点での最適解を採用するのはありだと思います。再び繰り返しになりますが、結局は個々の利用者の主義や趣向等によって大きく左右される概念なのだと思います。


自分はミドルエンドのPCなのでちょうどその中間というか、ある程度はファイルサイズを小さくしたいけど画質が悪くなるのも防ぎたい派です(笑)。そういう観点からするとHEVC/x265形式の動画は低ビットレートでもAVC/x264並の画質を保持するコーデックでは無く、むしろ「AVC/x264動画と同じファイルサイズで倍以上の高画質でエンコ可能」だと解釈しています。つまり考え方が逆になる訳ですね。具体的にはいわゆる通常のTV放送アニメを基準として、これらの市販BDが通常は1話分で4GB~8GBが現在の主流ですので、これを私的複製版として再エンコして保存する場合、「BDサイズ(1920x1080)、30fps、25分で500MB以下」なら大満足です(音声含む)。

また自分は現在、作成するほぼ全ての動画がYoutube投稿用の素材動画として作成するので、前述の様に個々の動画ファイル単体のファイルサイズの低減には余り興味が無いというか…ほぼ意味が無いと考えています(Youtubeの動画アップロードの上限は {1ファイル:120GB/18時間/縦横pxサイズに制限無し, 動画本数やアカウント毎の容量制限は一切無し} なので)。さらに現在ではもう既にHEVC/x265の次の規格である AV1 が登場しており、Youtube内でも限定的に代替処理が始まっています。

また忘れてならないのが音声のエンコードです。前述の500MB以下とは当然、音声ファイルも含めた合計サイズを意味しますので、音声の方を無圧縮のPCM音源をそのまま動画化していたらそれだけで軽く2GBは超えてしまいます。今現在の主流はAACですが、全音域での品質を優先するのであればMP3でしょうし、アニメ特有の高音域が多い動画ならAACやOpusの方が圧縮効率が良くなります。

そしてやがてこれらの様々な特質を持つコーデックの数種類を組み合わせて1つの動画にまとめあげる複合的な動画作成技術が数年以内に実用化されると思います。Youtubeの親会社であるGoogleはもう既にそれに必要なビッグデータを充分に蓄積していますし、AIによる動画エンコ処理の自動最適化に必要な超高速超大規模サーバも有しています。2020年代には普通にYoutubeに動画を投稿すれば、専門的な知識が無くても誰でも最適化された高画質低サイズの動画が作れる様になるでしょう。これは願望などでは無く間違い無く訪れる未来予測です。

今、こうして我々が喧々諤々の議論をしているのも、やがては懐かしい過ぎ去った日々の思い出となる事でしょう。

投稿日時 - 2019-07-05 15:21:32

お礼

やはり、動画変換や動画編集ソフトでは、画質の劣化を恐れて、少し大きめの幅(ソフト製作者の最適な度合いが、大きい)なんですかね。
それはわからないでもないですが。

>特に現時点でのHEVC/x265はCRFの方が圧倒的に高画質で低容量の動画ファイルを作る事が出来る

私は、変換時間が異常にかかるので、H265はそこまで使っていませんが、H264では、品質固定(CRF)です。
H264での変換なら、そこまで時間がかかりませんし。

「可変(VBR)の方が、圧縮できるよ」というサイトもありますが、どう頑張っても、同様のクオリティで、可変(VBR)で動画の容量を削減することができなかった。

それは私個人の経験論で、あまり回答してこなかったのですが、半分くらいは?は同意していただき、ありがとうございます。
とても参考になりました。

投稿日時 - 2019-07-06 09:31:22

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問