- ファイル:
-
- /trunk/doc/CHANGES.txt (更新) (1 diff)
- /trunk/doc/index.html (更新) (4 diffs)
- /trunk/doc/img/screen11.png (更新) (変更前)
- /trunk/doc/img/screen12.png (更新) (変更前)
- /trunk/doc/img/screen09.png (更新) (変更前)
- /trunk/doc/img/screen18.png (削除)
- /trunk/install/perl/tvrecording.pl (更新) (2 diffs)
- /trunk/install/perl/getxml2db.pl (更新) (1 diff)
- /trunk/install/perl/xmltv2foltia.pl (更新) (1 diff)
- /trunk/install/perl/cron_foltia_dayly.sh (更新) (1 diff)
- /trunk/install/php/folcast.php (更新) (1 diff)
- /trunk/install/php/foltialib.php (更新) (2 diffs)
- /trunk/install/php/selectcaptureimage.php (更新) (3 diffs)
- /trunk/install/php/showlibc.php (更新) (5 diffs)
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
/trunk/doc/CHANGES.txt
r28 r18 1 1 foltia 更新履歴 http://www.dcc-jpl.com/soft/foltia/ 2 3 06.12.244 tvrecording.pl:5 録画開始前の余裕時間を約15秒増やした。6 7 06.12.228 selectcaptureimage.php:9 サブタイトルのしょぼいカレンダーへのリンク追加。10 11 06.12.1812 showlibc.php:13 サブタイトルへのリンク追加。14 ページタイトルに番組名表示。15 folcast.php:16 出力にContent-Disposition:ヘッダ追加17 18 06.12.1419 foltialib.php:printdiskusage20 表示スタイルを変更21 2 22 3 06.12.12; /trunk/doc/index.html
r30 r8 60 60 <ul> 61 61 <li>Linuxの動くAT互換機:手もと開発・録画機はCeleron 2.6GHz,1GB RAMのスペックで30分番組のMPEG4(XviD)変換が22分程度で完了しています。</li> 62 <li>ivtvドライバで動作するビデオキャプチャカード:foltiaの機能を引きだすためには複数のエンコーダを搭載するのがおすすめです。手もとの環境ではIOデータ <a href="http://www.iodata.jp/prod/multimedia/tv/2003/gv-mvprx/">GV-MVP/RX</a>を2枚、<a href="http://www.iodata.jp/prod/multimedia/tv/2004/gv-mvprx2w/index.htm">GV-MVP/RX2W</a>を1枚で計4チャンネル同時録画環境にしています。画質の点からは複数エンコーダが一枚のカードに載ったRX2Wよりも1エンコーダのGV-MVP/RX2の方が多少有利なようです。しかしながら、GV-MVP/RX2Wは2006年7月に生産完了になってしまいました。</li> 62 <li>ivtvドライバで動作するビデオキャプチャカード:foltiaの機能を引きだすためには複数のエンコーダを搭載するのがおすすめです。手もとの環境ではIOデータ 63 GV-MVP/RXを2枚、RX2Wを1枚で計4チャンネル同時録画環境にしています。画質の点からは複数エンコーダが一枚のカードに載ったRX2Wよりも1エンコーダのGV-MVP/RX2の方が多少有利なようです。</li> 63 64 <li>Home Electronics社製USB 赤外線トランスミッタ <a href="http://www.home-electro.com/tira2.php">Tira-2.1</a>(オプション):外部チューナコントロール機能を使う場合必要です。<br /> 64 65 </li> … … 142 143 Device::SerialPort(Tira2を使う場合のオプション)</p> 143 144 <h3>・XMLTVインストール</h3> 144 <p>EPG番組表取得に必要なXMLTV日本語版を インストールします。<a href="http://linux.paken.org/index.php?XMLTV%C6%FC%CB%DC%C2%D0%B1%FE%C8%C7">ぱ研</a>が制作したものがすでに本家にマージされているようです。</p>145 <p>EPG番組表取得に必要なXMLTV日本語版を<a href="http://linux.paken.org/index.php?XMLTVニ?ワツミア?ネヌ">ぱ研</a>よりインストールします。</p> 145 146 <h3>・ffmpegインストール</h3> 146 147 <p>iPod H.264/AVCを作れる拡張をされたffmpegをインストールします。<br /> … … 319 320 <p> </p> 320 321 <h3>予約一覧:</h3> 321 <p> 大きく上下のふたつのエリアに分かれていて、予約されている番組の放映予定と番組名を一覧表示します。ここでも[TID]をクリックすると番組予約画面へ、[タイトル]をクリックすると「しょぼいカレンダー」の該当番組詳細画面へそれぞれ移動します。録画予約の解除は下半分のタイトルリストの項目から行います。 EPG予約の解除もここから行います。「画質」項目は録画ビットレートをMbps単位で表示しています。<br />322 <p> 大きく上下のふたつのエリアに分かれていて、予約されている番組の放映予定と番組名を一覧表示します。ここでも[TID]をクリックすると番組予約画面へ、[タイトル]をクリックすると「しょぼいカレンダー」の該当番組詳細画面へそれぞれ移動します。録画予約の解除は下半分のタイトルリストの項目から行います。「画質」項目は録画ビットレートをMbps単位で表示しています。<br /> 322 323 デモ画面:<a href="http://www.dcc-jpl.com/soft/foltia/demo/listreserve.php">http://www.dcc-jpl.com/soft/foltia/demo/listreserve.php</a><br /> 323 324 <img src="img/screen09.png" width="800" height="600" /><br /> 324 |中略<br />325 <img src="img/screen18.png" width="800" height="600" /><br />326 325 </p> 327 326 <h3>番組一覧:</h3> … … 337 336 </p> 338 337 <h3>録画一覧(録画順):</h3> 339 <p> 録画済みのMPEG2ファイルを放映順に一覧表示します。削除チェックボックスにチェックを入れて削除ボタンを押すとそのファイルは削除されます。上 部にディスク空き容量とトラコンプロセスを表示します。。<br />338 <p> 録画済みのMPEG2ファイルを放映順に一覧表示します。削除チェックボックスにチェックを入れて削除ボタンを押すとそのファイルは削除されます。上の方にディスク空き容量とトラコンプロセスを表示している部分がありますがこの部分は相当いい加減な書きかたなため環境にあわせて適当に修正して下さい。<br /> 340 339 デモ画面:<a href="http://www.dcc-jpl.com/soft/foltia/demo/showplaylist.php">http://www.dcc-jpl.com/soft/foltia/demo/showplaylist.php</a><br /> 341 340 <img src="img/screen11.png" width="800" height="600" /><br /> /trunk/install/perl/tvrecording.pl
r29 r8 42 42 #tvConfig.pl ------------------------------- 43 43 $extendrecendsec = 10; #recording end second. 44 #$startupsleeptime = 52; #process wait(MAX60sec) 45 $startupsleeptime = 37; #process wait(MAX60sec) 44 $startupsleeptime = 52; #process wait(MAX60sec) 46 45 #$startupsleeptime = 1; #process wait(MAX60sec) 47 46 … … 260 259 261 260 # $recch でウェイト調整入れましょう 262 #52 263 #my $intval = $recch % 50; # 0〜49 264 #my $startupsleep = $startupsleeptime - $intval; # 3〜52 (VHF 40-51) 265 #37 266 my $intval = $recch % 35; # 0〜34 267 my $startupsleep = $startupsleeptime - $intval; # 3-37 (VHF 25-36,tvk 30) 268 $reclengthsec = $reclengthsec + (60 - $startupsleep) + 1; # 269 270 &writelog("tvrecording: DEBUG SLEEP $startupsleeptime:$intval:$startupsleep:$reclengthsec"); 261 my $intval = $recch % 50; # 0〜49 262 my $startupsleep = $startupsleeptime - $intval; # 3〜52 (VHF 40-51) 263 $reclengthsec = $reclengthsec + $intval + 1; # 264 265 &writelog("tvrecording: DEBUG SLEEP $startupsleeptime:$intval:$startupsleep"); 271 266 272 267 sleep ( $startupsleep); /trunk/install/perl/getxml2db.pl
r21 r18 40 40 if ($ARGV[0] eq "long"){ 41 41 $uri="http://cal.syoboi.jp/cal_chk.php"; 42 #$uri="http://syobocal.orz.hm/cal_chk.php";43 42 &writelog("getxml2db use long mode."); 44 43 }else{ 45 44 $uri="http://cal.syoboi.jp/cal_chk.xml"; 46 #$uri="http://syobocal.orz.hm/cal_chk.xml";47 45 } 48 46 /trunk/install/perl/xmltv2foltia.pl
r27 r1 6 6 #xmltv2foltia.pl 7 7 #XMLTV日本語版の出力するXMLを受け取り、EPGデータベースに挿入します。 8 #9 #↓本家に取り込まれたっぽい(未確認)10 #11 8 #XMLTVは 12 9 # http://www.systemcreate-inc.com/gsxr/pc/mythtv.html#patches 13 10 #のパッチをあてたものを想定しています。オリジナルと比較して、サブタイトルや内容など 14 #より 詳細な内容を取得できます。11 #より秀才な内容を取得できます。 15 12 # 16 13 # usage;perl /usr/bin/tv_grab_jp | ./xmltv2foltia.pl /trunk/install/perl/cron_foltia_dayly.sh
r26 r1 12 12 # XMLTVをつかってEPG番組表インポート 13 13 # 14 /usr/bin/perl /usr/bin/tv_grab_jp --config-file | /home/foltia/perl/xmltv2foltia.pl 15 # 2つの局設定使うような場合 16 #/usr/bin/perl /usr/bin/tv_grab_jp --config-file ~/.xmltv/tv_grab_jp.conf.jcom | /home/foltia/perl/xmltv2foltia.pl 17 #/usr/bin/perl /usr/bin/tv_grab_jp --config-file ~/.xmltv/tv_grab_jp.conf.tvk | /home/foltia/perl/xmltv2foltia.pl 14 # /usr/bin/perl /usr/bin/tv_grab_jp --config-file | /home/foltia/perl/xmltv2foltia.pl 15 /usr/bin/perl /usr/bin/tv_grab_jp --config-file ~/.xmltv/tv_grab_jp.conf.jcom | /home/foltia/perl/xmltv2foltia.pl 16 /usr/bin/perl /usr/bin/tv_grab_jp --config-file ~/.xmltv/tv_grab_jp.conf.tvk | /home/foltia/perl/xmltv2foltia.pl 18 17 19 18 #録画ファイルとテーブルの整合性を更新 /trunk/install/php/folcast.php
r24 r8 20 20 21 21 header('Content-Type: application/rss+xml'); 22 header('Content-Disposition: attachment; filename="folcast.xml"'); 22 23 23 24 24 include("./foltialib.php"); /trunk/install/php/foltialib.php
r21 r1 414 414 $freearea = preg_split ("/[\s,]+/", $hdfreearea[0]); 415 415 416 //exec ( "ps ax | grep ffmpeg", $encoding);417 //exec ( "ps ax | grep faac", $processlock);416 exec ( "ps ax | grep ffmpeg", $encoding); 417 exec ( "ps ax | grep faac", $processlock); 418 418 419 419 print " … … 423 423 "; 424 424 425 //exec('ps ax | grep ffmpeg |grep MP4 ' ,$ffmpegprocesses); 426 $ffmpegprocesses = `ps ax | grep ffmpeg | grep -v grep | wc -l `; 427 428 $uptime = exec('uptime'); 429 430 print "<div style=\"text-align:left;\">"; 431 print "$uptime<br>\n"; 432 print "トラコン稼働数:$ffmpegprocesses<br>\n"; 433 print "</div>"; 425 // print "$freearea[1]<br>$freearea[2]<br>$freearea[3]<br>$freearea[4]<br>$hdfreearea[0]<br>$encoding[0]<br>$processlock[0]</p>\n"; 426 print "$encoding[0]<br>$processlock[0]</p>\n"; 427 428 /* 429 <div style="width:100%;border:1px solid black;text-align:left;"><span style="float:right;">170GB</span> 430 <div style="width:86%;border:1px solid black;background:white;">1.1TB/1.3TB(87%)</div> 431 </div> 432 */ 434 433 435 434 }//end sub /trunk/install/php/selectcaptureimage.php
r25 r1 12 12 13 13 mplayer -ss 00:00:10 -vo jpeg:outdir=/home/foltia/php/tv/691.localized/img/6/ -vf crop=702:468:6:6,scale=160:120,pp=lb -ao null -sstep 14 -v 3 /home/foltia/php/tv/691-6-20060216-0130.m2p 14 15 旧仕様 16 mplayer -ss 00:0:10 -vo jpeg:outdir=./ -ao null -sstep 14 -v 3 ../665-13-20051230-0145.m2p 17 convert -verbose -crop 160x120+1+3 -resize 165x126\! ../*.jpg 14 18 15 19 DCC-JPL Japan/foltia project … … 76 80 print htmlspecialchars($rowdata[2]) . "</a> " ; 77 81 print htmlspecialchars($rowdata[3]) . " "; 78 $tid = $rowdata[0];79 if ($tid > 0){80 print "<a href = \"http://cal.syoboi.jp/tid/$tid/time#$pid\" target=\"_blank\">";81 print htmlspecialchars($rowdata[4]) . "</a> ";82 }else{83 82 print htmlspecialchars($rowdata[4]) . " "; 84 }85 83 print htmlspecialchars($rowdata[1]) . " "; 86 84 print htmlspecialchars($rowdata[6]) . "分 "; … … 88 86 89 87 $mp4filename = $rowdata[9]; 88 $tid = $rowdata[0]; 90 89 $serverfqdn = getserverfqdn(); 91 90 /trunk/install/php/showlibc.php
r23 r1 34 34 <?php 35 35 print "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"./folcast.php?tid=$tid\" /> 36 <title>foltia:Lib $tid</title> 37 </head> 36 38 "; 37 39 if ($tid == "") { 38 print "<title>foltia:Lib</title> 39 </head><body BGCOLOR=\"#ffffff\" TEXT=\"#494949\" LINK=\"#0047ff\" VLINK=\"#000000\" ALINK=\"#c6edff\" > \n"; 40 print "<body BGCOLOR=\"#ffffff\" TEXT=\"#494949\" LINK=\"#0047ff\" VLINK=\"#000000\" ALINK=\"#c6edff\" > \n"; 40 41 printhtmlpageheader(); 41 42 die_exit("再生可能番組がありません<BR>"); 42 43 } 44 43 45 $con = m_connect(); 44 46 $now = date("YmdHi"); 45 47 48 ?> 49 <body BGCOLOR="#ffffff" TEXT="#494949" LINK="#0047ff" VLINK="#000000" ALINK="#c6edff" > 50 <div align="center"> 51 <?php 52 printhtmlpageheader(); 53 ?> 54 <p align="left"><font color="#494949" size="6">録画ライブラリ番組個別表示</font></p> 55 <hr size="4"> 56 <p align="left">再生可能ムービーを表示します。<br> 57 58 <?php 46 59 $query = " 47 60 SELECT foltia_program.title … … 57 70 $title = $title[0]; 58 71 $title = strip_tags($title); 59 $title = htmlspecialchars($title) ;60 72 }else{ 61 73 $rowdata = pg_fetch_row($rs, 0); 62 74 $title = $rowdata[0]; 63 $title = htmlspecialchars($title) ; 64 } 65 //ヘッダ続き 66 print "<title>foltia:Lib $tid:$title</title> 67 </head> 68 <body BGCOLOR=\"#ffffff\" TEXT=\"#494949\" LINK=\"#0047ff\" VLINK=\"#000000\" ALINK=\"#c6edff\" > 69 <div align=\"center\"> 70 "; 71 printhtmlpageheader(); 72 print " <p align=\"left\"><font color=\"#494949\" size=\"6\">録画ライブラリ番組個別表示</font></p> 73 <hr size=\"4\"> 74 <p align=\"left\">再生可能ムービーを表示します。<br>"; 75 76 77 if ($tid == 0){ 78 print "$title 【<A HREF = \"./folcast.php?tid=$tid\">この番組のFolcast</A>】 <br>\n"; 79 }else{ 80 75 } 81 76 print "<a href=\"http://cal.syoboi.jp/tid/" . 82 htmlspecialchars($tid) . "\" target=\"_blank\">$title</a> 【<A HREF = \"./folcast.php?tid=$tid\">この番組のFolcast</A>】 <br>\n"; 83 } 77 htmlspecialchars($tid) . "\" target=\"_blank\">" . 78 htmlspecialchars($title) . "</a> 【<A HREF = \"./folcast.php?tid=$tid\">この番組のFolcast</A>】 <br>\n"; 79 80 84 81 //確認 85 82 if (file_exists ("$recfolderpath/$tid.localized")){ … … 149 146 $subtitle = htmlspecialchars($subtitle); 150 147 $onairdate = htmlspecialchars($onairdate); 151 $pid = htmlspecialchars($rowdata[6]);152 148 $fName = htmlspecialchars($rowdata[7]); 153 149 if (ereg(".MP4", $fName)){ … … 177 173 }//end if sb 178 174 179 print " <tr> 180 <td rowspan=\"4\" width=\"170\"><a href = \"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\"><img src = \"$httpmediamappath/$tid.localized/mp4/$thumbnail\" width = \"160\" height = \"120\"></A></td> 175 print " 176 <tr> 177 <td rowspan=\"4\" width=\"170\"><A HREF=\"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\"><IMG SRC = \"$httpmediamappath/$tid.localized/mp4/$thumbnail\" WIDTH = \"160\" HEIGHT = \"120\"></A></td> 181 178 <td>$count</td> 182 179 </tr> 183 180 <tr> 184 "; 185 if ($tid == 0){ 186 print "\n <td>$subtitle</td>"; 187 }else{ 188 print "\n <td><a href = \"http://cal.syoboi.jp/tid/$tid/time#$pid\" target=\"_blank\">$subtitle</a></td>"; 189 }//if 190 print " </tr> 181 <td>$subtitle</td> 182 </tr> 191 183 <tr> 192 184 <td>$onairdate</td> 193 185 </tr> 194 186 <tr> 195 <td><a href =\"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\">$fName</A> / <script language=\"JavaScript\" type=\"text/javascript\">QT_WriteOBJECT_XHTML('http://g.hatena.ne.jp/images/podcasting.gif','16','16','','controller','FALSE','href','http://$serverfqdn/$httpmediamappath/$tid.localized/mp4/$fName','target','QuickTimePlayer','type','video/mp4');</script> $caplink</td> 196 </tr> 197 "; 187 <td><A HREF=\"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\">$fName</A> / <script language=\"JavaScript\" type=\"text/javascript\">QT_WriteOBJECT_XHTML('http://g.hatena.ne.jp/images/podcasting.gif','16','16','','controller','FALSE','href','http://$serverfqdn/$httpmediamappath/$tid.localized/mp4/$fName','target','QuickTimePlayer','type','video/mp4');</script> $caplink</td> 188 </tr> 189 "; 190 198 191 199 192 }//for … … 201 194 print "録画ファイルがありません<br>\n"; 202 195 }//if 196 197 //旧仕様 198 /* 199 //ディレクトリからファイル一覧を取得 200 exec ("ls $recfolderpath/$tid.localized/mp4/*.MP4", $mp4files); 201 202 if (file_exists("./selectcaptureimage.php") ) { 203 $sbpluginexist = 1; 204 } 205 206 $serverfqdn = getserverfqdn(); 207 208 foreach($mp4files as $pathfName) { 209 $fName = ""; 210 $fNametmp = split("/",$pathfName); 211 $fName = array_pop($fNametmp); 212 if(($fName == ".") or ($fName == "..") ){ continue; } 213 214 if (ereg(".MP4", $fName)){ 215 $thumbnail = $fName; 216 $thumbnail = ereg_replace(".MP4", ".THM", $thumbnail); 217 // $filesplit = split("-",$fName); 218 //print "<!-- FILENAME:$fName:$pathfName:$query -->\n"; 219 $query = ""; 220 221 $query = " 222 SELECT 223 foltia_program.tid, 224 foltia_program.title, 225 foltia_subtitle.countno, 226 foltia_subtitle.subtitle, 227 foltia_subtitle.startdatetime , 228 foltia_subtitle.m2pfilename , 229 foltia_subtitle.pid 230 FROM foltia_subtitle , foltia_program 231 WHERE foltia_subtitle.pspfilename = '$fName' 232 AND foltia_program.tid = foltia_subtitle.tid 233 AND foltia_program.tid = $tid 234 "; 235 //print "<!-- FILENAME:$fName:$pathfName:$query -->\n"; 236 $rs = ""; 237 $rs = m_query($con, $query, "DBクエリに失敗しました"); 238 239 if (pg_num_rows ($rs ) == 0){ 240 241 $count = "[話数]"; 242 $subtitle = "[サブタイトル]"; 243 $onairdate = "[放映日]"; 244 $caplink = ""; 245 }else{ 246 247 $rowdata = pg_fetch_row($rs, $row); 248 $title = $rowdata[1]; 249 250 if ($rowdata[2]== "" ){ 251 $count = "[話数]"; 252 }else{ 253 $count = $rowdata[2]; 254 } 255 if ($rowdata[3]== "" ){ 256 $subtitle = "[サブタイトル]"; 257 }else{ 258 $subtitle = $rowdata[3]; 259 } 260 $onairdate = $rowdata[4]; 261 262 $tid = htmlspecialchars($rowdata[0]); 263 $title = htmlspecialchars($title); 264 $count = htmlspecialchars($count); 265 $subtitle = htmlspecialchars($subtitle); 266 $onairdate = htmlspecialchars($onairdate); 267 268 $day = substr($onairdate,0,4)."/".substr($onairdate,4,2)."/".substr($onairdate,6,2); 269 $time = substr($onairdate,8,2).":".substr($onairdate,10,2); 270 $onairdate = "$day $time"; 271 272 //Starlight Breaker向け拡張 273 //$debug_pg_num_rows = pg_num_rows ($rs ); 274 $caplink = ""; 275 276 if (($sbpluginexist == 1) && (pg_num_rows ($rs ) > 0)){ 277 $capimgpath = htmlspecialchars(preg_replace("/.m2p/", "", $rowdata[5])); 278 if (file_exists("$recfolderpath/$tid.localized/img/$capimgpath") ){ 279 $caplink = " / <a href = \"./selectcaptureimage.php?pid=$rowdata[6]\">キャプ</a>"; 280 }else{ 281 $caplink = " / キャプなし"; 282 } 283 }else{ 284 $caplink = ""; 285 }//end if sb 286 287 } //end if 検索件数が0のとき 288 //-- 289 print " 290 <tr> 291 <td rowspan=\"4\" width=\"170\"><A HREF=\"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\"><IMG SRC = \"$httpmediamappath/$tid.localized/mp4/$thumbnail\" WIDTH = \"160\" HEIGHT = \"120\"></A></td> 292 <td>$count</td> 293 </tr> 294 <tr> 295 <td>$subtitle</td> 296 </tr> 297 <tr> 298 <td>$onairdate</td> 299 </tr> 300 <tr> 301 <td><A HREF=\"$httpmediamappath/$tid.localized/mp4/$fName\" target=\"_blank\">$fName</A> / <script language=\"JavaScript\" type=\"text/javascript\">QT_WriteOBJECT_XHTML('http://g.hatena.ne.jp/images/podcasting.gif','16','16','','controller','FALSE','href','http://$serverfqdn/$httpmediamappath/$tid.localized/mp4/$fName','target','QuickTimePlayer','type','video/mp4');</script> $caplink</td> 302 </tr> 303 "; 304 305 }//end if ereg m2p 306 }//end foreach 307 308 */ 309 //旧仕様ココまで 203 310 ?> 204 311 </tbody>