2'.TVTest0.7.23+EDCB人柱版10.66編 - 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でアップロードする。
・音ズレさせない正しい処理や、ファイルの自動削除機能等も備えているため、完全放置が可能。

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

言語パッケージ リンク
Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ(x86) https://www.microsoft.com/ja-jp/download/details.aspx?id=5638
Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ(x64) https://www.microsoft.com/ja-jp/download/details.aspx?id=18471
Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラム(x86x64両方必要,IA64のものは不要) https://www.microsoft.com/ja-jp/download/details.aspx?id=14431
Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム https://www.microsoft.com/ja-jp/download/details.aspx?id=26347
Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ(x86) https://www.microsoft.com/ja-jp/download/details.aspx?id=5582
Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ(x64) https://www.microsoft.com/ja-jp/download/details.aspx?id=2092
Microsoft Visual C++ 2008 再頒布可能パッケージ ATL のセキュリティ更新プログラム(x86x64両方必要,IA64のものは不要) https://www.microsoft.com/ja-jp/download/details.aspx?id=10430
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x86) https://www.microsoft.com/ja-jp/download/details.aspx?id=8328
Microsoft Visual C++ 2010 SP1 再頒布可能パッケージ (x64) https://www.microsoft.com/ja-jp/download/details.aspx?id=13523
Microsoft .NET Framework 4 (スタンドアロンインストーラー) https://www.microsoft.com/ja-jp/download/details.aspx?id=17718

OSのユーザー名は半角英数字でないとエラーが出る場合があります。
32bit環境では(x64)は不要,64bit環境では(x86)(x64)両方必要。
余計な言語パックを入れても問題ない。

TVTest

これを参考にバイナリを配置していけば良い。設定後に現れるファイルもある。
32bitに揃えて下さい。混在しているとうまく動作しない場合があります。

TVTest(TVTest_0.7.23.zip)
┣Plugins
┃┣*.tvtp
┃┃(TVCaptionMod)
┃┣TVCaptionMod2.tvtp
┃┃(TvtPlay)
┃┣TvtPlay.tvtp
┃┃(EpgDataCap_Bon.zip)
┃┗EpgTimerPlugIn.tvtp(録画開始時にチューナーに空きがなければ追い出してくれる)
┣Themes
┃┗*.httheme
┣TVTest.exe
┣TVTest_Image.dll
┃(TVTestVideoDecoder)
┣TVTestVideoDecoder.ax
┃(BonDriver_BDA)
┣BonDriver_PlexPX_S.dll
┣BonDriver_PlexPX_S.ini 
┣BonDriver_PlexPX_T.dll
┣BonDriver_PlexPX_T.ini
┃(BDASpecial-PlexPX)
┣PlexPX.dll
┃(TvtPlay)
┣BonDriver_Pipe.dll
┗TvtAudioStretchFilter.ax

TVTest(視聴ソフト)のバイナリを入れる

http://ux.getuploader.com/PX_W3PE/download/29/TVTest_0.7.23.zip からTVTest_0.7.23.zipをDLして解凍。

TVTestVideoDecoder(MPEG2デコーダ)バイナリ入手

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

TvtPlay(再生プラグイン)を入れる

録画したtsファイルを再生する時に早送りしたりするためのプラグインです。
https://github.com/xtne6f/TvtPlay からバイナリを入手
regsvr32 "C:\TvtAudioStretchFilter.axのパス"を管理者で実行
③成功しましたと出たらお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

TVTestの設定

TVTestでもEDCBのEPGデータを使用したりするので,先にEDCBから設定すると良い。
言われたとおりに進むとチャンネルスキャンをしてくれると思います。
最低限やっておくべきものだけ書きます。どんな項目があるのかざっと確認して好みの設定に変えて下さい。
※チューナー使用中(録画中など)にTVTestを起動すると,「BonDriverの初期化ができません。」エラーが出る場合がありますが,空いてるチューナーやPipeを選べば問題ありません。
※初回起動時にはカードリーダ:内蔵カードリーダを使う場合はスクランブル解除しない,外付けカードリーダを使う場合はスマートカードリーダ

