« KAN「よければ一緒に」本日発売[Feb.10th.2010] | トップページ | ソフトバンクの家庭用フェムトセルサービス「ホームアンテナFTサービス」福岡で実験開始か?[タイトル改題しました] »

2010/02/15

TS(MPEG2-TS)をH.264に変換してみる[追記あり]

この記事は以前に書かれたもので現在も有効であるかはわかりません.現時点で有効であるfriioやpt1/pt2で生成されるtsファイル(mpeg2-ts)の編集については以下のエントリーをご覧ください.

pt2のts(mpeg2-ts)ファイルをmpegやmp4に変換する[2011版]→BonTsDemuxを使ってDVD用のmpeg2ファイルへの変換方法
PT2で録画したtsファイルをmultiAVCHDでAVCHDに変換する!→tsファイルをAVCHDに変換する方法
DVD Styler2.0でmpegを再エンコードなしにオーサリングする!→DVD Styler2.0を使ってmpeg2からDVDを作成する方法
TSファイルをaviに変換する→HDTV to MPEG2を使ってts(mpeg2-ts)をカットする方法
Handbrakeが0.9.5になってPT2のMPEG2-TSを読めるようになった→ts(mpeg2-ts)から直接mp4などに変換するソフトHandbrakeの紹介
SANYO Xacti-HD2でとった mp4をFFmpegでmpeg2に変換する→サンヨー(現パナソニック)のmp4動画をFFmpegを使ってmpeg2に変換するバッチファイルの紹介

いわゆる生TSが録画できるようになると,そのサイズの大きさに困ります.以前から,bontsdemuxを使って音声と映像を分離し,aviutlを使ってmp4に変換する方法をとっていました.そのほかに,DVD moviewriterでDVD_Videoを作成したりしていました.

また,HDTVtoMPEG2というソフトを使ってTSを直接編集する方法についてエントリーを書きました.

今回は,バッチファイルを作成し,ドラッグアンドドロップでbontsdemux→FFmpeg経由でmp4やDVD_Videoを作成する方法について調べてみました.

今回参考にしたのはTeraDasというサイトです.
ここにある「Friio の MPEG2-TS ファイルを H.264 形式へ変換する(H.264 High Profile 対応 / ドラッグ&ドロップでOK)」という記事と「Friio の MPEG2-TS ファイルを DVD へ変換する(ドラッグ&ドロップでOK)」という記事を参考にしています.

このサイトがあまりにも親切なのでほとんど説明することがないのですが,FFmpegのバージョンだけ気をつけないといけません.

FFmpegは「お気に入りの動画を携帯で見よう」というサイトでバイナリを作成して公開しておられますのでこちらからダウンロードすればよいのですが,2009年4月に公開のFFmpeg rev.18607までをダウンロードしてください.rev.18822以降はAACのエンコードに問題があるようなので,この問題が解決するまではとりあえずrev.18607までを使ってください.

BonTsDemux V1.10+k7
をダウンロードしたら解凍したフォルダ内にあるFFmpeg.exeを新しいFFmpeg.exeに変えます.

次にH.264/MPEG-4AVCのプロファイルをダウンロードします.私はSourceForge.jpのサイトからダウンロードしました.必要なのは

・libx264-baseline.ffpreset
・libx264-main.ffpreset
・libx264-hq.ffpreset

の3つのようです.
解凍したフォルダ(今回はbontsdemuxフォルダ)の中にffpresetsというフォルダを作成し,これらのプロファイルをコピーしておきます.

次に,tsファイルをドラッグアンドドロップする先のバッチファイル(今回はx264_high.bat)を作成し,

c:
cd c:\users\ユーザ名\desktop\BonTsDemux
bontsdemux -i "%1" -o %~n1 -encode "X264_HIGH_WXGA" -nd -vf -start -quit

という風に作っておきます.今回はデスクトップにbontsdemuxフォルダを作成したのでこんな感じになっていますが,その辺は自分の環境にあわせてください.

最後に,bontsdemuxフォルダにある「cap_sts_sea.ini」ファイルに下の2行を加えます.

X264_HIGH    =-f mp4 -vcodec libx264 -pass 1 -vpre "./ffpresets/libx264-hq.ffpreset" -aspect 16:9 -s 1280x720 -b 1200000 -threads 4 -vtag mp4v -acodec libfaac -ar 48000 -ab 96000 -y
X264_HIGH_EXT    =avi

今回はPhenomIIで実験したので-threadsは4でしたが,コア数に応じて書き換えてください.また,ファイルサイズは今回1280×720にしていますが,必要に応じて書き換えてください.

これらの準備が終わったら,tsファイルを「x264_high.bat」にドラッグするとエンコードが始まります.

今回試したのはPhenomII 3.0GhzX4だったのですが,4コア使って13FPS位の速度でエンコードしていました.1秒が約30フレームなので,計算すると30/13=2.31倍となり実時間の2.3倍くらいでエンコードができるようです.

同様に,DVD用のエンコードとして,「toDVD.bat」というバッチファイルを作り,

c:
cd c:\users\ユーザー名\desktop\BonTsDemux
bontsdemux -i "%1" -o %~n1 -encode "TO_DVD" -nd -vf -start -quit

とし,「cap_sts_sea.ini」ファイルに下の2行を加えます.

TO_DVD    =-target ntsc-dvd -b 3800000 -acodec ac3 -aspect 16:9 -ab 192000 -ac 2TO_DVD_EXT    =avi

こうすることで,DVD_Videoを作りやすいビデオに変換してくれます.

追記 DVD_Videoへは次のようにした方がよいみたいです.ディスク一枚にぎっちり動画を収めるのでなければビットレートを書かないでよいかも知れません.ちなみにビットレートを書かなくてエンコードしたら6000kb/sでエンコードされました.

TO_DVD    =-target ntsc-dvd -vcodec mpeg2video -s 720x480 -acodec ac3 -aspect 16:9 -ab 192000 -ac 2
TO_DVD_EXT    =mpeg

TO_DVD_EXT=mpeg と書くとファイル名.mpegファイルになります.mpegにすることでオーサリングソフトが扱いやすくなりますね.vobでもいいのかも知れません.

本来はここからFFmpegのコマンドラインのパラメータを極めていかないといけないのでしょうが,とりあえずはこんな感じでよしとしましょう.

追記 どうもmp4やmpeg2に変換する際に音飛びが発生する場合があり,その原因を探っていたところ,どうもVF(Video Frame)補完オプションを切れば音飛びしないような感じがします.なので,上記のオプションのうち,「-VF」を消して運用をはじめました.

追記の追記[20100520] ビデオフレーム補完のVFオプションをつけて,cap_sts_sea.iniの該当部分の-r 29.97を削除してみました.これで様子を見てみます.

追記[20100616] tsファイル→DVDへはDVDFlick経由が一番簡単だということが判明しましたので新たに記事を書きました.

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

by amazon通販最速検索 at 2011/01/24

« KAN「よければ一緒に」本日発売[Feb.10th.2010] | トップページ | ソフトバンクの家庭用フェムトセルサービス「ホームアンテナFTサービス」福岡で実験開始か?[タイトル改題しました] »

PT2」カテゴリの記事

パソコン・インターネット」カテゴリの記事

映画・テレビ」カテゴリの記事

コメント

この記事へのコメントは終了しました。

広告


  • Googe Adsense

Ad




  • ネットショップ

Googleで検索

2016年6月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

SNS

アクセス解析