BonTsDemux mod 10k5 (modified by kt)

LxbEvo.FpE氏による BonTsDemux mod 10 を改造したもの。

AAC の Demux をバッチ処理できるソフトが見当たらなかったために作成。

○変更点
・AAC の Demux 機能を復活。
  AAC Demux 時には、ファイル名に遅延時間を入れるように変更。
  （DGIndex などと同じ形式。）

・音声の遅延時間を補正できるように変更。
  コマンドラインでは -delay nnn で指定可能。（nnn は、ms単位の整数）

・RF64サポート、Video Frame補完の設定をファイルごとに記憶するように変更。
  D&D でファイルを登録する場合は、他のオプションと同様に、先に希望の設定を
  選んでおいた状態で D&D すること。

・スクランブル解除を行わないオプションを追加。
  コマンドラインでは -nd で指定可能。
  （スクランブル解除済みファイルの処理高速化用）

・操作性向上のため、一部のボタン等にアクセスキーを追加。

・その他の細かい変更は下記の履歴を参照のこと。


○ビルドに必要な環境/ライブラリ
・Microsoft Visual Studio 2003 以上
・FAAD 2.6.1
  http://www.audiocoding.com/downloads.html
  （コンパイルしてできたリリース版 libfaad.lib を BonTsDemux.vcproj などと
    同じ階層に置くこと。また、デバッグ版のライブラリは libfaadd.lib にリネーム
    して同じ階層に置くこと。）

○履歴
2009/01/10  mod 10k5
・操作性向上のため、一部のボタン等にアクセスキーを追加。
・MFC をスタティックリンクするように変更。（ランタイムライブラリは不要に。）

2008/09/13  mod 10k4
・スクランブル解除を行わないオプションを追加。
・設定を変更していないにも関わらず、変換開始時にバッチリストに追加登録される
  場合があったのを修正。

2008/09/10  mod 10k3
・ランタイムライブラリが不足していたので追加。（中身の変更は無し。）

2008/09/07  mod 10k3
・mod 10k2 で、音声の遅延時間の補正が効いていなかったのを修正。
  なお、補正値にあまり大きな値（数秒以上？）を入れると動作がおかしくなるかも
  知れないので注意。

2008/09/07  mod 10k2
・処理が終了したらウィンドウを点滅させるように変更。
・RF64サポート、Video Frame補完の設定をファイルごとに保存するように変更。
・音声の遅延時間を補正できるように変更。
・タブオーダーがめちゃくちゃだったのを修正。
・ランタイムライブラリを同梱。

2008/08/25  mod 10k1
・mod 10 を改造。
・AAC の Demux 機能を復活。
  AAC Demux 時には、ファイル名に遅延時間を入れるように変更。
  （DGIndex などと同じ形式。）
・Win2k（WinXP でビジュアルスタイル off の場合も？）で、ドロップダウン
  コンボボックスが 1行しか表示されないのを修正。
・バッチリストの表示幅を拡大。
・ファイルオープンダイアログのサイズを可変に設定。
・その他、VS2003 でコンパイルできるようにするためのソース上の修正など。



----------------------------------------------------------------------------
BonTsDemux mod 10 readme
----------------------------------------------------------------------------

BonTsDemux mod 10 (modified by LxbEvo.FpE)

TSファイルを、直接別ファイルに変換する。

BonTsDemuxで、WAV変換時にVideo FrameとAudio PTSを使って音声を ずれないように補完
ffmpegに直接はいてみる


設定項目の説明

	・RF64サポート
	
		true 時 4GB オーバー時 RIFF強制 
		false 時 4GB オーバー時 RF64（今まで通りの動作） 

	・Video Frame補完

		・TSソースで音声のみの空間がある
		・biterr等で、ビデオ or 音声フレームの欠落がある
		上記があてはまるTSソースで音ずれが発生する場合、これにチェックを入れると改善するかも。
		※ただし、現状では29.97fps決めうちなので、それ以外のソースだと逆にずれてしまいます。


