BonTsDemux mod 10k7 + nogui + es + fix03 rec10改変版
○変更点・履歴

2010/10/24
 ・10/22版をベースにwineでも動くようにVS2005でビルド、コマンドライン版のみの出力
         　をおこないました。同梱されていたffmpegはrec10からは使わないため同梱し
         　ていません。BonTsDemuxCをBonTsDemuxとリネームしました(互換性維持)
         　DLLなどエラーのもととなりそうなものを同梱しました。
         　by gn64_jp(rec10)
2010/10/22　
 ・FFmpegを0.6.1にしました。
     ※注意※
         ・同梱しているFFmpegはlibfaacが使えません。かわりに内蔵aacエンコーダ
         　が使用できますがあまり質はよくないようです。libfaacを使用されたい
         　方は自分でFFmpegをビルドしなければいけないようです。
         ・cap_sts_sea.iniの内容を同梱FFmpeg 用に修正しています。
         　画質はたぶん同等ですが、FFmpegのビルドがうまく最適化できてないから
         　かエンコード時間が長くなってます。
         ・おまけで、cap_sts_sea.iniにまとめサイトの内容、H264のHigh Profileで
         　エンコードするX264_HQ,X264_HQ_SMALL、またWEBMを追加しました。
         ・ffpresetファイルを同梱しました。
 ・コマンドラインオプションに -helpを追加しました。
 ・CUI専用 BonTsDemuxC.exeを用意しました。引数はGUIと同じです。
 　CUI版はエラーかどうかをリターンコードで判断できます。1：エラー,0:正常終了
 ・GUIの進捗状況表示をわかりやすく修正しました。
 ・FFmpegを最小化して起動するように変更しました。
 ・カンマありのファイルを正しく処理できるようにしました。
	
	※1 今回はVisual Studio 2005 でビルドしています。
	※2 FFmpegはUbuntu 9,04でビルドしています。
	
2010/05/20
・画面設定をBonTsDemux.iniに保存、復帰するように修正
  ※コマンドラインから-nogui,-start,-quitが指定された場合
    設定の保存、復帰は行いません。
    
    
2010/05/09 
・ファイルの最後にゴミがつかないように修正。
・ファイルの最後が欠落することがあったのを修正。

※ビルド環境に変更はありません。

----------------------------------------------------------------------------
BonTsDemux mod 10k7 + nogui + es (modified by pika)

LxbEvo.FpE氏、kt氏、bm氏、saba氏、moke氏による 
BonTsDemux mod 10k7 + nogui (modified by moke) を改造したもの。

○変更点

・bmさんの追加したバックグラウンドモードのために
　コマンドライン引数　-bg（-background）　を追加（通常のGUI処理でのみ有効）

・サービス指定を省略してES番号を指定した時、
　先頭のサービスが指定されたものとして処理を行うようにした

・複数プログラム（サービス）＆複数音声のTSの場合、
　２つ目以降のプログラムの２つ目以降の音声がうまく取り出せていなかったのを
　取れるようにした。

※注意
　動作確認は、XP32bitProfessionalSP3上でしか行っていません。
　テストソースは地デジのみ。

○ビルドに必要な環境/ライブラリ
・Microsoft Visual Studio 2008 以上
・FAAD 2.7
  http://www.audiocoding.com/downloads.html
  （コンパイルしてできたリリース版 libfaad.lib を BonTsDemux.vcproj などと
    同じ階層に置くこと。また、デバッグ版のライブラリは libfaadd.lib にリネーム
    して同じ階層に置くこと。）
※ おそらくは少々の修正でVisual Studio 2003/2005でもビルド可能だと思う。

○履歴
2010/03/04  (mod 10k7 + nogui) + es
・-bgコマンドライン引数追加
・サービス省略ES指定対応
・ES取り出し漏れ修正

----------------------------------------------------------------------------
BonTsDemux mod 10k7 + nogui (modified by moke)

LxbEvo.FpE氏、kt氏、bm氏、saba氏による BonTsDemux mod 10k7 (modified by saba) を改造したもの。

○変更点

