TSファイルをH.264に変換(エンコード)するソフトの検討 【TV視聴・録画PC】

  • 投稿 : 2011-11-23

本記事は広告およびアフィリエイトプログラムによる収益を得ています

Quick Sync VideoでH.264に変換したい

TSファイルはファイルサイズが大きいですし、再生できるソフトもいろいろ制限があるようなので、H.264形式に動画を変更してしまう方向でどのソフトが良いか検討しました。

H.264にさえ変更すれば、Windows Media Playerでも再生が可能ですし、Windows Media PlayerのDLNAサーバー・クライアントの機能が使えてかなり便利になると思います。

エンコードはどんな早いCPUでも遅いので、Quick Sync Videoあたりが使えるとありがたいというのもあります。フリーソフトでこれっていう情報がなかったので、市販の体験版を試してみることにしました。

体験版で試したソフト

TMPGEnc Video Mastering Works 5(体験版-Vector
MediaEspresso6.5/(体験版
・Arcsoft MediaConverter 7 /(体験版
・TMPGEnc MovieStyle

Quick Sync Video使用で
TMPGEnc Video Mastering Works 5が実時間と同程度、残り3つは実時間の1/3~1/5程度でほぼ同じエンコード時間でした。画質は、やはりエンコード時間の長さと比例するようです。

Arcsoft MediaConverter 7とTMPGEnc MovieStyleは、フォルダ監視機能というものがあり、フォルダにファイルが作成されると自動で検出して変換してくれるんです(参考記事:【清水理史の「イニシャルB」】 第425回:保存した動画をスマートフォン向けに自動変換~Sandy Bridgeで作る高効率サーバー -INTERNET Watch)。これは非常に便利です。

ということで、値段とフォルダー監視機能で「TMPGEnc MovieStyle」が良いと個人的には思いますが、このソフト後からわかったので私が選択したときはこのソフトのことを知りませんでした。あと、Amazonにも「TMPGEnc MovieStyle」あるのですが、最新バージョンなのかどうなのかもわからないので、買うとしたら別のところでしょうね。

私は、MediaConverter 7を選択しました。クーポンで検索すると、クーポンコードが出てきて割引に使えるらしいのです(参考記事:core i5 2400Sで省電力サーバー&エンコーダー - 新しいもの好きのブログ)が、知らなかったので使ってません。

ただ、MediaConverter 7でうまく変換できないTSファイルが存在します。変換はできるけど、解像度情報がおかしいようで、ワンセグの解像度で切抜きのような動画になるとかです。ほか、エラーで途中でだめとかもあるのでおすすめはできないですね。こういうソフトはちょっと試しただけではわからないことが多いみたいですね。

Windows Media PlayerのDLNA

指定したフォルダの動画を自動検出してくれるのですが、動画変換系とうまく連動できないことが判明しました。H.264で変換された動画ファイルなのに、対応外のメディアファイルとして分類されてしまうんです。

どうも自動検出時にエンコード途中のファイルで判断するのが原因のようです。だから、エンコードしてから、ファイルを該当フォルダに移動させることで回避することは可能です。

AutoHotkeyを使うと以下のようなスクリプトになります。定期的に呼び出すようにすると良いと思います。

ただ、動画変換ソフトが立ち上がってるだけでファイルが握られてるようなので変換ソフト自体を終了させないとダメなのかもしれません。
;動画変換中は処理を抜ける
Process,Exist,Converter.exe
if ErrorLevel<>0
{
  return
}
;------------------------------
;ファイルの移動
: 同名ファイルがあるときは、ファイル名_数字にリネームして移動
;
FileMove, F:\Videos\変換後\*.*, F:\Videos\録画\*.*
If ErrorLevel <> 0
{
   FileMove, F:\Videos\変換後\*.*, F:\Videos\録画\*_%a_index%.*
}

;------------------------------
;2日以上前のファイル削除
Loop, F:\Videos\data\*.*
{
   var1 = %A_Now%
   var2 = %A_LoopFileTimeModified%
   EnvSub, var1, var2, days
   
   if var1  >2
   {
      FileDelete,%A_LoopFileFullPath%
   }
}

スポンサーリンク