2.TVTest0.9.0+xtne6f版EDCB編 - TS抜き環境構築

DTV記事一覧
1.予備知識、ハードウェア、ドライバ編
TS抜きとは何か、何が必要なのか、共通の項目。
2'.TVTest0.7.23+EDCB人柱版10.66編
・(非推奨)取り敢えず視聴、録画が出来る環境を構築する。
2.TVTest0.9.0+xtne6f版EDCB編
・(推奨)安定して視聴、録画が出来る環境を構築する。
2018年4月~BSトラポン移動によるTVTest、EDCBのバイナリ変更点
3.xtne6f EDCB-Work-Plus-sでTwitter連携編
Twitter連携はRubyTwitter API Gemを使用する。
4.FFmpeg自動エンコード+Googleフォトに無限保存編
・バッチ又はPowerShellからFFmpegで綺麗にエンコードし、Backup and Syncでアップロードする。
・音ズレさせない正しい処理や、ファイルの自動削除機能等も備えているため、完全放置が可能。
更新情報
2017/4
・~~tvtestビルド時にbaseclassesを足す行程が不要~~
・TVTestの設定
・B25.tvcasのビルド行程でスクランブル解除出来ないのを修正
・EpgDataCap_Bonのチャンネルスキャン時の行程が古かった
・edcbとtvtestの関連付けを行う
リモートデスクトップ
2017/5
・TVTestVideoDecoderの設定を変更
・EdcbPlugIn周りの設定を整理
・指定サービスのみ録画するように設定
2017/6
・字幕プラグインと再生プラグインの説明を修正
・TVTestのトラブルシューティングの項を追加
・ロゴデータの取得方法について追記
・baseclasses必要でした
2017/10
トラブルシューティングの項を追加
・ChSetファイルについて追記
・EpgTimerSrvの設定に追記
2017/10
・0.10.0ではなく0.9.0へのリンクに修正orz
2018/1
・Casprocessor.rcの修正箇所のダブルクオーテーションが全角になっていたのを修正
・ch2chset.vbsの使い方を修正
2018/2
・EDCBの使い方の項を整理
・設定の手順を追記修正
2018/3
・EDCB_Material_WebUIの導入方法、lfs.dllのビルド方法について記述
・HttpPublic.iniの設定について記述
・lua52.dllバイナリ入手方法を追加
2018/3
・EpgTimerSrvのサービス登録について追記
2018/4
・B25Decoder.dll(libaribb25)ビルド手順を追加
2018/5
・ランタイムは古いものから当てる
トラブルシューティングに追記
2018/7
・PX-Q3PE4を導入したので、凡iniや電源オプションについてトラブルシューティングに追記
2018/8
・EpgTimerSrvにLua5.2を組み込みビルドすることでlua52、lfsの個別ビルドが不要になった
・EDCBのビルド手順に追記
トラブルシューティングに追記
・B25Decorder.dllはEpgTimer+EpgDataCap_Bonで外付けカードリーダだけでなくIT35系の内蔵カードリーダを使う場合にも必要

EDCBで予約録画する環境には大きく分けて2種類あります。お好きな方をお選び下さい。
1.EpgDataCap_Bon+EpgTimerSrv
・一般的な方法。
・libaribb25がB25Decoder互換になったため、全てのソースがGithubで手に入る状態になった外付けカードリーダを使用する場合は、Githubにソースが無いB25Decoder.dllが必要となる
2.TVTest+EpgTimerSrv
・全てのソースがGithubで手に入る。
・EdcbPlugInを使用してTVTestと連携するため、EpgDataCap_Bonが必要ない。
・EpgDataCap_BonよりCPU負荷が大きい。

必要なランタイムを入れる

Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x86)
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x64)
Visual C++ 2015 再頒布可能パッケージ Update 3
Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージ(VS2017でビルドしたものを別の環境で使う場合)の下の方で展開すると出て来る
Microsoft .NET Framework 4 (スタンドアロンのインストーラー)

OSのユーザー名は半角英数字でないとエラーが出る場合があります。
当たらない場合は新しいものをアンインストールして古いものから順番に当てる。
32bit環境では(x64)は不要、64bit環境では(x86)(x64)両方必要。
余計な言語パックを入れても支障はない。

Visual Studio Community 2017(コンパイラ)を入れる

1.https://www.visualstudio.com/ja/downloads/からインストーラをDL。
2.ワークロードタブでC++によるデスクトップ開発と.NETデスクトップ開発にチェック、個別のコンポーネントWindows8.1 SDKとWindows10 SDK(最新)にチェックしてインストール。
※ここでチェックし忘れても、ツール->ツールと機能を取得から追加インストールできる。

TVTest

以下を参考にバイナリを配置して下さい。設定後に現れるファイルもある。
TVTestとEDCB並びに各ドライバ、プラグインは必ず32bitか64bitどちらかに揃えて下さい(ffmpeg等は外部ツールなので混在していてもおk)。32bitの方がバイナリを揃えやすいと思います。
拡張子にx64が含まれる場合はその部分を消して正しい拡張子に修正して使用してください。

TVTest  
┣Plugins  
┃  ┃(TVTest-0.X.0\sdk\Samples\Win32/x64\Release)  
┃  ┣*.tvtp  
┃  ┃(TVCaptionMod2-XX)  
┃  ┣TVCaptionMod2.tvtp  
┃  ┃(TvtPlayXX\plus)  
┃  ┣TvtPlay.tvtp
┃  ┃(NicoJK-dev-bin)
┃  ┣NicoJK.tvtp
┃  ┣NicoJK.ini
┃  ┃(EDCB-work-plus-s-bin\EdcbPlugIn)(TVTest+EpgTimerの場合のみ)  
┃  ┣EdcbPlugIn.tvtp  
┃  ┣EdcbPlugIn.ini
┃  ┃(CasProcessor-master\Win32/x64\Release)(外付けカードリーダを使う場合のみ)  
┃  ┗CasProcessor.tvtp  
┣Themes  
┃  ┃(TVTest-0.X.0\data\Themes)  
┃  ┗*.httheme  
┃(TVTest-0.X.0\src\Win32/x64\Release)  
┣TVTest.exe  
┣TVTest_Image.dll  
┃(TVTestVideoDecoder_0.X.0\src\Win32/x64\Release)  
┣TVTestVideoDecoder.ax  
┃(BonDriver_BDA-XXXX-XX-XX\x86/x64_通常版/ランタイム内蔵版)
┣BonDriver_PlexPX(IT35)_S.dll  
┣BonDriver_PlexPX(IT35)_S.ini  
┣BonDriver_PlexPX(IT35)_T.dll  
┣BonDriver_PlexPX(IT35)_T.ini  
┃(BDASpecial-PlexPX/IT35-XXXX-XX-XX\x86/x64_通常版/ランタイム内蔵版)
┣PlexPX(IT35).dll
┃(TvtPlayXX)
┣BonDriver_Pipe.dll  
┣TvtAudioStretchFilter.ax  
┃(sqlite.org)(NicoJK用)  
┣sqlite3.exe  
┃(EDCB-work-plus-s-bin\EdcbPlugIn)(TVTest+EpgTimerの場合のみ)   
┣Write_Multi.dll    
┣Write_OneService.dll  
┃(BDASpecial-IT35-XXXX-XX-XX)(IT35系で内蔵カードリーダを使用する場合のみ)
┣WinSCard.dll
┣WinSCard.ini
┃(TvCas-master\x86/x64)(外付けカードリーダを使う場合のみ)  
┗B25.tvcas  

