MPEG2-TS 動画を H.264 形式へ変換する(H.264 High Profile 対応 / ドラッグ&ドロップでOK)
圧倒的な圧縮率を誇る動画圧縮方式といえば、「H.264/MPEG-4 AVC」でしょう。
ネットブックでの再生にはまだ重荷ですが、最近はエントリーレベルのPCでも再生できるようになりました。という事で今回は、録画した MPEG2-TS 形式ファイルを、ドラッグ&ドロップで H.264 へ変換するバッチを作成します。
※2013/9/19 リンク切れ対応、一部文章変更
※2011/12/14 文章ブラッシュアップ
H.264 形式の詳細については、関連記事「動画圧縮方式 H.264 のプロファイルとレベルについて」を参照ください。
今回は、以下の3つのプロファイルに対応したバッチを作成します。
- ベースラインプロファイル(Baseline Profile)
→最低限の画質。携帯向け。 - メインプロファイル(Main Profile) +α
→PCでの常用を目的とした中画質。中負荷。 - ハイプロファイル(High Profile)
→PHL(パナソニック・ハリウッド・ラボラトリ)が策定に絡んだといわれる超高画質。 放送業界発展への寄与を認められ、エミー賞を受賞した技術。でも激重。
用意するもの
- BonTsDemux_mod_10k5
→ Friio関係ファイル置場 で入手 - FFmpeg
→ お気に入りの動画を携帯で見よう で入手
FFmpeg の H.264 サポートは頻繁に更新されていますので、新しいものの安定板をお勧めします。
(※ 2011/7/27 追記:libfaac 絡みの大人の事情により、現在おすすめのバージョンは rev.18607 ) - FFmpeg 向けのプリセットファイル
→ 以下3ファイルを入手・libx264-baseline.ffpreset (Baseline Profile 相当)
・libx264-default.ffpreset (Main Profile 相当 + α )
・libx264-hq.ffpreset (High Profile 相当)FFmpeg の H.264 プリセットについては、こちら(英語サイト)が詳しいです。
導入作業(H.264/MPEG-4 AVC High Profile版)
1.適当なディレクトリに BonTsDemux_mod_10k5 を展開
2.BonTsDemux_mod_10k5 に同梱の ffmpeg.exe を、入手した ffmpeg.exe で差し替え
3.このディレクトリに「ffpresets」ディレクトリを作り、入手した FFmpeg 向けプリセットファイル3つを配置
4.以下のようなバッチファイルを書き、適当な名前(cmdlaunch_H264_HighProfile_WXGA.bat など)で保存します。
ドライブレターやパスは、環境に応じて設定してください。
c:
cd /d \friio\BonTsDemux_mod_10k5bontsdemux -i "%1" -o %~n1 -encode "X264_HIGH_WXGA" -nd -vf -start -quit
5.cap_sts_sea.ini ファイルに以下の定義を追加します。
解像度・ビットレートはお好みで変更してください。
地デジの横解像度は1440 ピクセルしかありませんので、1280 ピクセルへの変換でも、思ったほど劣化は感じないと思います。
X264_HIGH_WXGA =-f mp4 -vcodec libx264 -vpre "./ffpresets/libx264-hq.ffpreset" -aspect 16:9 -s 1280x720 -b 1200000 -threads 2 -vtag mp4v -acodec libfaac -ar 48000 -ab 96000 -y
X264_HIGH_WXGA_EXT =avi
※注意
ここで設定したビットレートを低くしても、手順6で設定する qmax (品質の最低値)が優先されます。
6../ffpresets/libx264-hq.ffpreset の編集
各人の好みで設定を変更すればよいと思います。
シーク後の画面の荒れが気になるようであれば、g の値を小さくしてもよいでしょう。(ただし、圧縮効率は下がります)
品質設定ですが、私は qmin を7にし、qmaxを28にしています。
また、インタレース対策として、flags に ilme を追加しています。ildct は極端に重くなり、効果も微妙なので指定していません。
以下は、私の使用している設定値です。
coder=1
flags=+loop+ilme
cmp=+chroma
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
me_method=umh
subq=8
me_range=16
g=150
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=2
qcomp=0.6
qmin=7
qmax=28
qdiff=4
bf=4
refs=4
directpred=3
trellis=1
flags2=+bpyramid+wpred+mixed_refs+dct8x8+fastpskip
以上でバッチファイルは完成です。
プリセットファイルを変更すれば、別のプロファイルにも対応できます。それぞれのプロファイル用のバッチファイルを作成すればよいでしょう。
使い方
あとは、MPEG2-TS形式の動画ファイルを、先ほどのバッチファイル(cmdlaunch_H264_HighProfile_WXGA.bat )にドラッグ&ドロップするだけで、H.264/MPEG-4 AVC High Profile 形式へ変換してくれます。
※注意!
変換が始まらない場合は、変換元ファイル名の全角・半角スペースを取り除いてみてください。
ffmpeg に個別にパラメータを与えるのは大変ですので、プリセットファイルを使うところがミソです。
音ズレについて
どんなパターンでも絶対音ずれしない。というわけではありませんが、BonTsDemux_mod_10 で VideoFrame 補完処理をしているため、今のところ目立った音ズレは発生していません。
品質について
超高圧縮とあまりの品質の良さにかなり驚くのではないでしょうか。
お気に入りの番組を保存しておきたいが、Blu-ray ドライブもないし・・・・せめてDVDにハイビジョン動画が入ればいいのに。という用途にはうってつけです。
これで、お気に入りの番組は容量を気にせず保存しておけますね。
関連記事
wow says:
15年前
X264_HIGH_WXGAをcap_sts_sea.ini に書き込んで使ってみたのですが
エンコが始まらずに黒いウインドが一瞬でて終了します
ほかの定義だと問題ないですが
う~ん
admin says:
15年前
うまく動かないときは、スタートメニューからコマンドプロンプトを立ち上げて、引数に変換したい動画ファイル名を指定すると、ffmpeg が吐くエラーメッセージが見れますよ。
あと libx264-hq.ffpreset ファイルは必須です。
ffmpeg.exe があるディレクトリに「ffpresets」ディレクトリを作ってその中に入れてください。
エラーメッセージを確認して、そんなプリセットは無い。と言われるならこの問題と思います。
hermit says:
15年前
wowさん。例のiniファイルやffmpegのプリセット文中の「×」を半角の「x」に置換すると動くんじゃないかな?と思います。
admin says:
15年前
hermit さんのご指摘の通りと思います。
Wordpress って勝手に英字の「x」を「かける」に変換して表示しちゃうんですねぇ・・・・
こういう勝手な変換ってなんとかならないものなのでしょうか。
admin says:
15年前
ひとつ上のコメントの通り、Wordpress の設定変更をしました。
これでコピペでいけるようになったと思います。
hermit says:
15年前
わざわざ対応していただきまして恐縮です。
FFmpegでHighProfileエンコードしてみました。低いレートでもかなり良い感じで驚きです。
普段はMencoderで軽く済ましてるんですが、ここぞと言うときに使おうと思います。
ありがとうございました。
TSのH.264変換に悩む at treffen @ Wordpress says:
15年前
[...] せっかくなので、H.264変換で保存しようと、 http://www.teradas.net/archives/446を参考に、最新のffmpegを 導入して、H.264の変換を試みたところ、なぜか上手くいかない。 [...]
hellharmony says:
14年前
ファイルオープンに失敗、のエラーが出るので
バッチファイルの "%1" の部分からダブルクォーテーションを除いた。
バッチファイル・ffmpeg・BonTsDemux のウィンドウが開いて
BonTsDemux の進捗ゲージが伸び、
右端までいっぱいになって止まっている。
下端の進捗状況は「サービス名:サーチ中...」。
TSファイルは557MB・再生時間5分、変換に1時間も待たされるとは考えにくいのだが…
hellharmony says:
14年前
自己解決しました。
いっこ前のトラックバックの通り、
旧バージョンのffmpegで動作。
Amulo0912 says:
14年前
FFmpegのサイトにアクセスできません。 リンクをクリックしても、NotFoundになっています。
どこから入手できるでしょうか?
admin says:
14年前
>Amulo0912 さん
遅くなりました。リンク先修正しました。
また、記事中の libx264-hq.ffpreset の記述を使っていただいてもお使いいただけます。
【Friio】初心者用質問スレ12うわw目【フリーオ】 | PC@質問.COM says:
14年前
[...] [...]
BonTSDemixとffmpegでts->mp4の変換 | 日々の記録 says:
13年前
[...] TeraDas-テラダス » Friio の MPEG2-TS ファイルを H.264 形式へ変換する(H.264 High Profile 対応 / ドラッグ&ドロップでOK) ↑のとおりにやればできた。ただし,↓に書いてあるのようにFFmpegの [...]
yonezawa177 says:
13年前
変換ファイルが出力しません。
以下の状況です。
ファイル(test.ts)を、バッチファイルにドラッグ&ドロップすると黒のウインドが開き、
I:\friio:
I:friio>cd /d \friio\bonTsDemux_mod_10k5
指定されたパスが見つかりません。
I:\friio>bontsdemux -i "I:friio\test.ts" -o test -encode "X264_HIGH_WXGA" -nd -vf -start -quit
同時に、BonTsDemux Ver.1.10 mod.10k5 のウィンドウが開いて
エンコード方式 X264_HIGH_WXGA
サービス選択 I: サービス名取得中...
下端の進捗状況は、グリーンのバーが作動しており
右端まで行くと すべてのウインドが閉じる。
以上、よろしくお願い致します。
admin says:
13年前
「サービス名取得中」という検索キーワードで来る人が多いので書いておきます。
ウチでは「サービス名取得中」のまま止まるという症状は出ていません。
多分、TSファイルに以下の処理をしているのがコツなのかも。
TsSplitter.exe -EIT -ECM -EMM -SD -1SEG -OUT "出力先パス名" "動画のファイル名.ts"
ウチではTvRockの録画後、自動的にTsSplitterに通しています。
また、TVTestで「設定」→「録画」→「現在のサービスのみ保存する」にチェックを入れても効果があるかもしれません。
未確認情報で恐縮ですがお役に立てば。
isamu says:
10年前
初めまして。いまさらですが質問させてください。
ドラッグ&ドロップで変換は始まるのですが、保存先が指定できず困っています。
たとえば123.tsというファイルを変換させると
『ビデオ出力ファイル(V)(拡張子は、変換時に付加されるため不要)』
という欄に123という変換中のファイル名だけ出てきます。
以上、よろしくお願い致します。
出力先がないためファイルもないという状態です。
isamu says:
10年前
最後の2行上下逆です。すいません。
ts mp4 says:
8年前
参考になります。
ありがとうございます。
動画 変換 says:
5年前
方法ありがとうございます。
試してみます。