一般

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

表示

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

ステータスバー

・TvtPlayステータスバーにチェック

キー割り当て

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

映像

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

音声

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

録画

・保存先フォルダ:…をを押してお好みに設定してください(私の場合はユーザーのビデオフォルダ)
・ファイル名マクロ:▼を押してお好みに設定してください
・字幕データを保存する:必要な場合はチェック。
・データ放送を保存する:チェックを外した方が良い。

キャプチャ

・保存先フォルダ:…をを押してお好みに設定してください(私の場合はユーザーのピクチャフォルダのTVTestフォルダ)
・ファイル名マクロ:▼を押してお好みに設定してください
・大きさは表示されている大きさに設定(元の大きさだと例えば50%で表示中にキャプった時に1920x1080に引き伸ばされて保存されてしまう)
・保存形式:JPEGじゃないとパンクしますが画質に拘るのならPNGにしておくと良いでしょう。

チャンネルスキャン

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

EPG/番組情報

EPG情報をファイルに保存する:チェックを外す
・EpgDataCap_BonのEPGデータを利用する:チェックを付ける
EPGデータのフォルダ:EDCBフォルダ\Setting\EpgDataに指定(これによりTVTest側のEPG取得が不要になる)
・ロゴデータをファイルに保存する:チェックしても良い

プラグイン

・TVCaptionMod2.tvtpの設定
映像への字幕合成機能を使う:チェック(要再起動)
外字テーブル名:WindowsTV丸ゴシックを使う場合は!typebank(詳しいところはreadme参照)
描画方式: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
; ボタン15の位置にボタンデザイン16,右クリで等倍速,左クリで倍速一覧(%)がポップアップ
Button15=16,StretchZ,StretchPopup

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

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

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

録画したtsファイルをダブルクリックで再生

①tsファイルをプログラムから開く→その他のアプリ→TVTest.exeで関連付ける
レジストリエディタで以下にアクセス

HKEY_CURRENT_USER\Software\Classes\Applications\TVTest.exe\shell\open\command

"C:\TVTest.exeのパス" /nd /d BonDriver_Pipe.dll "%1"に変更

トラブルシューティング

※PCの電源を入れたままアンテナの抜き差しをするとチューナーが壊れるのでやめましょう
※以下を確認しても解決しない場合は一から環境構築をやり直すか,OSのクリーンインストールを試す。
【起動しない】
・言語パックは足りてるか
・欠損しているバイナリはないか
・パス等が間違っていないか
・落としたビルド済みソースに問題がないか,バージョンの違うバイナリは混在していないか
・OSのアップデートはなかったか
【0dB,0Mbps,D(ドロップ)の値が増えすぎる,ブロックノイズだらけ】
・アンテナの向きが正しいかどうか
・給電の設定は正しいか,給電器が壊れてないか
・感度調整は正しいか(BS/CS側のdBが足りず,抜けそうなくらいギリギリまで同軸ケーブルを緩めると映る場合は減衰器,混合波の場合は分波器を挟むと治るかも?)
・各部緩んでいないか
・PCIExの帯域が足りているか
デコーダは入れてあるか
・再生オフになっていないか
【S(スクランブル)の値が増える】
・内蔵カードリーダのハード側の問題で30分で5桁くらいの値になることがあるが,その場合は外付けカードリーダを使うしかない。
B-CASカードがしっかり刺さっているか
・CPU使用率に余裕はあるか
【エラーメッセージ】
・BonDriverの初期化ができません:選んだチューナーに空きが無いので空いてるチューナーやPipeを選べば問題ない。
・DirectShowの初期化ができません。MPEG-2デコーダフィルタをフィルタグラフに追加できません。:使えるデコーダを入れましょう。因みにMSのデコーダwindows8から有料化されたので別のものを使いましょう。
・音声デコードフィルタがうんたらかんたら:regsvr32 "C:\TvtAudioStretchFilter.axのパス
・何も書いてないポップアップウィンドウ:私の場合は外付けカードリーダのUSBポートの位置を変えてしまった時に起こった

EDCB