baseclasses入手

1.https://www.microsoft.com/en-us/download/details.aspx?id=8442 からGRMSDK_EN_DVD.iso(x86でおk)をDL
2.7-zip等で解凍しWinSDKSamplesフォルダを入手(他は不要)
3.C:\hoge\baseclasses\WinSDKSamples のように設置(パスは自由)
4.C:\hoge\baseclasses\export のようにフォルダを作る(パスは自由)
5.以下コマンドを管理者で実行(batファイルとして残しておくと良い)

cd C:\3.のパス\baseclasses\WinSDKSamples  
start /wait msiexec.exe /a WinSDKSamples_x86.msi targetdir="C:\4.のパス\baseclasses\export"  

6.C:\hoge\baseclasses\export\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclassesを入手し(他は不要)、↓の3.へ

TVTest0.9.0正式版(視聴・録画モジュール)ビルド手順

1.https://github.com/DBCTRADO/TVTest/releases から0.9.0のZipでソースを入手
2.TVTest-0.9.0.zipを解凍
3.↑の6.から(WinSDK v7.1の)BaseClasses/*.cpp,*.hTVTest-master/src/BaseClassesにコピー
4.TVTest-master\src\DirectShowFilter\EVRCustomPresenter\EVRPresenterBase.hの18行目辺り3つとも_vistaを削除して保存

#pragma comment(lib, "evr.lib")
#pragma comment(lib, "mf.lib")
#pragma comment(lib, "mfplata.lib")

5.TVTest-master\src\TVTest_All.VS2013.slnをVS2017で開く
6.上のDebugをRelease、Win32かx64を選択
7.右のソリューション'TVTest_All.VS2013'右クリでソリューションの再ターゲット
8.上のビルドからソリューションのビルド
========== ビルド: 10 正常終了,0 失敗,0 更新不要,0 スキップ ==========になればおk
C:\DTV\TVTest-master\sdk\Samples\Samples.VS2013.slnも同様にビルド
========== ビルド: 15 正常終了,0 失敗,0 更新不要,0 スキップ ==========になればおk

CasProcessor.tvtp(CAS処理)ビルド手順(外付けカードリーダを使う方のみ)

1.https://github.com/dtvgit/CasProcessor からソースを入手
1'.https://github.com/logue/CasProcessor は4.が修正されてるみたい?
2.CasProcessor.zipを解凍
3.TVTest-master/srcから以下の2ファイルを上書き
・TVTestPlugin.h
・TVTestInterface.h
4.CasProcessor.cppの2170行目をInfo.ConnectPosition = TVTest::TS_PROCESSOR_CONNECT_POSITION_POSTPROCESSING;に修正
5.CasProcessor.rc 11~13行目修正
AUTOCHECKBOX "EMM処理を行う(&M)",IDC_PROPERTIES_ENABLEEMMPROCESS,8,20,80,9
RTEXT "使用する拡張命令(&E):",IDC_PROPERTIES_INSTRUCTION_LABEL,8,38,72,8
6.CasProcessor.slnをVS2017で開く→Release、Win32かx64を選択→ソリューションの再ターゲット→ソリューションのビルド

B25.tvcas(B25処理)ビルド手順(外付けカードリーダを使う方のみ)

※地デジ,BS/CS用.スカパープレミアムにはB1.tvcasが必要?
1.https://github.com/logue/TvCas からソースを入手
2.TvCas-master.zipを解凍
3.TvCas.slnをVS2017で開く
4.上のDebugをRelease、x86かx64を選択
5.右のソリューションエクスプローラのTvCasを右クリ→プロパティ→リンカー→インプット(入力)→モジュールデフィニション(定義)ファイルにTVCAS_B25.defを追加
6.ソリューションの再ターゲット→ソリューションのビルド

TVTestVideoDecoder(MPEG2デコーダ)

Microsoft DTV-DVD Video Decoderは8から有料化、DScalaerが0.9.0には非対応のため、これを使います。一時停止時にキャプれるのが便利。残像がすごいから嫌ってる人は設定をミスってるcf.
(つい最近出たのか、ストアアプリから入れられるMS公式の無料のMPEG2デコーダはサムネ表示くらいしか出来なかった)
https://github.com/DBCTRADO/TVTestVideoDecoder/releases からバイナリを入手
TVTestVideoDecoder_0.3.0.7zを解凍

TvtPlay(再生プラグイン)

録画したtsファイルを再生する時に早送りしたりするためのプラグインです。
1.https://github.com/xtne6f/TvtPlay からバイナリを入手
2.regsvr32 "C:\TvtAudioStretchFilter.axのパス"を管理者で実行
3.成功しましたと出たらおk
TVTest側の設定でどうにかなったhttps://github.com/xtne6f/TvtPlay/tree/work-plus からソースを入手してVS2015でビルドして"\TvtPlay-work-plus\src\Release\TvtPlay.tvtp"と↑のバイナリを入れ替えると全画面表示や独自タイトルバーを使用しない場合にスマートになる。

TVCaptionMod2(字幕プラグイン)

字幕を観ないのなら入れなくて構いません。TVCaption、TVSubtitleと試しましたが一番フォントレンダリングが綺麗なTVCaptionMod2が今のところおすすめです。
https://github.com/xtne6f/TVCaptionMod2

NikoJK-dev(ニコニコ実況プラグイン)

xtne6f版非公式フォークはTVTest0.9.0の機能に対応している。
https://github.com/xtne6f/NicoJK/releases
コメントする場合は"sqlite3.exe"が必要なのでhttp://www.sqlite.org/download.htmlの「Precompiled Binaries for Windows」から"sqlite-tools-win32-x86-{数字}.zip"をダウンロード。

TVTestの設定

TVTestでもEDCBのEPGデータを使用したりするので,先にEDCBから設定すると良い。
言われたとおりに進むとチャンネルスキャンをしてくれると思います。
最低限やっておくべきものだけ書きます.どんな項目があるのかざっと確認して好みの設定に変えて下さい。

一般

・デフォルトのBonDriver:指定したBonDriverを選択し,BonDriver_Pipe.dllを選択しておくと、上記エラーが出ることがないので便利。

表示

・最小化時タスクトレイに入れるにチェック(EDCBで使う場合、PC使用中で録画開始時にアクティブウィンドウになってしまうと厄介なので)
・抑止:3つともチェックしておくと視聴時にイラつかない

ステータスバー

・TvtPlayステータスバーにチェック(PlusのTvtPlay.tvtpの場合)

キー割り当て

・ チューナー選択や字幕プラグインのONOFF、キャプチャ又は字幕付き画像の保存、TvtPlayの早送り(後述)などにショートカットキーを設定しておくと便利。

映像

MPEG-2デコーダ:TVTest DTV Video Decoder
・映像レンダラ:EVR
※TVTest本体右クリックでフィルタのプロパティ→映像デコーダ(再生中に設定できる)
以下を設定後、動きのあるシーン等で残像感や縞模様が無いことを確認してください。
DXVA2によるデコードを有効にする:お好みに。ハードウェアのデコードは字幕プラグインの合成機能と相性が悪いのでちらつく場合はチェックを外す。(要再起動)
インスタレース解除(非DXVA時):インターレース解除を行わない
インターレースフラグを設定する:外しといていいと思う

音声

・音声フィルタ:TvtAudioStretchFilter(TvtPlayの早送りなどに対応させるため)

録画

・保存先フォルダ:…をを押してお好みに設定してください(私の場合はユーザーのビデオフォルダ)
・ファイル名マクロ:▼を押してお好みに設定してください
・現在のサービスのみ保存する:チェックを外す
・字幕データを保存する:必要な場合はチェック(自動エンコして生tsを観ない場合チェックを外す)。今回は録画にtvtestを使うのでこの設定がEDCBの録画結果に反映される。
・データ放送を保存する:チェックを外した方が良い
・(EDCBで使う場合)保存プラグイン:Write_multi.dll、設定:SETセクションでWritePlugin=Write_OneService.dll

キャプチャ

・保存先フォルダ:…をを押してお好みに設定してください(私の場合はユーザーのピクチャフォルダのTVTestフォルダ)
・ファイル名マクロ:▼を押してお好みに設定してください
・大きさは表示されている大きさに設定(元の大きさだと例えば50%で表示中にキャプった時に1920x1080に引き伸ばされて保存されてしまう)
・保存形式:JPEGじゃないとパンクしますが画質に拘るのならPNGにしておくと良いでしょう。
※キーが割当されていれば長押しで連写出来たり、プラグインでaviutlと連携して綺麗にキャプれたりするが、私は番組を落ち着いて観たいのでffmpegで全編切り出しているcf.

チャンネルスキャン

自動でチャンネルスキャンされなかった場合は手動で行ってください。S(BS/CS)とT(地デジ)1つづつスキャンすれば全てのチューナーに反映されます。

EPG/番組情報

EPG情報をファイルに保存する:チェックを外す(EDCBで使う場合)
・EpgDataCap_BonのEPGデータを利用する:チェックを付ける(EDCBで使う場合)
EPGデータのフォルダ:EDCBフォルダ\Setting\EpgDataに指定(EDCBで使う場合これによりTVTest側のEPG取得が不要になる)
・ロゴデータをファイルに保存する:チェックするとチャンネル切り替え時等に表示されるロゴデータを入手できる。地デジは各チャンネルごとに切り替えて、BS/CSはBS1にして放置すると取得できる。
BMP形式のロゴを保存する場合はロゴデータをファイルに保存するのチェックを外しておくこと(生データ形式ARIB-PNG形式なので互換性がありません)。

プラグイン

TVCaptionMod2.tvtpの設定

映像への字幕合成機能を使う:チェック(要再起動)
外字テーブル名:WindowsTV丸ゴシックを使う場合は!typebankcf.
描画方式:3-映像と合成(これでTVTest本体のキャプチャ機能でキャプれる)

TvtPlayの設定

TVTestのPluginsフォルダのTvtPlay.iniをテキストエディタ等で開き、readmeを参考にシークや早送り再生を自分好みに編集。8倍速まで可能(宇宙人向け)。
TsTryGaplessPause=1ギャップなしで一時停止、再生する
RaiseMainThreadPriority=1早送り時にdropがあった際応答しなくなるのを回避
↓以下を参考にしてみると便利

SeekItemOrder=99
StatusItemOrder=99
IconImage=
SeekA=-60000
SeekB=-30000
SeekC=-15000
SeekD=-5000
SeekE=4000
SeekF=14000
SeekG=29000
SeekH=59000
StretchA=100
StretchB=120 
StretchC=150 
StretchD=200 
StretchE=50 
; ボタン0の位置にボタンデザイン0を表示させ,ファイルを開く動作を指定
Button00=0,Open
; ボタン4の位置に"-60"と表示させ,シークAを指定
Button04='-'6'0,SeekA
Button05=;'-'3'0,SeekB
Button06='-'1'5,SeekC
Button07='-' '5,SeekD
Button08=6,Pause
Button09='+' '5,SeekE
Button10='+'1'5,SeekF
Button11=;'+'3'0,SeekG
Button12='+'6'0,SeekH
Button13=
Button14=
; ボタン15の位置にボタンデザイン16,右クリで等倍速,左クリで倍速一覧(%)がポップアップ
Button15=16,StretchZ,StretchPopup

https://github.com/xtne6f/TvtPlay/blob/work/src/Buttons.bmpにボタンデザインの一覧がある。

NicoJK-devの設定

timerInterval=-1000060fpsで弾幕を流す
※コメントする場合
1.FirefoxまたはGoogleChromehttp://jk.nicovideo.jp/ にアクセスして各自のアカウントでログイン
2.NicoJK.iniのexecGetCookieにブラウザのプロファイルフォルダを設定

execGetCookie="sqlite3.exe "C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Default\Cookies" …

プロファイルフォルダの場所は「firefox cookies.sqlite」「chrome cookie 保存場所」などのキーワードでググって見つけてください。正しく設定できていればTVTestのパネルウィンドウにコメント投稿欄が現れる。

TSプロセッサー(外付けカードリーダを使う方のみ)

・TSプロセッサー:CasProcessor
・デフォルトモジュール:B25.tvcas
・デフォルトデバイス:SmartCard
・デフォルトフィルター:ICカードリーダ名(私の場合ACS ACR39U ICC Reader 0)

TVTest.exeをタスクバーに登録

1.TVTestを起動しタスクバーにピン留めする
2.%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\に移動
3.TVTestのショートカットのプロパティを開き,リンク先に/tvtplay引数を追加

ダブルクリックでtsファイルやmp4を再生(TvTest)

1.tsファイルをプログラムから開く→その他のアプリ→Tvtest.exeで関連付ける
2.レジストリエディタでHKEY_CURRENT_USER\Software\Classes\Applications\TvTest.exe\shell\open\command(ユーザが"プログラムから開く"で指定したTvTest.exeの起動引数)にアクセス
3."C:\TVTest.exeのパス" /nd /d BonDriver_Pipe.dll "%1"に変更
/ndでTSプロセッサーを無効(録画時にスクランブル解除は済んでる為。/ndが有効かどうかは外付けカードリーダのアクセスランプで分かる。)、/d bondriverの名前でbondriverを指定、%1にファイルパスが補完される。
※追っかけ再生もできるよ。
※因みに拡張子.mp4も再生できるよ。
ffplayで再生するcf.

EDCB

以下を参考にバイナリを配置して下さい。設定後に現れるファイルもある。
TVTestとEDCB並びに各ドライバ、プラグインは必ず32bitか64bitどちらかに揃えて下さい(ffmpeg等は外部ツールなので混在していてもおk)。32bitの方がバイナリを揃えやすいと思います。
拡張子にx64が含まれる場合はその部分を消して正しい拡張子に修正して使用してください。

EDCB  
┣BonDriver  
┃  ┃(BonDriver_BDA-XXXX-XX-XX\x86/x64_通常版/ランタイム内蔵版)
┃  ┣BonDriver_PlexPX(IT35)_S.dll  
┃  ┣BonDriver_PlexPX(IT35)_S.ini  
┃  ┣BonDriver_PlexPX(IT35)_T.dll  
┃  ┣BonDriver_PlexPX(IT35)_T.ini  
┃  ┃(BDASpecial-PlexPX/IT35-XXXX-XX-XX\x86/x64_通常版/ランタイム内蔵版)
┃  ┗PlexPX(IT35).dll
┣RecName
┃  ┃(EDCB-work-plus-s-XXXXXX\x86/x64\Release\RecName)
┃  ┣RecName_Macro.dll
┃  ┗RecName_Macro.ini(マクロ設定時に自動生成)
┣Setting  
┃  ┃(EpgDataCap_BonでEPG取得後自動生成/EDCB-work-plus-s-bin\EdcbPlugIn\ch2chset.vbsにTVTestのch2ファイルをD&Dで生成)
┃  ┣BonDriver_PlexPX_S().ChSet4.txt
┃  ┣BonDriver_PlexPX_T().ChSet4.txt
┃  ┣ChSet5.txt
┃  ┃(設定後等に自動生成)
┃  ┣EpgAutoAdd.txt(自動予約登録)  
┃  ┣RecInfo.txt
┃  ┣RecInfo2.txt
┃  ┣Reserve.txt(予約一覧)
┃  ┗EpgData
┃     ┗*_epg.dat
┣Write
┃  ┃(EDCB-work-plus-s-XXXXXX\x86/x64\Release\Write)
┃  ┣Write_Default.dll  
┃  ┗Write_OneService.dll  
┃(libaribb25-master\Win32/x64\Release\libaribb25.dllをリネーム)
┣B25Decorder.dll(EpgTimer+EpgDataCap_Bonで外付けカードリーダ又はIT35系の内蔵カードリーダを使う場合のみ)
┃(BDASpecial-IT35-XXXX-XX-XX)(IT35系で内蔵カードリーダを使用する場合のみ)
┣WinSCard.dll
┣WinSCard.ini
┃(EDCB-work-plus-s-XXXXXX\x86/x64\Release)  
┣EdcbPlugIn.tvtp
┣common.ini(自動生成)
┣EpgDataCap_Bon.exe  
┣EpgTimer.exe  
┣EpgTimerSrv.exe  
┣EpgDataCap3.dll  
┃(自動ツイート:第3回)  
┣PostRecStart.ps1
┣cacert.pem
┣tweet.rb
┃(自動エンコ:第4回)  
┗PostRecEnd.ps1(ファイル名によって挙動が異なるので注意)

xtne6f EDCB-work-plus-sビルド手順

1.https://github.com/xtne6f/EDCB/releases からSource code (zip)を入手、EDCB-work-plus-s.zipを解凍。
※TVTest+EpgTimer運用の場合は次項のビルド済みバイナリで足ります(EpgDataCap_Bonは自ビルド必須)が、readme等が必要なのでせめてDLして解凍だけはしておきましょう。
3.DocumentフォルダのEDCB_ALL.VS2015.slnをVS2017で開く
4.上のDebugをRelease、Win32かx64を選択
5.右のWrite_AVIVOを右クリで削除
6.ソリューション'EDCB_ALL.VS2015.sln'を右クリ→ソリューションの再ターゲット(この時SDKのバージョンを記録しておく)
7.ソリューション'EDCB_ALL.VS2015.sln'に連なる各プロジェクトのプロパティ内のSDKのバージョンが8.1とかではなく↑で記録したもの(10.0.15063.0等)になっているか確認。手動で書き換えても良いが、どうやらプロパティを開くまくったり時間を置いたり再ターゲットを繰り返したりすると各プロジェクトに行き渡るっぽい(バグかな)。再ターゲットの終了: 完了 10,失敗 0,スキップ 0になればおk。
8.上のビルドからソリューションのビルド。ビルド: 11 正常終了,0 失敗,0 更新不要,0 スキップ ==========になればおk。
VS2017でctype.hが見つかりませんエラーの場合はツール->ツールと機能を取得からWindows Universal CRT SDKを追加インストールする。
※EpgTimerのプロジェクトのプロパティのリソースにEDCBのアイコンがある。

EDCB-work-plus-sバイナリ入手

※TVTest+EpgTimerの場合のみ
※TVTestのチャンネルスキャン情報をEDCB用に変換するch2chset.vbs、TVTestとEDCBの連携用EdcbPlugIn.ini、Write_Multi.dll、Write_OneService.dll等が入っている。
https://github.com/xtne6f/EDCB/releases からEDCB-work-plus-s-bin.zipを入手して解凍

B25Decoder.dll(libaribb25)ビルド手順

※EpgDataCap_Bon+EpgTimerで外付けカードリーダ又はIT35系の内蔵カードリーダを使う場合のみ
1.https://github.com/epgdatacapbon/libaribb25 からClone for download->Download ZIPでソースを入手。
2.libaribb25-master.zipを解凍。
3.arib_std_b25.slnをVS2017で開く
4.上のDebugをRelease、Win32かx64を選択
5.ソリューション'arib_std_b25.sln'を右クリ->ソリューションの再ターゲット
6.上のビルドからソリューションのビルド。ビルド: 2 正常終了,0 失敗,0 更新不要,0 スキップ ==========になればおk。 7.libaribb25.dllB25Decoder.dllにリネームします(又はBonCtrl.iniを修正)。

チャンネル設定

TVTest+EpgTimerの場合

1.EDCB-work-plus-s-binのch2chset.vbsにTVTestフォルダのBonDriver_PlexPX_S.ch2、BonDriver_PlexPX_T.ch2を同時にD&Dして3つのファイルを生成。
EDCBのSettingフォルダに設置。
・BonDriver_PlexPX_S.ChSet4.txt:BS/CS
・BonDriver_PlexPX_T.ChSet4.txt:地デジ
・ChSet5.txt:S.ChSet4 + T.ChSet4
2.EdcbPlugIn.iniを開き、以下のように指定(ただでさえファイルサイズの大きい生tsが更に肥大するので指定サービス(SID)録画をする)

EdcbFolderPath="C:\EDCBフォルダのパス"
RecNamePrefix=#$SID16$#

EpgDataCap_Bon+EpgTimerの場合

1.EpgDataCap_Bon.exeを2つ起動。
2.それぞれS、Tを選択しチャンネルスキャンをする。外付けカードリーダを使う場合Scrambleの値が増えていくがチャンネルスキャンには影響はない。時間がかかるのでその間にPC内のいかがわしい画像等を整理しましょう。
3.終わったら目的のチャンネルが表示されていることを確認し閉じる
BS1BSプレミアム等が検出できない場合は、BonCtrl.iniのChChgTimeOut ServiceChkTimeOutでそれぞれの値を15~20程度に変更して再度スキャン。(チャンネルスキャンのタイムアウト値を大きくする)(人柱版10.61.1以降)

ChSet4.txt、ChSet5.txtを編集

ChSetファイルでマルチ編成(連番や同じ名前)になってるものを整理する。
以下のように一番上を残して削除したり、絶対に観ないチャンネルや契約していないチャンネルを削除すると良い。

NHKBS1   NHKBS1  4   16625   101 1   0   1   1
NHKBSプレミアム  NHKBSプレミアム  4   16626   103 1   0   1   1
BS日テレ BS日テレ 4   16592   141 1   0   1   1
BS朝日1 BS朝日1 4   16400   151 1   0   1   1
BS-TBS  BS-TBS  4   16401   161 1   0   1   1
BSジャパン  BSジャパン  4   16433   171 1   0   1   1
BSフジ・181    BSフジ・181    4   16593   181 1   0   1   1
BS11イレブン    BS11イレブン    4   16528   211 1   0   1   1
BS12トゥエルビ BS12トゥエルビ 4   16530   222 1   0   1   1
放送大学BS1   放送大学BS1   4   18098   231 1   0   1   1
放送大学BS2   放送大学BS2   4   18098   232 1   0   1   1
放送大学BS3   放送大学BS3   4   18098   233 1   0   1   1
放送大学ラジオ   放送大学ラジオ   4   18098   531 2   0   1   1
NHK総合1・東京 NHK総合1・東京 32736   32736   1024    1   0   1   1
NHK総合2・東京 NHK総合2・東京 32736   32736   1025    1   0   1   1
NHKEテレ1東京 NHKEテレ1東京 32737   32737   1032    1   0   1   1
NHKEテレ2東京 NHKEテレ2東京 32737   32737   1033    1   0   1   1
NHKEテレ3東京 NHKEテレ3東京 32737   32737   1034    1   0   1   1
tvk1    tvk1    32375   32375   24632   1   0   1   1
チバテレ1 チバテレ1 32327   32327   27704   1   0   1   1
日テレ1    日テレ1    32738   32738   1040    1   0   1   1
テレビ朝日 テレビ朝日 32741   32741   1064    1   0   1   1
TBS1    TBS1    32739   32739   1048    1   0   1   1
テレビ東京1  テレビ東京1  32742   32742   1072    1   0   1   1
フジテレビ フジテレビ 32740   32740   1056    1   0   1   1
TOKYO MX1 TOKYO MX1 32391   32391   23608   1   0   1   1
TOKYO MX2 TOKYO MX2 32391   32391   23610   1   0   1   1
J:COMテレビ    J:COMテレビ    32397   32397   23656   1   0   1   1
J:COMチャンネル  J:COMチャンネル  32351   32351   26744   1   0   1   1
放送大学1 放送大学1 32744   32744   1088    1   0   1   1
放送大学2 放送大学2 32744   32744   1089    1   0   1   1
放送大学3 放送大学3 32744   32744   1090    1   0   1   1

EpgDataCap_Bon.exeの設定(EpgDataCap_Bon+EpgTimerの場合のみ)

1.EpgDataCap_Bon.exeを2つ起動。
2.それぞれS、Tを選択しチャンネルスキャンをする。
3.終わったら目的のチャンネルが表示されていることを確認し閉じる。
BS1BSプレミアム等が検出できない場合は,BonCtrl.iniのChChgTimeOut ServiceChkTimeOutでそれぞれの値を15~20程度に変更(タイムアウト値を大きくする)して再度スキャン。
4.再度EpgDataCap_Bon.exeを起動し設定を開く
5.基本設定
・保存フォルダ:指定
6.動作設定
スクランブル解除処理を行う:チェック
EMM処理を行う:有料放送を契約している方はチェック
録画時、字幕データを含める:お好みで
最小化時タスクトレイに入れる:チェック(しないと録画時に毎回現れて邪魔)
7.EPG取得設定、サービス表示設定
EPG取得サービス:(ChSet4、ChSet5.txtが編集済みであれば不要)マルチ編成(連番や同じ名前)になってるものは一番上を残して削除、絶対に観ないチャンネルや契約していないチャンネルを削除
8.ネットワーク設定
UDP送信などは使い勝手が悪いのでパス。追っかけ再生などはTVTestから直接ファイルを開きtvtplayを使うと良い。

EpgTimerSrv設定

EpgTimer.exeを起動→設定ボタン→EpgTimerSrv設定
※これらの設定を終えてから、EPG取得を行って下さい。
※初期設定に限らず、設定変更後は一度終了してからexeを再起動してください。

基本設定

・録画用アプリのexe:TVTest.exeのパス(TVTest+EpgTimer)又はEpgDataCap_Bon.exeのパス(EpgDataCap_Bon+EpgTimer)を指定
コマンドライン引数:(TVTest+EpgTimerのみ)最小化-tray(タスクトレイに格納された状態で起動)、非視聴時-nodshow(DirectShowを初期化しない、結果的に再生オフ)
・録画保存フォルダを指定。私はC:\DTV\tsにしている。
・録画情報保存フォルダを録画フォルダと別にしたい場合は指定。後述の自動エンコバッチを使用する場合は指定しない。
・BonDriver:SとTそれぞれチューナー数をW3PEなら2、Q3PEなら4に指定
EPG取得に使用するチューナ数:特に拘りが無ければすべて

EPG取得

EPG取得開始時間:録画に重ならない好きな時間を最低でも1日1回は指定。私は3,9,15,21時を指定しているが、日付を跨いで取得するのはオススメしない。
・基本情報のみ取得するネットワーク:1日に1度はBS等の詳細情報を得るため、私は9時は詳,詳,詳,詳にしている。
・条件:2つとも0分(出来るだけ延長とかに対応するため)

録画動作

・録画、EPG取得終了後のデフォルト動作:頻繁に録画、自動エンコ、外出先からアクセス等の用途がある場合は何もしない、何もしない場合はスタンバイ
・録画後動作の抑制条件:指定プロセスは何も指定しない。0分以内に予約がある場合。(自動エンコを録画中も実行して詰まらせないため)
・ドロップログ:お好みで。問題解決の参考になるかも?
・番組情報:後述の自動エンコバッチを使用する場合はチェック
・録画マージンのデフォルト:弄らないで良いでしょう(私の環境では前後共0で大丈夫だった)
・プロセス優先度:通常以上又は心配なら高に設定(リアルタイムはX)。

予約情報管理

録画時のファイル名にPluginを使用する:チェック
設定:因みに↓はZtoHで半角に、Head10$SubTitle2$が意図しないものになった場合ファイル名が長くなり過ぎるのを防いでいる。cf.

$SDYY$$SDMM$$SDDD$_$ZtoH(Title)$$Head10~(ZtoH(SubTitle2))$.ts

その他

EPG取得後も番組情報を1日前まで保存する(結構便利)
・ボタン表示
タブの位置に表示:チェック(よりスマートになる)

EpgTimerの設定

どんな項目があるのかざっと確認して好みの設定に変えて下さい。
人柱版10.66等とは少々設定GUIが違いますが、分かりやすくなっていると思う。

動作設定

・検索条件のデフォルト値を設定:番組検索をする際の既定値になる。番組名のみ検索対象にする、映像のみ等にチェックを入れておくと便利だ。
EPG取得対象サービスのみ表示:チェック
・スタートアップにEpgTimer.exeのショートカットを作成(スタートアップで起動し常駐していないと録画できません)
・テーマを適用する:チェックを外す(軽くなる)

番組表

基本:グラデーション表示を行う:2つともチェックを外す(軽くなる)
表示項目:カスタマイズできる。

外部アプリケーション

・TVTestのパスを通しておく。ffplayでも良い。

EDCBの自動起動

PCを再起動した時に自動で起動するように設定する。EpgTimerSrvを直接サービス登録するか、EpgTimerをスタートアップに登録する。

EpgTimerSrvをサービス登録

※QSV自動エンコする場合はサービスでは動きません。
通常はEpgTimer.exeを起動と同時にバックグラウンドで動くEpgTimerSrv.exeだが、EpgTimerSrv.exeをサービス登録をすることによりユーザがログオンしていなくても録画やバッチを実行できる。
このとき、EpgTimer.exe、TVTest.exeのGUIは表示されず(タスクマネージャ参照)、予約等の操作を行う場合はEpgTimer.exeを起動する(終了してもサービスは動き続けます)(EMWUIでも良い)。
EpgTimerSrv_Install.bat、EpgTimerSrv_Remove.batをEpgTimerSrv.exeと同じディレクトリに置く。
サービス登録と開始:EpgTimerSrv_Install.batを管理者権限で実行し、ログオンアカウントを選択:では2=LocalServiceを選択する(EpgTimerを既に起動している場合は終了してから行うこと)。
サービス停止と解除:EpgTimerSrv_Remove.batを管理者権限で実行。

EpgTimerをスタートアップに登録

この場合、スタートアップにEpgTimer.exeのショートカットを作成しておく必要がある。
また、再起動時にユーザのパスワード入力が無くとも自動で起動するように設定する。
(1.(停電対策)BIOSでAC電源喪失から電源復帰した後自動で起動するように設定。)
2.(停電復帰時の自動ログイン)Win+R→netplwizと入力→ユーザーがこのコンピューターを使うには、ユーザー名とパスワードの入力が必要のチェックを外す。
3.(自動ログイン時のセキュリティ確保のためスタートアップで自動ロックさせる)スタートアップC:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startuprundll32 user32.dll,LockWorkStationのショートカットを作成。
こんなのでも良い。この場合はスタートアップにEpgTimer.exeのショートカットは不要。
スタートアップではなく、タスクスケジューラの"ログイン時"に登録すると早く実行してくれる。

@echo off
title startup
rem 自分自身を最小化で子バッチとして起動し直す
if not "%STARTED%" == "1" (
    set STARTED=1
    start /min cmd /c,"%~0" %*
    exit
)

rem ロック
rundll32.exe user32.dll,LockWorkStation

rem アプリケーション
start C:\DTV\EDCB\EpgTimer.exe

rem ツイート
rem 現在の日付時刻を環境変数に設定しておく
set "mydatetime=%date% %time%"
rem 停電時を想定しVDSLやルータが再起動するまで3分間待ってやる
timeout /t 180 /nobreak
rem テキストファイルにツイートする内容を一時的に保存
set "tweet_content=%mydatetime%にOSを再起動しました"
rem SSL証明書のパス
set "ssl_cert_file=C:\DTV\EDCB\cacert.pem"
rem ツイート用rubyスクリプトを呼ぶ
ruby "C:\DTV\EDCB\tweet.rb"

再起動時にツイートするようにしてたんだけど、よく考えたら停電時はVDSLもルータも落ちるのでツイートできてなかった。バカだ…

EDCBの使い方

例1 アニメ全録

・検索キーワード:半角スペース
・番組名のみ検索対象にする
・ジャンル絞り込み:国内アニメ
・サービス絞り込み:映像サービスのみ
検索->自動予約登録条件に追加

例2 今期アニメ毎週録画

・検索キーワード:(フランキス|りゅうおうのおしごと|エヴァーガーデン|ゆるキャン|BEATLESS|ポプテピピック)
※出来るだけ記号やスペース等は避けた方が良い。
・番組名のみ検索対象にする
正規表現モードにチェック
・ジャンル絞り込み:国内アニメ
・サービス絞り込み:チャンネルをTBS、テレ東、MX
検索(余計な番組が表示されてしまう場合は、時間指定やnotキーワードで工夫する) ->自動予約登録条件に追加
※基本的に市販のレコーダーにあるような連ドラ機能はない代わりに、検索で代用します(番組名が変わるような天変地異でも起こらない限り正確です)。
※自動予約登録に番組名を1つづつ登録すると重くなるので、上記のように正規表現を使用すると良い。私は局や期間毎に分けてキーワードを登録している。
※録画後実行batを使う場合は登録忘れに注意。PostRecStart.batやPostRecEnd.batは登録に関係なく自動で実行される。
人柱版10.66ではアルファベットは全て大文字、スペースが入るものはスペースの前か後のワードで頑張らないといけなかったが、xtne6f版ではスペースや小文字が含まれていても検索できる。ただしスペースや記号が含まれる場合は上手く引っかからない場合があるので注意。
※録画モードで視聴予約を選ぶこともできる。
※今回はTVTestで録画しているので、録画中のtvtestを右クリックで再生オフを外せば見る+録画を1チューナーでできる。EpgDataCap_Bon.exeのviewよりも使いやすい。
※TVTestを使って録画すると、録画済み一覧が黄色と赤で埋め尽くされてしまう場合があるが、TVTestのTSプロセッサーを無効にした状態で正常に再生できれば問題はない。
iEPGやプログラム予約は非推奨。

EDCB_Material_WebUI

ブラウザから番組表や予約、録画結果を確認・再生したり、録画予約を行える。LAN内に開放すれば別端末(スマホ等)から操作することができる。

EDCB
┣HttpPublic
┃  ┃(EDCB_Material_WebUI-master\HttpPublic)
┃  ┣api
┃  ┗EMWUI
┣Setting  
┃  ┃(ティストエディタで作成?)
┃  ┗HttpPublic.ini
┣Tools
┃  ┃(ffmpeg-X.X.X-win32/win64-shared\bin)
┃  ┣ffmpeg.exe
┃  ┣*.dll
┃  ┃(EDCB-work-plus-s-bin\Tools)
┃  ┗readex.exe
┣EpgTimerSrv.exe(lua組み込み)
┃(x86bin:EDCB-work-plus-s-bin)(x64bin:lua-5.2.4_Win32/Win64_dll15_lib\)(src:EDCB-work-plus-s-bin\lua-zlib-0.4-src.7z)
┣lua52.dll
┃(EpgTimerSrvをlua組み込みビルドすれば不要)(x86bin:EDCB-work-plus-s-bin)(src:EDCB-work-plus-s-bin\luafilesystem-v_1_6_3-fix-src.7z)
┗lfs.dll

EDCB_Material_WebUIバイナリ入手

1.https://github.com/EMWUI/EDCB_Material_WebUI からDLして解凍。

ffmpeg.exeバイナリ入手

1.https://www.ffmpeg.org/download.html
2.自分のOSに合ったものを選ぶ。今回はWindows Buildsを選択。
3.Versionは安定版で、ArchitectureはOSに合わせて、LinkingはSharedを選択すると良い。
・Version:開発版(20170605-4705edb等)/安定版(3.4.1等)(2.x.x等のような古いffmpegには必要な機能が入っていない場合があるので注意、3.4.1で動作確認)
・Architecture:64-bit/32-bit
・Linking:Static(exe版)/Shared(DLL版)/Dev(開発ソース)
4.Download FFmpegを押下してDLして解凍。

EpgTimerSrvリビルド

EpgTimerSrvにLua5.2を組み込んでビルドができるようになった("EpgTimerSrv\EpgTimerSrv.sln"の[Release-withlua])
1.https://www.lua.org/lua-5.2.4.tar.gzのsrcフォルダの中身を"EpgTimerSrv\EpgTimerSrv\lua"に既存ファイルも含めて上書き
2.https://github.com/brimworks/lua-zlib/releases/ のv0.5.zipのlua_zlib.cを"EpgTimerSrv\EpgTimerSrv\lua"にコピー
3.https://zlib.net/ のzlib1211.zipの中身を"EpgTimerSrv\EpgTimerSrv\lua\zlib1"にコピー
4.\EpgTimerSrv\EpgTimerSrv.slnをVS2017でビルド->ソリューションのリビルド ※流れていくWarningは気にしない ※新しく出来たEpgTimerSrv.exeはファイルサイズが変わっている筈、上書きで

lua52.dllバイナリ入手

https://sourceforge.net/projects/luabinaries/files/5.2.4/Windows%20Libraries/Dynamic/
Win32/Win64はEpgTimerSrvに合わせる。
Visual C++ 2010のランタイムが入っていればdll10、VC2015ならdll14を選択。

lfs.dllのビルド

※この手順は不要になりました
\EDCB-work-plus-s-bin\lfs.dllが使用できた場合、ライブラリ機能が必要ない場合はビルドする必要なし。
Win32/x64はEpgTimerSrvに合わせる。
cf.
1.VisualStudioのファイル->新規作成->プロジェクト->Visual C++->Win32プロジェクトを選択。プロジェクト名をlfsとし、OK。
※VS2017Update3以降~ Visual C++->Windowsデスクトップ->Windowsデスクトップウィザード
3.ウィザードを進めてアプリケーションの種類をDLL、空のプロジェクトにチェック。
4.\EDCB-work-plus-s-bin\luafilesystem-v_1_6_3-fix-src.7zを解凍。以下のファイルをlfsプロジェクトのフォルダC:\Users\ユーザ名\source\repos\lfs\lfsにコピー。
・lauxlib.h
lfs.c
lfs.def
lfs.h
lfs.sln
lua.h
・lua52-x64.lib
・lua52.lib
・luaconf.h
・lualib.h
6.lfsプロジェクト右クリックでプロパティを開き、構成プロパティを次のように変更
構成:Release、プラットフォーム:EpgTimerSrvに合わせる
・全般->文字セット:マルチバイト文字セットを使用する
C/C++->全般->追加のインクルードディレクトリ:.(ピリオド1つ)
C/C++->プリプロセッサ->プリプロセッサの定義:;_CRT_SECURE_NO_WARNINGSを末尾に追記
・リンカ->入力->追加の依存ファイル:プラットフォームがWin32なら;lua52.lib、x64なら;lua52-x64.libを末尾に追記
・リンカー->入力->モジュール定義ファイル:lfs.def
7.ソリューションの再ターゲット->Release->Win32/x64でビルド

EpgTimerSrv.iniを編集

HttpAccessControlList=+127.0.0.1,+192.168.11.0/24でLAN内のみcf.127.0.0.1localhostで、192.168.11.0/24はipconfigで調べると良い。
録画鯖のローカルIPはルータの設定で固定すること。

[SET]
EnableHttpSrv=1
HttpAccessControlList=+127.0.0.1,+192.168.11.0/24
HttpPort=5510
HttpPublicFolder="C:\DTV\EDCB\HttpPublic"

EpgTimerSrv.exeを再起動で適用される。

ブラウザで確認

http://localhost:5510/ にアクセスしHttpPublicFolderの内容が表示されればおk。
http://録画鯖のローカルIP:5510/ にスマホ等の別端末でアクセスし、同様に表示されればおk。表示されない場合はファイアウォールの詳細設定の受信の規則でHttpPortを許可(LAN内の場合はプライベートネットワークのみ)してOSを再起動。

HttpPublic.iniを編集

EMWUIの設定をここで行うcf.。EpgTimerを再起動する必要は無い。
LibraryPath=1で"ライブラリ"に表示するフォルダをCommon.iniからHttpPublic.iniに変更。RecFolderPath1でエンコ後フォルダを指定している。
ffmpeg="C:\DTV\ffmpeg\ffmpeg"C:\DTV\ffmpeg\ffmpeg.exeを指定している。
libvpxlibx264も負荷が大きいのでh264_qsvを使用している。この場合、ffmpeg3.4以降は-init_hw_device qsv:hwが必要。-global_qualityはIvyBridge以降、-look_ahead 1はHaswell以降対応。ffmpegのオプションについてはcf.

[SET]
LibraryPath=1
RecFolderPath0="C:\DTV\ts"
RecFolderPath1="C:\DTV\backupandsync"
RecFolderNum=2
ffmpeg="C:\DTV\ffmpeg\ffmpeg"
quality=720p,480p
[MOVIE]
;720p=-c:v libvpx -b:v 1800k -quality realtime -cpu-used 2 -vf yadif=0:-1:1 -s 1280x720 -r 30000/1001 -c:a libvorbis -b:a 128k -f webm -
720p=-init_hw_device qsv:hw -vf yadif=0:-1:1,scale=1280:720 -c:v h264_qsv -global_quality 27 -look_ahead 1 -g 15 -bf 2 -refs 6 -c:a aac -b:a 256k -f mp4 -movflags faststart+frag_keyframe -
480p=-init_hw_device qsv:hw -vf yadif=0:-1:1,scale=720:480 -c:v h264_qsv -global_quality 27 -look_ahead 1 -g 15 -bf 2 -refs 6 -c:a aac -b:a 128k -f mp4 -movflags faststart+frag_keyframe -

トラブルシューティング

※PCの電源を入れたままアンテナの抜き差しをするとチューナーが壊れるのでやめましょう
※以下を確認しても解決しない場合は一から環境構築をやり直すか,OSのクリーンインストールを試す。

起動しない

・言語パックは足りてるか
・欠損しているバイナリはないか
・パス等が間違っていないか
・落としたビルド済みソースやバージョンの違うバイナリが混在していないか
・OSのアップデートはなかったか(クリーンインストール推奨)

0dB,0Mbps,D(ドロップ)の値が増えすぎる、ブロックノイズだらけ

・アンテナの向きが正しいかどうか
・給電の設定は正しいか、給電器が壊れてないか
・感度調整は正しいか(BS/CS側のdBが足りず、抜けそうなくらいギリギリまで同軸ケーブルを緩めると映る場合は減衰器、混合波の場合は分波器を挟むと治るかも?)
・各部緩んでいないか
・PCIExの帯域が足りているか
・IT35系(W3U4、Q3U4、W3PE4、Q3PE4)で、コントロールパネルの電源オプションでUSBのセレクティブサスペンドをオフにする(ドロップが無くなるかも?))
・Q3PE4で地デジが100dB、BSが0dBの場合、1.予備知識、ハードウェア、ドライバ編でiniを書き換える。
デコーダは入れてあるか
・再生オフになっていないか
BSジャパンBSプレミアム…だけ映らない場合、2018年4月~BSトラポン移動によるTVTest、EDCBのバイナリ変更点を参考に修正したり、EDCB等は新しいものをビルドする。

S(スクランブル)の値が増える

・内蔵カードリーダのハード側の問題で30分で5桁くらいの値になることがあるが、その場合は外付けカードリーダを使うしかない。
B-CASカードがしっかり刺さっているか
・CPU使用率に余裕はあるか

TVTestのトラブルシューティング

BonDriverの初期化ができません:選んだチューナーに空きが無いので空いてるチューナーやPipeを選べば問題ない。
DirectShowの初期化ができません。MPEG-2デコーダフィルタをフィルタグラフに追加できません。:使えるデコーダを入れましょう。因みにMSのデコーダwindows8から有料化されたので別のものを使いましょう。
DirectShowの初期化ができません。音声フィルタをフィルタグラフに追加できません.:regsvr32 "C:\TvtAudioStretchFilter.axのパス
・:私の場合は起動中に外付けカードリーダのUSBポートの位置を変えてしまった時に起こった。OSを再起動すること。
カードリーダに接続できません。Windowsのエラーメッセージ :SCARD_W_UNRESPONSIVE_CARD: スマート カードがリセットに応答していません。:B-CAS接触不良なので少し抜いたり奥まで挿す。又は金属部が正しく接触しているか(裏返し?)。
カードリーダーの状態を取得できません。Windowsのエラーメッセージ :SCARD_E_NO_READERS_AVAILAVLE:スマート カードリーダーが見つかりません。:デバイスマネージャを確認し、カードリーダのドライバを当て直す。BDAドライバが逝ってる可能性もある。

EDCBのトラブルシューティング

・予約一覧にて
 赤:実行されない予約
 黄:時間が重なって一部のみ録画される予約
 灰:録画モードが無効
・録画済み一覧にて
 黄:復号漏れ。コマ落ち、真っ暗
 赤:ドロップ。ブロック抜け、コマ落ち、真っ暗
 ※特殊なストリーミングの為多少エラーパケットがあっても問題なく再生出来ればスルーしておk。スクランブルが解除されているかはtsプロセッサを無効にするか外部アプリでtsを再生したりエンコしてみたりするとわかる。
ファイル保存で致命的なエラーが発生した可能性があります:ストレージの問題、ファイル名の問題
録画中に番組情報を確認できませんでした:EPGデータを参照し録画開始を試みたものの放送の取得に失敗した場合。受信不良(天候、接触、給電、チャンネルスキャン)、番組変更(時間、タイトル、EventID)、BonDriverとの受け渡しの失敗、PC時計の狂い等様々な原因が考えられる。
録画時間に起動していなかった可能性があります:そのまんま
録画中にキャンセルされた可能性があります:ストレージの問題、PC時計の狂い
一部のみ録画が実行された可能性があります:チューナー不足、録画の中断、起動の遅れ、PC時計の狂い
次の予約開始のためにキャンセルされました:録画の割り込み、別トラポン連続録画による尻切れ
・同じ番組名の番組が録画できない:同一番組無効登録
EPG取得に失敗:チューナー数の設定、BonDriver不良、チャンネルスキャン不良、ドロップが多い、放送休止
B25Decoder.dllの読み込みに失敗しました:拾ってきたB25Decoderの場合はVC++ 2005 SP1 再頒布可能パッケージ等のランタイムが必要。
チューナーのオープンに失敗しました:デバイスマネージャでチューナのBDAドライバを確認。ランタイムとか。
・PC起動時に自動的に起動できない:EpgTimerSrv.exeをサービスに登録orEpgTimer.exeをスタートアップに登録
・録画中にEpgDataCap_Bon.exe又はTVTest.exeのGUIがない:EpgTimerSrv.exeをサービス登録した場合、OSの仕様でEpgTimer.exe又はTVTest.exeが起動していないと表示されない(サービス登録したexeから起動したexeも含む)。
・スタンバイ、休止から復帰しない:電源の設定、ハードウェアの仕様
・スタンバイ抑制条件が効かない:Vista以降のOSの仕様でユーザー操作や別アプリの実行するスタンバイ/休止への移行のキャンセルはできない。
・追従失敗:録画直前のEPGデータを取得するため、視聴時のEPGデータ取得を有効にし録画アプリ起動開始時間を多めにする。

ブルースクリーン

IRQL_NOT_LESS_OR_EQUAL:(W3PE rev1.3)デバイスマネージャを確認。私の環境ではBDAドライバが逝って結局クリーンインストールする羽目になった。
PAGE_FAULT_IN_NONPAGED_AREA:(Q3PE4)録画しながらのエンコード時、ffmpegのプロセス優先度を高にした状態で、x265を全コアで動かしたり内蔵グラフィックスのメモリ割り当てを増やした状態でQSVを使うと発生した。高->通常以下でエンコすればまず発生しない。念の為x265ではProcessorAffinityで使用コアを制限し、内蔵グラフィックスのメモリ割り当ては既定値にしている。

DTV記事一覧
1.予備知識、ハードウェア、ドライバ編
TS抜きとは何か、何が必要なのか、共通の項目。
2'.TVTest0.7.23+EDCB人柱版10.66編
・(非推奨)取り敢えず視聴、録画が出来る環境を構築する。
2.TVTest0.9.0+xtne6f版EDCB編
・(推奨)安定して視聴、録画が出来る環境を構築する。
2018年4月~BSトラポン移動によるTVTest、EDCBのバイナリ変更点
3.xtne6f EDCB-Work-Plus-sでTwitter連携編
Twitter連携はRubyTwitter API Gemを使用する。
4.FFmpeg自動エンコード+Googleフォトに無限保存編
・バッチ又はPowerShellからFFmpegで綺麗にエンコードし、Backup and Syncでアップロードする。
・音ズレさせない正しい処理や、ファイルの自動削除機能等も備えているため、完全放置が可能。