\documentclass[12pt,a4j]{jreport}
\usepackage{ascmac}
\usepackage[dvipdfm]{graphicx}
\title{Rec10Suiteマニュアル ver0.9.9}
\author{gn64\_jp}
\date{\today}
\topmargin=-0.6in
\textheight=8.2in
\begin{document}
\maketitle
\tableofcontents
\chapter{Rec10Suite}
	\section{Rec10Suiteとは}
		Rec10Suiteはデジタル時代のテレビに対応した録画・エンコードツールで
		レコーダーの代わりとなるようなプログラムを作れないかというところから
		出発したプログラムです。
		
		Rec10Suiteは中核ともいうべき録画管理ソフトのrec10と録画管理クライアント
		であるrectool、そのほかの補助ツールからなります。
		rec10はcronを使って定期動作することで番組表チェックや時間変更に対応し、
		rectoolを使うことで携帯からでも予約を行うことが可能です。
	\section{特徴}
		本ツール以外にもデジタル放送を録画するソフトはepgrecやfoltiaなどが存在しますが、
		Rec10SuiteはBS/CS放送のサポート、二か国語対応、エンコードの実行などが違う点です。
		見る人が少ないためかBS/CSの話は巷ではあまり出てこないようです。
\chapter{rec10}
	\section{概要}
		rec10は放送波を受信してmpeg2-tsにできる環境下で使用するために作られたソフトで、
		tsをh.264などの形式を用いてファイルサイズを小さくし、パソコンや携帯などのデバイスで
		使いやすい形式にするものです。rectoolとあわせることで録画予約から録画管理までできる
		ようになります。
		rec10のライセンスはLGPL v3で著作権はgn64\_jp(gn64\_jp@users.sourceforge.jp)に属します。
	\subsection{構成}
		rec10は録画ツール(recpt1やrecfriioなど)、復号ツール(b25)、
		BonTsDemux(同梱、wineで使用)、epgdump(改造版同梱)などを内部で使用します。
		録画ツールと復号ツールは同梱されていないため、入手してインストールした後にrec10.conf
		に書き込んでください。
	\section{依存環境}
		\paragraph{必須環境}
			\begin{itemize}
				\setlength{\itemsep}{-3pt}
				\item python2(2.6以上、2.5でも可能かもしれません)
				\item python-mysqlモジュール
				\item mencoder
				\item x264(最新版のビルド推奨)
				\item ffmpeg
				\item wine
				\item MySQL
			\end{itemize}
		\paragraph{推奨環境}
			\begin{itemize}
				\setlength{\itemsep}{-3pt}
				\item MP4Box(GPAC) mp4サポートに必要
				\item mkvmerge mkvサポートに必要
				\item Caption2Ass 字幕サポートに必要
			\end{itemize}
	\section{インストール}
		\paragraph{必須環境の用意}
			上記の必須環境を用意してください。x264は最新版をビルドすることを推奨します。
			(画質、エンコード速度が向上します)
			次にrec10が使用するためのMySQLのデーターベース、ユーザーを用意してください。
			次次項の設定中に必要になります。
		\paragraph{b25とrecpt1のインストール}
			rec10はchardev版とよばれるドライバを使用します。friioだとrecfriio,pt1だとrecpt1が必要になります。
			それとは別にb25とよばれるソフトもインストールされている必要があります。ここではrecpt1について解説します。
			b25は\texttt{b25最新版 http://2sen.dip.jp/cgi-bin/pt1up/source/up0215.zip}から、
			recpt1は以下のコマンドで取得、インストールしてください。
			\begin{verbatim}
				$hg clone http://hg.honeyplanet.jp/pt1/ pt1
				$cd pt1/driver
				$make
				$sudo make install	←インストール
				$cd ../recpt1/
				$make
				$$sudo make install
			\end{verbatim}
			\begin{itembox}[l]{最新のLinux環境}
				最新のLinux環境では標準でDVB方式のPT1ドライバが同梱されていますが、
				rec10はこの方式に対応していないため、以下の方法で無効化してください
				\begin{verbatim}
					/etc/modprbe.d/blacklist-pt1.confに
					blacklist earth-pt1
					と書き込んだ上で再起動してください。
				\end{verbatim}
			\end{itembox}
		\paragraph{ダウンロードとインストール}
			\texttt{rec10のサイト http://sourceforge.jp/projects/rec10/}から
			最新版のrec10Suiteをダウンロードします。
			ここではrec10Suite0.9.9.tar.bz2とします
			\begin{verbatim}
				$tar jxvf rec10Suite0.9.9.tar.bz2  ←ファイルの解凍
				$cd rec10\ 0.9.9	←解凍したフォルダへ移動
				$bash ./install.sh	←設定スクリプトの実行
				・・・(質問されるため答えてください)
				$make
				$sudo make install	←インストール
			\end{verbatim}
			\begin{itembox}[l]{AACサポートについて}
			AACサポートを追加したい場合はNeroAACEncをインストール前に
			tstoolsフォルダ内に入れておくか、インストール後に
			/usr/local/binに入れてください。
			なおneroAacEncは\texttt{Nero AAC Codec http://www.nero.com/jpn/technologies-aac-codec.html}から手に入ります
			\end{itembox}
			\begin{itembox}[l]{字幕サポートについて}
			字幕サポートを追加したい場合はCaption2Ass.exeをインストール前に
			tstoolsフォルダ内に入れておくか、インストール後に
			/usr/local/share/rec10/tstoolsに入れてください。
			\end{itembox}
		\paragraph{cronの設定}
			rec10を実行したいユーザーでcronの設定を行います。
			五分ごとに実行されるようにしてください。
			\begin{verbatim}
				$/usr/local/bin/rec10		←必ず一度実行してください、アップデート処理などが入ります。
				$crontab -e
				*/5 * * * * /usr/local/bin/rec10を追加
			\end{verbatim}
			最初のrec10の実行時にチャンネルのスキャンと初期化が行われます。
			これでエラーが出なければインストールは完了です。
			次にrectoolのインストールを行ってください。
\chapter{rectool}
	\section{rectoolについて}
		rectoolはlong.inus氏によって書かれたrec10管理スクリプトです。
		単体での配布は行っておらず、rec10に最新版が同梱されるという形で
		配布されています。rec10は現在rectool以外の録画ツールがないため、
		rectoolを使ってWEB上から予約するのが唯一の録画方法になります。
		rectoolはLGPL ver.3ライセンスであり、long.inusが著作権を持ちます。
	\section{必須環境}
		\begin{itemize}
			\setlength{\itemsep}{-3pt}
			\item perl
			\item perlライブラリ(下記)
			\item apatchなどのhttpサーバ(perl対応のもの)
		\end{itemize}
		\subsection{perlライブラリ}
			\begin{itemize}
				\setlength{\itemsep}{-4pt}
				\item CGI::Carp
				\item Time::Piece
				\item Date::Simple
				\item DateTime
				\item CGI::Minimal
				\item MIME::Base64
				\item Config::Simple
				\item Time::Hires
				\item Data::Dumper
				\item Tie::IxHash
				\item Perl6::Slurp
				\item Sort::Naturally
			\end{itemize}
		\section{インストール}
		rec10の圧縮ファイルのwwwフォルダにあるrectool.plを設置したい
		場所においてください。ブラウザからrectool.plを表示すれば
		予約ができるようになります。
		\section{使い方}
		\includegraphics[width=10cm]{./eps/rectool_top.eps}


		一番上の一行が全体のメニュー、その下が各々の機能に応じた画面となります。
		\begin{description}
			\setlength{\itemsep}{-2pt}
			\item [トップ]\mbox{}\\この画面。番組表の確認や予約を行う画面。
			\item [予約確認]\mbox{}\\予約の変更、確認、削除などを行う画面。
			\item [予約状況(画像版)]\mbox{}\\画像でどの程度予約が入っているかを確認する画面。
			\item [録画一覧]\mbox{}\\録画済みのファイルの処理状況を確認する画面。
			\item [おまかせ]\mbox{}\\これまでの録画履歴から好みだと思われる番組を
			ピックアップします。
			\item [玄人使用]\mbox{}\\rec10のDBの内容などを確認します。
			\item [復旧支援]\mbox{}\\途中から処理をやり直す場合に使います。
			\item [地引]\mbox{}\\字引によるキーワード録画候補を提案します。
			\item [録画履歴]\mbox{}\\これまでに録画された番組の履歴を表示します。
			\item [新規予約]\mbox{}\\番組表からではなく直に新たな予約を行います。
		\end{description}
	\subsection{トップ画面}
		\includegraphics[width=10cm]{./eps/rectool_top_chlist.eps}

		左からチャンネル名、日時、ジャンル、キーワードの条件を設定し、番組表から該当
		する番組を検索することができます。検索可能なのは先の一週間分となります。


		\includegraphics[width=10cm]{./eps/rectool_top_searchCh.eps}

		図のように検索結果が表示されるため録画したい番組をクリックしてください。



		\includegraphics[width=10cm]{./eps/rectool_top_reserve.eps}


		録画の詳細を設定する画面です。
		\begin{description}
		    \setlength{\itemsep}{-2pt}
		    \item [録画のサイズ]\mbox{}\\ 縦横比維持のリサイズもしく
		    はインターレース保持
		    \begin{description}
				\setlength{\itemsep}{-3pt}
		        \item [H 1280x720]\mbox{}\\ リサイズして1280x720に収まる大きさにします
		        \item [W 854x480]\mbox{}\\ 854x480に収まる大きさにします
		        \item [F 1920x1080]\mbox{}\\ 1920x1080に収まる大きさにします。
		        地デジの放送されている大きさです
		        \item [I インタレ保持]\mbox{}\\ リサイズせずにインターレース保持(60i)します
		    \end{description}
		    \item [画質]\mbox{}\\ 画質を調整します(x264のcrfを増減)
		    \item [圧縮率]\mbox{}\\ 圧縮率を調整します(x264のpresetを変更)
		    \item [コンテナ]\mbox{}\\ 保存するコンテナ(MP4/MKV)の設定。そのままだと
		    rec10の設定に従います。
		    \item [24fps]\mbox{}\\ 一部アニメや映画など用に24fps化を行います
		    \item [二か国語放送]\mbox{}\\ 二か国語放送用に音声を取り扱います。\\
		    題名に[二]などが含まれているもの用です。
		    だいたいの場合主音声に英語、副音声に日本語がはいります。vlcなどでは切り替えられます。
		    \item [5.1ch放送]\mbox{}\\ 5.1ch用に音声を取り扱います。題名に[5.1]がつく場合などです。
		    \item [移動オプション]\mbox{}\\ 設定した処理の後にrec10のmovepathで
		    設定された場所へファイルを送ります。
		    \item [ファイル名日時追加]\mbox{}\\ 録画の日時を録画ファイル名に加えます。
		    シリーズものなどで便利です。
		    \item [隔週録画]\mbox{}\\ 毎週この時間に予約する
		\end{description} 

		特に触るべきなのは録画サイズ、ファイル名日時追加、隔週予約ぐらいです。
		録画サイズはマシンのスペックなどに応じて変えてください。Hが使いやすい程度です。

		これで録画予約が完了しました。
	\subsection{おまかせ画面}

		\includegraphics[width=10cm]{./eps/rectool_bravia.eps}

		左のような画面がおまかせ画面です。これまでの録画履歴から好みだと思われる
		タイトルをピックアップします。\textbf{薦められているタイトルを自動で予約したい場合は、
		玄人仕様内のオプション
		(自動ベイズ)を設定してください。}
	\subsection{字引モード}

		\includegraphics[width=10cm]{./eps/rectool_jbk.eps}

		左の画面がキーワード画面です。設定されたキーワードをチェックし、設定に従って
		提示もしくは自動で録画します。\textbf{キーワードごとに自動で録画するかどうかを設定
		するのではなく、一括で自動録画にしたい場合は玄人仕様の内部オプション(自動地引)
		を設定してください。}
\chapter{周辺ツール}
	\section{jTsSplitter(TSスプリッタ)}
		\subsection{概要}
		jTsSplitterはgn64\_jp(gn64\_jp@users.sourceforge.jp)によって開発されたMpeg2Ts Splitterです。
		rec10内部でチャンネルスキャン時の番組番号の解析、TSからの必要チャンネルの抜き出しなどに使用されています。
		ライセンスはLGPL ver.3です。

		\subsection{使い方}
		\begin{verbatim}
			java -jar jTsSplitter <入力TSファイル名> <出力TSファイル名> [オプション<番組番号>]
		\end{verbatim}
		
		\begin{description}
			\item [$<$入力TSファイル名$>$]\mbox{}\\ 入力するtsのファイル名を指定します。
			\item [$<$出力TSファイル名$>$]\mbox{}\\ スプリットされたtsの出力ファイル名を指定します。
			\item [番組番号]\mbox{}\\ {\textbf{オプションです}CSやBSの場合チャンネル番号が内部の番組番号になっているため
			切り出したい番組のチャンネルを指定します。指定しない場合は一つ目の番組を切り出します。}
		\end{description} 
	\section{epgdump(番組表取得ソフト)}
		\subsection{概要}
		デジタル放送のTSファイルから番組表を読みだし、xmlに書き出すソフトです。tomyさんがLinux用にSoloris版から移植したもの
		をrec10用に改変したものです。ライセンスはGPLとなります。細かな情報はreadme.txtを参照してください。
		\subsection{使い方}
		\begin{verbatim}
			epgdump {/BS|/CS} <tsFile> <outfile>
			epgdump <ID> <tsFile> <outfile>
			recpt1 ... [>10] - | epgdump /TIME - /dev/null
		\end{verbatim}
		\begin{description}
			\item [$<$ID$>$]\mbox{}\\ チャンネル識別子。地上波の物理チャンネルを与えます。(rec10内部使用用)
			\item [\slash BS]\mbox{}\\ BSモード。一つのTSからBS全局のデータを読み込みます。
			\item [\slash CS]\mbox{}\\ CSモード。一つのTSから複数局のデータを読み込みます。
			\item [\slash TIME]\mbox{}\\ {時刻合わせモード。TSからTOT(Time Offset Table)を読み込みます。
			\begin{verbatim}recpt1 <任意> 10(秒以上) - | epgdump /TIME - <任意>\end{verbatim}の形で使用してください。
			TOTは5秒に1回しか来ないため、recpt1に与える時間をある程度長くしてください。}
		\end{description} 
	\section{b25remote}
		b25remoteはWindowsにおけるBonCasLinkのような機能をもったソフトウェアです。
		細かな情報は付属のreadmeを参照してください。
		\subsection{使い方}
			\verb|/etc/rec10.conf|の\verb|[path]|以下に\verb|b25_remote = 1|と
			\begin{verbatim}
				b25_env = "export B25_SERVER_IP=<IP> && export LD_PRELOAD=/~/b25-client.so"
			\end{verbatim}
			を環境にあわせて書き加えてください。
	\section{classify.py(自動仕分け機能)}
		\subsection{概要}
		録画ファイルを自動で仕分けする機能です。名前からの推測仕分けを行います。
		この機能をつかってどこにファイルが移動されたかを確認するにはrectoolの「録画一覧」を参照してください。
		\subsection{使い方}
		まずrec10.confの\verb|[path]|以下のrecorded = に移動先のパスを書き加えてください。
		なお書かれたパスの子フォルダも検索対象になります。移動先のフォルダはrec10実行ユーザーに書き込み権限を与えておいてください。
		\begin{verbatim}
			python classify.py -A
			python classify.py -D
		\end{verbatim}
		\begin{description}
			\item [-A 自動移動]\mbox{}\\ 自動移動開始。移動された動画の関連ファイルは削除されます。
			\item [-D 関連ファイル削除]\mbox{}\\ 動画以外の関連ファイル(tsなど)を削除しファイル容量をへらします。容量圧迫の緊急時用に
		\end{description} 
\chapter{FAQ}
	\section{その他}
		\begin{description}
			\setlength{\itemsep}{-2pt}
			\item [解読予約のまま時間が進むだけで、解読が始まらない]\mbox{}\\{rec10は録画、解読、エンコードに実行可能最大数
			を設けています。そのためエラーなどで作業途中で以上に終了した場合などはその値をリセットできないためrec10が最大数に達した
			と勘違いして終了待ちの状態になることがあります。そのようなときはrectoolの玄人仕様からDBの数値をリセットしてください。}
		\end{description}
\chapter{仕様}
	\section{rec10}
		\subsection{コマンドオプション}
			\begin{description}
			\setlength{\itemsep}{-2pt}
			\item [サイズ] {S(720x480)/W(854x480)/H(1280x720)/F(1920x1080)/I(Interlaced)}
			\item [画質(x264のcrf,小さい方が高画質)] {u(+2)/i(+1)/default(設定値)/o(-1)/p(-2)}
			\item [圧縮率(x264のpreset)] {q(veryfast)/w(fast)/default(medium)/e(slow)/r(slower)}
			\item [コンテナ] {m(mkv mkvmergeが必要)/default(設定値)/4(mp4 MP4Boxが必要)}
			\item [音声] {d(二ヶ国語)/default(通常音声)/5(5.1ch)}
			\item [フレームレート] {a(24fps)/default(30fps)}
			\item [移動opt] {R(録画後移動)/D(復号後移動)/E(エンコード後移動)/default(移動なし)}
			\item [その他] {N(自動命名オプション)}
			\end{description}
			
\end{document}