EDCB(EpgDataCap_Bon.zip)
┣BonDriver
┃┃(BonDriver_BDA)
┃┣BonDriver_PlexPX_S.dll
┃┣BonDriver_PlexPX_S.ini
┃┣BonDriver_PlexPX_T.dll
┃┣BonDriver_PlexPX_T.ini
┃┃(BDASpecial-PlexPX)
┃┗PlexPX.dll
┣RecName
┃┗RecName_Macro.dll
┣Setting
┃┃(設定後等に自動生成)
┃┣EpgAutoAdd.txt(これが自動予約登録リスト)
┃┣RecInfo.txt
┃┣RecInfo2.txt
┃┣Reserve.txt
┃┗EpgData
┣Write
┃┗Write_Default.dll
┣B25Decorder.dll(外付けカードリーダを使う場合)
┣BonCtrl.ini
┣BonDriver_TCP.dll
┣ConvertText.txt
┣CtrlCmdCLI.dll
┣EpgTimerPlugIn.tvtp
┣EpgDataCap_Bon.exe
┣EpgTimer.exe
┣EpgTimerNW.exe
┣EpgTimerSrv.exe
┣EpgTimerTask.exe
┣EpgDataCap3.dll
┗SendTSTCP.dll

EDCB人柱版10.66(録画アプリ)のバイナリを入れる

https://www.axfc.net/u/2476603 からEpgDataCap_Bon.zipをDLして解凍。

Twitter連携する(コンパイル必要)

※必要ない場合は飛ばしても構いません。
10.66のTwitter機能はAPI1.1に対応していないためxtne6f版EDCBのwork-plus-150926から貰ってくる。
①予め通知用のTwitterアカウントを作っておく。
②↑と本垢等でFFになって,スマホで↑のプロフィールから投稿通知を受け取るように設定。
https://dev.twitter.com/apps でCreate New Appからアプリケーション登録を行う。
Nameはtwitterクライアント内でクライアント名として表示されるので中二病患者はお気をつけください。
Website,Callback URLは今回使わない情報なので嘘でも構わない。
Access levelはRead and writeに設定。
https://github.com/xtne6f/EDCB/releases/tag/work-plus-150926 からソースを入手
⑤\twitter\twitter.slnをVS2012Expressで開く
⑥右側のソリューションエクスプローラを展開しtwitterDef.hを開く
⑦Keys and Access TokensのConsumer Key (API Key)とConsumer Secret (API Secret)を"取得したものを入力してください"に入力して保存
⑧\twitter\twitter\twitter.rcをテキストエディタで開く
⑨2箇所のafxres.hwinres.hに修正保存して閉じる

#include "winres.h"
~~~~~~~~~~~~~~~~~
2 TEXTINCLUDE 
BEGIN
 "#include ""winres.h""\r\n"
 "\0"
END

⑩再度twitter\twitter.slnをVS2012で開き上のDebugをReleaseに変更,ビルドからソリューションのビルド
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ========== になればおk
⑪\x86\Release\twitter.dllをEDCBのフォルダに配置

EpgDataCap_Bon.exeの設定

①EpgDataCap_Bon.exeを2つ起動。
②それぞれS,Tを選択しチャンネルスキャンをする。時間がかかるのでその間にPC内のいかがわしい画像等を整理しましょう。
③終わったら目的のチャンネルが表示されていることを確認し閉じる。
BS1,BSプレミアム等が検出できない場合は,BonCtrl.iniのChChgTimeOut ServiceChkTimeOutでそれぞれの値を15~20程度に変更して再度スキャン。(チャンネルスキャンのタイムアウト値を大きくする)(人柱版10.61.1以降)
④再度EpgDataCap_Bon.exeを起動し設定を開く
⑤基本設定
・保存フォルダ:指定
⑥動作設定
スクランブル解除処理を行う:チェック
EMM処理を行う:チェック(有料放送を契約している方は必須)
録画時,字幕データを含める:お好みで
最小化時タスクトレイに入れる:チェック(しないと録画時に毎回現れて邪魔)
EPG取得設定,サービス表示設定
EPG取得サービス:マルチ編成(連番や同じ名前)になってるものは一番上を残して削除,絶対に観ないチャンネルや契約していないチャンネルを削除
⑧ネットワーク設定
UDP送信などは使いづらいのでパス。追っかけ再生などはTVTestから直接ファイルを開きtvtplayを使うと良い。