・-noguiコマンドの追加
　指定した場合、GUIを表示せずコマンドプロンプト上のみで処理を行う。
　Wineで実行する場合GUIが邪魔になり実行できない場合があるため追加。

　このコマンドを指定した場合-startと-quitコマンドは無視する（指定しなくても自動開始、自動終了する）

○ビルドに必要な環境/ライブラリ
・Microsoft Visual Studio 2008 以上
・FAAD 2.7
  http://www.audiocoding.com/downloads.html
  （コンパイルしてできたリリース版 libfaad.lib を BonTsDemux.vcproj などと
    同じ階層に置くこと。また、デバッグ版のライブラリは libfaadd.lib にリネーム
    して同じ階層に置くこと。）
※ おそらくは少々の修正でVisual Studio 2003/2005でもビルド可能だと思う。

○履歴
2010/03/02  mod 10k7 + nogui .1
・-nogui指定時に-oオプションが効かなかったバグを修正

2010/02/21  mod 10k7 + nogui
・-noguiコマンドの追加

----------------------------------------------------------------------------

BonTsDemux mod 10k7 (modified by saba)

LxbEvo.FpE氏、kt氏、bm氏による BonTsDemux mod 10k6 + BM (modified by bm) を改造したもの。

○変更点

BonTsDemux を多重起動しても動作するようにした。
従来は ffmpeg と通信する TCP ポート番号が 1234 固定だったので、多重起動すると
おかしくなっていた。
これを、空いているポートを動的に選択するように変更したので、多重起動しても正しく動作する。

○ビルドに必要な環境/ライブラリ
・Microsoft Visual Studio 2008 以上
・FAAD 2.7
  http://www.audiocoding.com/downloads.html
  （コンパイルしてできたリリース版 libfaad.lib を BonTsDemux.vcproj などと
    同じ階層に置くこと。また、デバッグ版のライブラリは libfaadd.lib にリネーム
    して同じ階層に置くこと。）
※ おそらくは少々の修正でVisual Studio 2003/2005でもビルド可能だと思う。

○履歴
2009/12/20  mod 10k7
・多重起動に対応。

----------------------------------------------------------------------------

BonTsDemux mod 10k6 + BM (modified by bm)

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

○変更点
・mod 10k6 にバックグラウンドモードを追加。
　このチェックボックスをオンにして変換開始した場合、
　具体的には、Windows Vista で導入された Low-priority I/O を使用する。
　（Windows XP だったら代わりとしてプロセス優先度を「低」にする）
・ビルドにVisual C++ 2008 SP1を使用。
　動的リンクにしているため、ランタイムライブラリが必要。
http://www.microsoft.com/Downloads/details.aspx?displaylang=ja&FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2

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

○履歴
2009/07/07  mod 10k6 + BM
・バックグラウンドモードを追加

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

BonTsDemux mod 10k6 (modified by bm)

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

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

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

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

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

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

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

・入力TSファイルを複数選択できるように変更。

・デフォルトの出力フォルダを指定できるように変更。
  デフォルト出力フォルダの欄が空でなければ、TSファイルを選択したときやD&Dした
  ときに、出力フォルダが指定したフォルダになる。
  空であれば、今まで通りTSファイルがあるフォルダが出力フォルダとなる。

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


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

○履歴
2009/04/29  mod 10k6
・ffmpeg起動時にハンドルリークしていたのを修正。
・ffmpeg起動時の作業バッファサイズ修正。（MAX_PATHの値は256ではない。）
・ffmpeg使用時にバッファオーバーランで落ちる場合があったのを修正。
  MFCをダイナミックリンクしているときは発現していなかった模様。(HttpSend.cpp)
・スレッドの起動に _beginthread() は使わないように修正。
・PSP用の設定が間違っていたらしいので修正。（動作未確認）
・入力TSファイルを複数選択できるように変更。
・デフォルトの出力フォルダを指定できるように変更。
（・Windows Driver Kitを使うことで、VC++ 6.0ランタイムのみで動作する実行
  ファイルを作ろうとしたが、SSE2を使っている関係でVistaでしか動作しない
  ものができたため断念。ビルド用の設定ファイルは同梱。）

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 ・初回リリース
