2014年3月29日土曜日

Ffmぺsync ver.1.0 実行タイムと画質比較

Ffmぺsync ver.1.0  ffmpeg.exeを手軽に使うためのファイル同期風フロントエンドVBスクリプト 本編   実行タイムと画質比較 

 Ffmpesyncは自分の動画環境である「PT某録画ファイルを元にAvitul+x264でエンコードした高画質動画」を、「仕分けしてるフォルダごと指定して一気にほどほど画質のコンパクトなファイルに指定先に変換出力するフロントエンドVBS」です。
 自分はPT某からFfmpesyncを使って直接変換したファイルを保管用とする事はないのだが、普通はAviutlでゲツした番組を片っ端からエンコードしてる人はまずいないわけで、それを考えると録画ファイルを直接Ffmpesyncに放り込んで、処理時間とかファイルサイズとか画質とかどうなるか、残しとくのも意味あるかなと、今回の記事を立ち上げて見ました。

 念のため言っておくとFfmpesyncは変換パラメータを渡してるだけなので実際の処理はFFmpeg.exeまかせです。同じ性能のパソコンでも使用するFFmpegのバージョンやビルドしたライブラリとかにより時間に違いが出るかもしれません。

 ちなにみ私はここらへんから環境にあったFfmpegのビルドを利用させてもらっています。
Zeranoe FFmpeg
お気に入りの動画を携帯で見よう
感謝です。


テストに使用した30分の動画TSファイル。 ※プロテクトのかかった動画ファイルは変換できません。
処理(元)ファイル名:2014032907000101-.ts
  サイズ:4390.92MB
長さ(時間):00:30:13
データ速度:‎24000kbps
フレーム高:1080
フレーム率:‎29 フレーム/秒
フレーム幅:1920 


 画質の比較はこのシーンでします。もっとも本当は動画で見てもらうのがいいんだけどね。最近何かとアレだからなー ワンシーン300%拡大です。


Win8.1とWin7sp1それぞれでファイル詳細を取得したらこうなります。※濃い背景部分は出力ログからのコピペです。

プロパティ表示
Win8.1とWin7sp1の詳細項目を並べると気がつくと思いますが、詳細項目位置が「属性」以降で異なっている、、、この状態は同じパソコン内でも発生する場合があります。これは機会があったら述べようと思います。
 このファイルを元に最初から最後まで1280x720へ変換しています。


 まずは参考までに自分が保管用エンコードとして使っているAviutl+拡張x264出力(GUI)Ex
 
 
パラメータは1Pass品質25
処理(元)ファイル名:C:\Video\2014032907000101-妖怪ウォッチ25aviutl.mp4
  サイズ:272.79MB (6.21%)
長さ(時間):00:30:12
データ速度:‎1163kbps
フレーム高:720
フレーム率:‎29 フレーム/秒
フレーム幅:1280

処理時間34:30 (ファイルの作成日時と更新日時の差分より)
 ソースがフルHDだからかなーこんなもんかと思っていたら、そーいや保管用フィルターかけたままだなーと気がついてリサイズと音声最大化以外のフィルターをOFFして実行
  サイズ:259.23MB (5.9%)
データ速度:‎1101kbps
処理時間31:17
 フィルターがなくなった分少し時間短くなったな。うん。 ファイルサイズもぼちぼち。画質もボヤけてはいるが誤魔化しが上手いと思う。


市販品もサンプル取らないトナーと、自分が保管用エンコードでロスレス音声wavを作成するのにつかっている変換ソフトの「YOUTUBEプロファイル1280x720通常」で変換をしてみた、のだが
  サイズ:1385.19MB(31.5%)
データ速度:‎6276kbps
処理時間7:33 変換速度はAviutlの時と比べて1/3切ってるのだがなにぶんファイルサイズと画質のバランスがザンネンすぐる。、、、、プロファイルの選択間違えたかなーなんで製品名は出しません。いやホント 音声変換ではお世話になってるのよ。。。。。。


 ここまでは実行環境の関係からエンコード用PCでしていたのだが、Ffmpesync+FFmpegを品質毎にするにあたって、今時の一般的であろうCPUのパソコン(i7-2600k 3.4GHz Mem8GB SSD)
でエンコードしようと思う。品質はFfmpesync自動設定初期値の34
  サイズ:172.74MB(3.94%)
データ速度:‎663kbps
処理時間5:27

 ファイルサイズと処理時間は文句はほとんどない、、、が画質的にはどーかというと。これは以下エンコードマシンで各品質ごとにしていった結果を見て欲しい。でも拡大した静止画だからアラは目立つんだけど、実際はもっと小さくて動きがあるわけで、結構誤魔化されるんだよね。

 以下はFfmpesync+FFmpegにてサイズ固定で品質のみ変更しておこなった。処理はメインエンコードマシン(i7-3930k 3.2GHz Mem8GB SSD)。 CPU速度は2600kより遅く設定しているのにも関わらず12スレッドの威力かどーか不明だが、処理時間は総じて4:30~5:00と短くなった。

ffmpesyncの指定は 
画質 ←  01,11,21,31,41 → 圧縮率(ファイルサイズ)
な感じで、バランスがいいのが21.品質31-1280x720。ファイルサイズを優先したいなら31.品質34-1280x720。
  低めの品質にして画面サイズを一回り小さくするのもアリ。ファイルサイズが小さくなり画面も落ち着く感じがします。

01.品質25-1280x720 2010kbps 464.32MB(10.57%)
 11.品質28-1280x720 1343kbps 320.13MB(7.29%)
21.品質31-1280x720 931kbps 231.05MB(5.26%)
31.品質34-1280x720 663kbps 173.04MB(3.94%)
41.品質37-1280x720 481kbps 133.65MB(3.04%)

 品質を固定して画面サイズを小さくした全体サンプル。 (自動判定ロジックでは変換元のファイルサイズが先より小さくなった場合、画面サイズを一回り小さく設定するようにしてある)
33.品質34-960x540 443kbps 126.11MB(3.01%)

 このように画面サイズを小さくするとファイルサイズも小さくなり、画質もいくぶん落ち着く、、、気がするかもしれない。 結局慣れとかもあるかもしれないねー。
 後、出力先の画面サイズが小さくなると処理時間も短くなる。1280x720の時と比べて30秒は短くなっている。 ある程度割り切れば気軽に動画を持ち出すことが出来るわけだ。

 それなりのスペックのPCなら一時間番組くらいまでなら少しの時間で変換できるので、自分好みの妥協できる「画質」と「画面サイズ」と「ファイルサイズ」のを見つけてください。

0 件のコメント:

コメントを投稿