EpgTimerの設定

最低限やっておくべきものだけ書きます。どんな項目があるのかざっと確認して好みの設定に変えて下さい。
①EpgTimer.exeを起動し設定を開く。
②基本設定
・保存フォルダ
録画保存フォルダ:指定
スタートアップにショートカットを作成するを押下
・チューナー
それぞれのチューナー数を2(q3peなら4)に書き換える
EPG取得
EPG取得対象サービス:マルチ編成(連番や同じ名前)になってるものは一番上を残して削除,絶対に観ないチャンネルや契約していないチャンネルを削除
EPG取得開始時間:録画に重ならない好きな時間を最低でも1日1回は指定
③動作設定
・録画動作
スタンバイ:チェック
抑制条件:次の予約が何分以内にある時,何分以内にユーザー操作があった時PC使用中とみなしスリープ移行しないようするかを設定
プロセス優先度:通常以上又は心配なら高に設定(リアルタイムはオススメしない)。
最小化で起動する:チェック
・予約情報管理
イベントリレーによる追従を行う:チェック
④番組表
・表示項目
カスタマイズ表示:チェックし,マルチ編成(連番や同じ名前)になってるものは一番上を残して削除,絶対に観ないチャンネルや契約していないチャンネルを削除
⑤外部アプリケーション
・ファイル再生
再生アプリのexeパス:TVTestのパスを通す
コマンドライン引数:/d BonDriver_Pipe.dll /tvtplay /nd /s "$FilePath$"を入力(BonDriverにBonDriver_Pipe.dllを指定,tvtplayを有効,スクランブル解除しない,複数起動しない)
Twitter連携
Twitter連携機能を有効にする:チェック
デフォルトブラウザで通知用Twitterアカウントでログインした状態で認証用URLを取得するを押下
出てきた暗証番号を入力し適応
動作テストしツイートされ通知が来るか確認
有効にするツイート内容を決める(私の場合は録画中の変更検知と録画開始にチェックした、参考までに)

追従:$SDYYOLD$/$SDMOLD$/$SDDOLD$ $STHOLD$:$STMOLD$ ~ $ETHOLD$:$ETMOLD$ → $SEYMDHMNEW$ $TitleNEW$ $ServiceNameOLD$
録画開始:$SDYYNEW$/$SDMNEW$/$SDDNEW$ $STHHNEW$:$STMMNEW$~$ETHHNEW$:$ETMMNEW$ $TitleNEW$ $ServiceNameNEW$

(例:録画開始:17/3/29 01:35~02:05 けものフレンズ[終] 第12話「ゆうえんち」 テレビ東京1)
⑥最後にEPG取得を押下して完了

EDCBの使い方

例1 アニメ全録

検索キーワードに半角スペース,ジャンル絞込で国内アニメを追加,映像サービスのみ,検索,自動予約登録条件に追加

例2 今期アニメ毎週録画

正規表現モードにチェック,検索キーワードに(うらら迷路帖|けものフレンズ|幼女戦記|クズの本懐~)など,ジャンルを国内アニメ,チャンネルをTBS,テレ東,MX,検索(余計な番組が表示されてしまう場合は,時間指定やnotキーワードで工夫する),自動予約登録条件に追加
※基本的に市販のレコーダーにあるような連ドラ機能はない代わりに,検索で代用します(この方が正確)。
※自動予約登録に番組名を1つづつ登録すると重くなるので,正規表現で局や期毎に分けて正規表現を使うと良い。
人柱版10.66ではアルファベットは大文字,スペースが入るものはスペースの前か後のワードで頑張らないといけない。
※録画モードで視聴予約を選ぶこともできる。

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でアップロードする。
・音ズレさせない正しい処理や、ファイルの自動削除機能等も備えているため、完全放置が可能。