FFMPEG使用時の注意事項
	・強制5.1ch出力だとほとんどのケースでエラーになります。
	・localhost:1234をBonTsDemux側で使用します。
	・入力(-i)、出力ファイルの指定はしないでください。


コマンドラインからの呼び出し仕様
	例: bontsdemux -i "test.ts" -o "test" -encode "Demux(m2v)" -start -quit

	コマンド種類
	-i [ファイル名]		入力ファイル(ts)の設定
	-o [ファイル名]		出力ファイルの設定。拡張子は自動で付く仕様なので、つけないことを推奨
	-srv [サービス番号]	サービス番号の選択(10進数値)
	-es [0-2]			音声ESの選択(0:サービスに依存 1-2:2-3番目に存在する音声(ない場合は0と同じ振る舞いをする)
	-encode [種類]		[種類]例：	指定なし	…Demux(m2v+wav)
									Demux(wav)	…音声のみ
									Demux(m2v)	…映像のみ
									MPG2PS		…MPG2PS形式で出力(cap_sts_sea.iniでの設定項目)
									WMV8		…WMV8(cap_sts_sea.iniでの設定項目)
									 ：
	-sound [方式(0-4)]	0:Stereo(主+副)
						1:主音声
						2:副音声
						3:強制5.1ch
						4:強制5.1ch(Split)
	-rf64				wav RF64サポート
	-vf					Video Frame補完有効
	-start				自動で開始
	-quit				自動で終了

----------------------------------------------------------------------------------------
mod 10
	qE.77T.ink氏のWavWriter の RIFF 強制対応版
	Video Frame補完 を、オプション扱いに変更

mod 9.1
	副音声が選択できていなかった不具合を修正

mod 9
	コマンドラインオプションに対応
	音声出力方式で、主音声,副音声の選択が出来なかった不具合を修正(mod 8でのエンバグ)
	ファイル名が長すぎると、D&D時に落ちていた不具合を修正
	RF64出力を選択可能にした
	cap_sts_sea.iniファイルで、拡張子の指定を可能とした
	
mod 8
	5.1ch出力時のチャンネルアサインバグ修正
	qE.77T.ink氏のRF64フォーマット対応
		→4GB を超えると自動的に RF64 フォーマットになる。
		→5.1ch Splitモード
			・チャンネル毎に 1ch Wav 書き出しクラス。
			・渡されたファイル名に対して、チャンネルのサフィックスを付けて出力する。
			・4GB を超えると自動的に RF64 フォーマットになる。

mod 7
	File出力時に、GOPのサイズが大きいと書きこみエラーをおこしていた不具合を修正
	ffmpegが異常終了したときにハングアップしていたのを修正
	demux時に音声補正を行った際、異常終了する不具合を修正
	その他、細かいところを修正
	
mod 6b2
	Meru氏のサービス選択を組み込み(動作あまり見れていない。)
	PTSのないパケットがきたときに、強制終了する不具合を修正
	ビデオ出力ファイルのエディットボックスに、拡張子を表示しないように修正
	拡張子をm2v,wav,mpg,mp4,aviから自動で選択する機能

mod 6b
	5.1 DownMixの係数間違いを修正
	qE.77T.ink氏の強制5.1ch出力を組み込み(TSソースがないため、動作未検証)
	Audio ES 選択機能追加
	バッチ処理機能追加
	D&D機能追加
	音声選択(主、副音)追加
	WAV出力のみ、M2V出力のみ選択機能追加
	音ずれ補正修正(ストリーム途中でも、200ms以上空白がある場合はNULLで一気に埋めてみる)

mod 5
	ffmpegに直接はいてみるテスト
	ffmpegへのパラメータは、cap_sts_sea.iniで逐次変更してください。
		→入力(-i)、出力ファイルの指定はしないでください。
		→2-passは出来ません(仕様)。
		→付属のffmpeg.exeは、 rev.12910 Pentium4最適化版です。(入手元：http://blog.k-tai-douga.com/)
	また、今回のバージョンより、wav吐き出し専用になっています。(音声は強制2ch専用)

mod 4
	mod 3でコミットミスがあったので修正
	＋多少改良

mod 3
	途中でチャンネルを変えても、ある程度同期できるようにした(私の実力では、これが限界)
	エラーで破棄するしかない音声フレームがあった場合、以前のオーディオサイズ分0出力するようにしてみた。
	(効果はあったらいいな程度)



----------------------------------------------------------------------------
original readme
----------------------------------------------------------------------------


− BonTsDemux Ver.1.10 −


１．概要
　　・BonシリーズのMPEG2-TS処理エンジン「BonTsEngine」を使用したサンプルプログラムです。
　　・TSファイルから映像(m2v)と音声(aac/wav)を分離してファイルに出力します。
　　・B-CASカードが接続されている場合はスクランブルされたTSファイルの読み込みが可能です。
　　・マルチチャンネルの場合はPATで最初のサービスに属するストリームが分離されます。
　　・AACデコードを使用する場合は常に2chにダウンコンバート/アップコンバートされます。

　　※本ソフトウェアの動作には「Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ」が必要です。
　　　　http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647


２．注意事項
　　・B-CASカードを許可された機器以外で使用することはB-CASカードの契約約款に抵触する可能性がある
　　　ため、本ソフトウェアは自己の責任において使用して下さい。
　　・本ソフトウェアは下記「公開規格」の技術情報に基づき「正規の手法」を用いるよう実装されています。
　　　純粋に技術的な検証を目的としたサンプルプログラムであり、第三者の知的財産権を侵害する可能性の
　　　ある目的に使用されることを作者は一切意図しておらず、またこれらの行為を禁止します。
　　・本ソフトウェアは正規にライセンスされたB-CASカードを用いることにより復号を行います。
　　・本ソフトウェア単体ではいかなる著作物の技術的保護手段も回避することはできません。
　　・本ソフトウェアは「フリーソフト」です。
　　・本ソフトウェアはARIB規格に適合することを保障しておらず、いかなる種別の製品にも該当しません。
　　・本ソフトウェアを使用した結果発生したいかなる損害も作者は責任を負うことはできません。
　　・本サンプルプログラムのソースコードの取り扱いはGPLに従うこととします。

　　これらに同意頂ける場合にのみ、本ソフトウェアの使用を許可致します。


３．ライセンスについて
　　・本パッケージに含まれる全てのソースコード、バイナリについて著作権は一切主張しません。
　　・オリジナルのまま又は改変し、各自のソフトウェアに自由に添付、組み込むことができます。
　　・但しGPLに従うことを要求しますのでこれらを行う場合はソースコードの開示が必須となります。
　　・このとき本ソフトウェアの著作権表示を行うかどうかは任意です。
　　・本ソフトウェアはFAAD2のライブラリ版バイナリを使用しています。

　　　"Code from FAAD2 is copyright (c) Nero AG, www.nero.com"

　　・ビルドに必要な環境
　　　- Microsoft Visual Studio 2005 以上　※MFCが必要
　　　- Microsoft Windows SDK v6.0 以上


４．参考文献
　　・ARIB STD-B10
　　・ARIB STD-B24
　　・ARIB STD-B25
　　・ARIB STD-B32
　　・ISO/IEC 11172-3
　　・ISO/IEC 13818-1
　　・ISO/IEC 13818-2
　　・ISO/IEC 13818-7

　　・まるも製作所「ARIB STD-B25 仕様確認テストプログラム」
　　・Meru氏「BonTsEngine改造版」
　　・Meru氏「CapUSB M-Edition」
　　・作者不明「Mpeg2-TSのストリームからデータ放送情報を抽出するテスト」
　　・Microsoft DirectX 9.0「PSI パーサー フィルタ サンプル」


５．サポート、連絡先
　　　連絡先　　：　拡張ツール中の人　　nakanohito@2sen.dip.jp
　　　公式サイト：　http://2sen.dip.jp/friio/

６．更新履歴
　Ver.1.10 ・映像と音声の開始位置を同期させる機能を追加。
　　　　　 ・音声出力ファイル名が反映されなかった不具合修正。

　Ver.1.00 ・初回リリース
