epgrecの録画済一覧ページをちょいといじった

前置き

自分の録画サーバのディレクトリ構成は以下のようになっている。

un_encode_ts/ : エンコード前のtsファイルを入れる
encoded_ts/ : エンコード完了後のtsファイルを入れる
mp4/ : エンコードしたmp4ファイルを入れる

現状は、インストールしたepgrecのままなので作成したasfのストリーミング先が un_encode_ts/ のままである。
これでは不便というかtsファイルが見れないので改良。
その他、便利かな?と思った機能を追加した。
以下、追加した機能

  • asfのストリーミング先をencoded_ts/以下に変更
  • ストリーミング先にmp4を追加
  • テーブルを録画日時による昇順/降順で表示
  • 1ページに表示する件数を選択

触ったファイル

触ったファイルは以下のとおり。

./templates/recordedTable.html
./recordedTable.php
./viewer.php

以下、差分。

  • recordedTable.html

録画済ページ表示用ファイル。
optionとしてソート、表示件数を追加。
テーブルカラムとして、モードが不要だったので削除。
mp4のリンク先を追加。

@@ -153,0 +154,9 @@
+ソート<select name="sort">
+  <option value="DESC">降順</option>
+  <option value="ASC">昇順</option>
+</select>
+表示件数<select name="table_items">
+  <option value=50>50</option>
+  <option value=100>100</option>
+  <option value=500>500</option>
+</select>

@@ -174 +183 @@
-  <th>モード</th>
+<!--  <th>モード</th> -->

@@ -176,0 +186 @@
+  <th>mp4リンク</th>

@@ -186 +196 @@
-  <td>{$rec.mode}</td>
+<!--  <td>{$rec.mode}</td> -->

@@ -188,0 +199 @@
+  <td><a href="{$rec.asf_mp4}" id="tid_{$rec.id}">mp4</a></td>
  • recordedTable.php

データベースから録画済ページのデータを取得する。
$sort : ページ表示のソート用の変数
$table_items : 1ページの表示件数
を追加。POSTで受信する。
mp4のリンクページ 追加。
asfはviewer.phpで作成されるため、mp4かtsかの判定用としてGETメソッドのパラメータにfile_typeを追加。

@@ -13,0 +14,2 @@
+$sort = "DESC";
+$table_items = 50;

@@ -43,0 +46,10 @@
+	if( isset($_POST['sort'])) {
+		if( $_POST['sort'] != "" ) {
+			$sort = $_POST['sort'];
+		}
+	}
+	if( isset($_POST['table_items'])) {
+		if( $_POST['table_items'] != "" ) {
+			$table_items = $_POST['table_items'];
+		}
+	}

@@ -47 +59 @@
-$options .= " ORDER BY starttime DESC";
+$options .= " ORDER BY starttime " . $sort . " LIMIT ". $table_items;

@@ -60 +72,2 @@
-		$arr['asf'] = "".$settings->install_url."/viewer.php?reserve_id=".$r->id;
+		$arr['asf'] = "".$settings->install_url."/viewer.php?reserve_id=".$r->id."&file_type=ts";
+		$arr['asf_mp4'] = "".$settings->install_url."/viewer.php?reserve_id=".$r->id."&file_type=mp4";

asfファイル作成ファイル。
GETでfile_typeを取得。
file_typeから作成するリンク先を encoded_ts 以下にするか mp4 以下にするか決めている。

@@ -17,0 +18 @@
+$file_type = $_GET['file_type'];

@@ -41 +42,9 @@
-	echo "<REF HREF=\"".$settings->install_url."/video/encoded_ts"."/".$rrec->path ."\" />";
+	if( $file_type == "ts" ) echo "<REF HREF=\"".$settings->install_url."/video/encoded_ts"."/".$rrec->path ."\" />";
+	if( $file_type == "mp4") {
+		$path_split = explode( "." , $rrec->path );
+		$file_name = $path_split[0] . ".mp4";
+		$file_dir = "/video/mp4";
+		if( file_exists( "." . $file_dir . "/watched/" . $file_name ) ) $file_dir = $file_dir . "/watched";
+		if( file_exists( "." . $file_dir . "/watched/2013/" . $file_name ) ) $file_dir = $file_dir . "/watched/2013";
+		echo "<REF HREF=\"".$settings->install_url.$file_dir."/".$file_name ."\" />";
+	}