チェンジセット 115

差分発生行の前後
無視リスト:
コミット日時:
2010/09/30 18:37:06 (14 年前)
コミッタ:
sorshi
ログメッセージ:

recpt1を使う環境でBS/CSが録れていなかった問題を解消。
EPG録画の時のファイル名をデジタル録画の場合は録画チャンネルに変更。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/install/perl/digitaltvrecording.pl

    r111 r115  
    55# 
    66#digitaltvrecording.pl 
    7 # friioをはじめとするデジタル録画プログラムを呼びだす録画モジュール。 
     7# PT1,PT2,friioをはじめとするデジタル録画プログラムを呼びだす録画モジュール。 
    88# 
    99#usage digitaltvrecording.pl bandtype ch length(sec) [stationid] [sleeptype] [filename] [TID] [NO] [unittype] 
     
    134134}#end prepare 
    135135 
    136 sub calldigitalrecorderOld{ 
    137 
    138 
    139 #いまんところ白friioと黒friioのみ 
    140 
    141 
    142 my $oserr = 0; 
    143  
    144 if ($bandtype == 0){ 
    145 # 地デジ friio 
    146 # b25,recfriioがあるか確認 
    147         if ((-e "$toolpath/perl/tool/b25") && (-e "$toolpath/perl/tool/recfriio")){ 
    148         my $friiofifo = "$outputpath"."fifo-friio-"."$outputfilewithoutpath"; 
    149         my $b25fifo = "$outputpath"."fifo-b25-"."$outputfilewithoutpath"; 
    150          
    151                 if ((-e "$friiofifo") || (-e "$b25fifo")){ 
    152                         &writelog("digitaltvrecording :ABORT :fifo is exist. It may be overwrite recording."); 
    153                         exit 1; 
    154                 }else{  
    155                 system ("mkfifo $friiofifo $b25fifo"); 
    156                 # mkfifo fifo-friio-9999-01-20080810.m2t  fifo-b25-9999-01-20080810.m2t  
    157                 &writelog("digitaltvrecording DEBUG mkfifo $friiofifo $b25fifo: $?."); 
    158         # /home/foltia/perl/recfriio 27 30 ./fifo-friio-9999-01-20080810.m2t & /home/foltia/perl/b25 ./fifo-friio-9999-01-20080810.m2t  ./fifo-b25-9999-01-20080810.m2t & dd if=./fifo-b25-9999-01-20080810.m2t  of=/home/foltia/php/tv/9999-01-20080810.m2t bs=1M skip=10 
    159 #               system("$toolpath/perl/tool/recfriio $recch $reclengthsec $friiofifo & "); 
    160 #               system("$toolpath/perl/tool/b25 $friiofifo $b25fifo &"); 
    161 #               system("dd if=$b25fifo  of=$outputfile bs=1M skip=10"); 
    162                 &writelog("digitaltvrecording DEBUG $toolpath/perl/tool/recfriio $recch $reclengthsec $friiofifo & dd if=$friiofifo  of=$b25fifo bs=1M skip=10 & $toolpath/perl/tool/b25 $b25fifo $outputfile: $?."); 
    163                 system("dd if=$friiofifo  of=$b25fifo bs=1M skip=10 & $toolpath/perl/tool/b25 $b25fifo $outputfile &"); 
    164                 $oserr = system("$toolpath/perl/tool/recfriio $recch $reclengthsec $friiofifo  "); 
    165                 $oserr = $oserr >> 8; 
    166                 system ("rm -rf $friiofifo $b25fifo"); 
    167                 &writelog("digitaltvrecording DEBUG rm -rf $friiofifo $b25fifo: $?."); 
    168                         if ($oserr > 0){ 
    169                         #               print "RECFRIIO RETURNS:$oserr\n"; 
    170                         &writelog("digitaltvrecording :ERROR :friio is BUSY."); 
    171                         # kill dd 
    172                         $ddpid = `ps a | grep $friiofifo | grep -v grep`; 
    173                         @ddpid = split(/ /,$ddpid); 
    174                         $ddpid = $ddpid[0]; 
    175                         chomp($ddpid); 
    176                         $killcmd = "kill ".$ddpid; 
    177                         system($killcmd); 
    178                         &writelog("digitaltvrecording :DEBUG dd killed:$killcmd"); 
    179  
    180                         #kill b25 
    181                         $b25pid = `ps a | grep $b25fifo |   grep -v grep`; 
    182                         @b25pid = split(/ /,$b25pid); 
    183                         $b25pid = $b25pid[0]; 
    184                         chomp($b25pid); 
    185                         $killcmd = "kill ".$b25pid; 
    186                         system($killcmd); 
    187                         &writelog("digitaltvrecording :DEBUG b25 killed:$killcmd"); 
    188  
    189                         system ("rm -rf $outputfile"); 
    190  
    191                         exit 2; 
    192                         } 
    193                 } 
    194         }else{ # エラー b25とrecfriioがありません 
    195                 &writelog("digitaltvrecording :ERROR :recfriio or b25 not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriio."); 
    196         exit 1; 
    197         } 
    198  
    199 }elsif($bandtype == 1){ 
    200  
    201 # BS/CS friio 
    202 # b25,recfriioがあるか確認 
    203         if ((-e "$toolpath/perl/tool/b25") && (-e "$toolpath/perl/tool/recfriiobs")){ 
    204         my $friiofifo = "$outputpath"."fifo-friioBS-"."$outputfilewithoutpath"; 
    205         my $b25fifo = "$outputpath"."fifo-b25-"."$outputfilewithoutpath"; 
    206          
    207                 if ((-e "$friiofifo") || (-e "$b25fifo")){ 
    208                         &writelog("digitaltvrecording :ABORT :fifo is exist. It may be overwrite recording."); 
    209                         exit 1; 
    210                 }else{  
    211                 system ("mkfifo $friiofifo $b25fifo"); 
    212                 &writelog("digitaltvrecording DEBUG mkfifo $friiofifo $b25fifo: $?."); 
    213                 #recfriiobs用チャンネルリマップ 
    214                 if ($recch == 101) { 
    215                         $bssplitflag = $recch; 
    216                         $recch = 22;#22 : NHK BS1/BS2  
    217                 }elsif($recch == 102){ 
    218                         $bssplitflag = $recch; 
    219                         $recch = 22;#22 : NHK BS1/BS2  
    220                 }elsif($recch == 103){ 
    221                         $recch = 23;#23 : NHK hi   
    222                 }elsif($recch == 141){ 
    223                         $recch = 20;# 20 : BS-NTV   
    224                 }elsif($recch == 151){ 
    225                         $recch = 13;#13 : BS-Asahi  
    226                 }elsif($recch == 161){ 
    227                         $recch = 14;#14 : BS-i   
    228                 }elsif($recch == 171){ 
    229                         $recch = 16;#16 : BS-Japan  
    230                 }elsif($recch == 181){ 
    231                         $recch = 21;#21 : BS-Fuji  
    232                 }elsif($recch == 191){ 
    233                         $recch = 15;#15 : WOWOW  
    234                 }elsif($recch == 192){ 
    235                         $recch = 15;#15 : WOWOW  
    236                 }elsif($recch == 193){ 
    237                         $recch = 15;#15 : WOWOW  
    238                 }elsif($recch == 211){ 
    239                         $recch = 17;#17 : BS11   
    240                 }else{ 
    241                         $recch = 19;#19 : TwellV  
    242                 } 
    243                 &writelog("digitaltvrecording DEBUG $toolpath/perl/tool/recfriiobs $recch $reclengthsec $friiofifo & dd if=$friiofifo  of=$b25fifo bs=1M skip=10 & $toolpath/perl/tool/b25 $b25fifo $outputfile : $?."); 
    244                 system("dd if=$friiofifo  of=$b25fifo bs=1M skip=10 & $toolpath/perl/tool/b25 $b25fifo $outputfile  &"); 
    245                 $oserr = system("$toolpath/perl/tool/recfriiobs $recch $reclengthsec $friiofifo  "); 
    246                 $oserr = $oserr >> 8; 
    247  
    248                 system ("rm -rf $friiofifo $b25fifo"); 
    249                 &writelog("digitaltvrecording DEBUG rm -rf $friiofifo $b25fifo: $?."); 
    250                         if ($oserr > 0){ 
    251                         #               print "RECFRIIO RETURNS:$oserr\n"; 
    252                         &writelog("digitaltvrecording :ERROR :friioBS is BUSY."); 
    253                         # kill dd 
    254                         $ddpid = `ps a | grep $friiofifo | grep -v grep`; 
    255                         @ddpid = split(/ /,$ddpid); 
    256                         $ddpid = $ddpid[0]; 
    257                         chomp($ddpid); 
    258                         $killcmd = "kill ".$ddpid; 
    259                         system($killcmd); 
    260                         &writelog("digitaltvrecording :DEBUG dd killed:$killcmd"); 
    261  
    262                         #kill b25 
    263                         $b25pid = `ps a | grep $b25fifo |   grep -v grep`; 
    264                         @b25pid = split(/ /,$b25pid); 
    265                         $b25pid = $b25pid[0]; 
    266                         chomp($b25pid); 
    267                         $killcmd = "kill ".$b25pid; 
    268                         system($killcmd); 
    269                         &writelog("digitaltvrecording :DEBUG b25 killed:$killcmd"); 
    270  
    271                         system ("rm -rf $outputfile"); 
    272  
    273                         exit 2; 
    274                         } 
    275                  
    276                 #BS1/BS2などのスプリットを 
    277                 if ($bssplitflag == 101){ 
    278                         if (-e "$toolpath/perl/tool/TsSplitter.exe"){ 
    279                         # BS1            
    280                         system("wine $toolpath/perl/tool/TsSplitter.exe  -EIT -ECM  -EMM  -OUT \"$outputpath\" -HD  -SD2 -SD3 -1SEG  -LOGFILE -WAIT2 $outputfile"); 
    281                         $splitfile = $outputfile; 
    282                         $splitfile =~ s/\.m2t$/_SD1.m2t/; 
    283                                 if (-e "$splitfile"){ 
    284                                 system("rm -rf $outputfile ; mv $splitfile $outputfile"); 
    285                                 &writelog("digitaltvrecording DEBUG rm -rf $outputfile ; mv $splitfile $outputfile: $?."); 
    286                                 }else{ 
    287                                 &writelog("digitaltvrecording ERROR File not found:$splitfile."); 
    288                                 } 
    289                         }else{ 
    290                         &writelog("digitaltvrecording ERROR $toolpath/perl/tool/TsSplitter.exe not found."); 
    291                         } 
    292                 }elsif($bssplitflag == 102){ 
    293                         if (-e "$toolpath/perl/tool/TsSplitter.exe"){ 
    294                         # BS2            
    295                         system("wine $toolpath/perl/tool/TsSplitter.exe  -EIT -ECM  -EMM  -OUT \"$outputpath\" -HD  -SD1 -SD3 -1SEG  -LOGFILE -WAIT2 $outputfile"); 
    296                         $splitfile = $outputfile; 
    297                         $splitfile =~ s/\.m2t$/_SD2.m2t/; 
    298                                 if (-e "$splitfile"){ 
    299                                 system("rm -rf $outputfile ; mv $splitfile $outputfile"); 
    300                                 &writelog("digitaltvrecording DEBUG rm -rf $outputfile ; mv $splitfile $outputfile: $?."); 
    301                                 }else{ 
    302                                 &writelog("digitaltvrecording ERROR File not found:$splitfile."); 
    303                                 } 
    304                         }else{ 
    305                         &writelog("digitaltvrecording ERROR $toolpath/perl/tool/TsSplitter.exe not found."); 
    306                         } 
    307                 }else{ 
    308                         &writelog("digitaltvrecording DEBUG not split TS.$bssplitflag"); 
    309                 }# endif #BS1/BS2などのスプリットを 
    310                  
    311                 } 
    312         }else{ # エラー b25とrecfriioがありません 
    313                 &writelog("digitaltvrecording :ERROR :recfriiobs or b25 not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriiobs."); 
    314         exit 1; 
    315         } 
    316 }elsif($bandtype == 2){ 
    317 }else{ 
    318         &writelog("digitaltvrecording :ERROR :Unsupported and type (digital CS)."); 
    319         exit 3; 
    320 
    321  
    322  
    323  
    324 }#end calldigitalrecorderOld 
     136 
    325137#------------------------------------------------------------------------------------ 
    326138# 
     
    332144my $oserr = 0; 
    333145my $originalrecch = $recch; 
     146my $pt1recch =  $recch; 
    334147my $errorflag = 0; 
    335148if ($bandtype == 0){ 
    336149# 地デジ friio 
     150 
    337151}elsif($bandtype == 1){ 
    338152# BS/CS friio 
     
    362176                }elsif($recch == 193){ 
    363177                        $recch = "b3";#15 : WOWOW  
     178                }elsif($recch == 200){ 
     179                        $recch = "b6";# b6 # Star Channel 
    364180                }elsif($recch == 211){ 
    365181                        $recch = "b5";#17 : BS11   
     
    367183                        $recch = "b7";#19 : TwellV  
    368184                } 
    369                 # b6 # Star Channel 
     185#PT1はそのまま通る 
    370186 
    371187}elsif($bandtype == 2){ 
    372188# recpt1でのみ動作確認 
    373                 if ($recch == 333) { 
    374                         $recch = "CS16";#333ch:アニメシアターX(AT-X)  
    375                 #}elsif($recch == 330){ 
    376                 #       $recch = "CS22";#330ch:キッズステーション #HD化により2010/4変更  
    377                 }elsif($recch == 335){ 
    378                         $recch = "CS8";#335ch:キッズステーション HD 
    379                 }elsif($recch == 332){ 
    380                         $recch = "CS20";#332ch:アニマックス  
    381                 }else{ 
    382                         $recch = "CS16";#333ch:アニメシアターX(AT-X)  
    383                 } 
    384  
     189                if($recch == 335){ 
     190                $pt1recch = "CS8";#335ch:キッズステーション HD 
     191        }elsif($recch == 237){ 
     192                $pt1recch = "CS2";#237ch:スター・チャンネル プラス 
     193        }elsif($recch == 239){ 
     194                $pt1recch = "CS2";#239ch:日本映画専門チャンネルHD 
     195        }elsif($recch == 306){ 
     196                $pt1recch = "CS2";#306ch:フジテレビCSHD 
     197        }elsif($recch == 100){ 
     198                $pt1recch = "CS4";#100ch:e2プロモ 
     199        }elsif($recch == 256){ 
     200                $pt1recch = "CS4";#256ch:J sports ESPN 
     201        }elsif($recch == 312){ 
     202                $pt1recch = "CS4";#312ch:FOX 
     203        }elsif($recch == 322){ 
     204                $pt1recch = "CS4";#322ch:スペースシャワーTV 
     205        }elsif($recch == 331){ 
     206                $pt1recch = "CS4";#331ch:カートゥーンネットワーク 
     207        }elsif($recch == 194){ 
     208                $pt1recch = "CS4";#194ch:インターローカルTV 
     209        }elsif($recch == 334){ 
     210                $pt1recch = "CS4";#334ch:トゥーン・ディズニー 
     211        }elsif($recch == 221){ 
     212                $pt1recch = "CS6";#221ch:東映チャンネル  
     213        }elsif($recch == 222){ 
     214                $pt1recch = "CS6";#222ch:衛星劇場 
     215        }elsif($recch == 223){ 
     216                $pt1recch = "CS6";#223ch:チャンネルNECO 
     217        }elsif($recch == 224){ 
     218                $pt1recch = "CS6";#224ch:洋画★シネフィル・イマジカ 
     219        }elsif($recch == 292){ 
     220                $pt1recch = "CS6";#292ch:時代劇専門チャンネル 
     221        }elsif($recch == 238){ 
     222                $pt1recch = "CS6";#238ch:スター・チャンネル クラシック 
     223        }elsif($recch == 310){ 
     224                $pt1recch = "CS6";#310ch:スーパー!ドラマTV 
     225        }elsif($recch == 311){ 
     226                $pt1recch = "CS6";#311ch:AXN 
     227        }elsif($recch == 343){ 
     228                $pt1recch = "CS6";#343ch:ナショナルジオグラフィックチャンネル 
     229        }elsif($recch == 055){ 
     230                $pt1recch = "CS8";#055ch:ショップ チャンネル 
     231        }elsif($recch == 228){ 
     232                $pt1recch = "CS10";#228ch:ザ・シネマ 
     233        }elsif($recch == 800){ 
     234                $pt1recch = "CS10";#800ch:スカチャンHD800 
     235        }elsif($recch == 801){ 
     236                $pt1recch = "CS10";#801ch:スカチャン801 
     237        }elsif($recch == 802){ 
     238                $pt1recch = "CS10";#802ch:スカチャン802 
     239        }elsif($recch == 260){ 
     240                $pt1recch = "CS12";#260ch:ザ・ゴルフ・チャンネル 
     241        }elsif($recch == 303){ 
     242                $pt1recch = "CS12";#303ch:テレ朝チャンネル 
     243        }elsif($recch == 323){ 
     244                $pt1recch = "CS12";#323ch:MTV 324ch:大人の音楽専門TV◆ミュージック・エア 
     245        }elsif($recch == 352){ 
     246                $pt1recch = "CS12";#352ch:朝日ニュースター 
     247        }elsif($recch == 353){ 
     248                $pt1recch = "CS12";#353ch:BBCワールドニュース 
     249        }elsif($recch == 354){ 
     250                $pt1recch = "CS12";#354ch:CNNj 
     251        }elsif($recch == 361){ 
     252                $pt1recch = "CS12";#361ch:ジャスト・アイ インフォメーション 
     253        }elsif($recch == 251){ 
     254                $pt1recch = "CS14";#251ch:J sports 1 
     255        }elsif($recch == 252){ 
     256                $pt1recch = "CS14";#252ch:J sports 2 
     257        }elsif($recch == 253){ 
     258                $pt1recch = "CS14";#253ch:J sports Plus 
     259        }elsif($recch == 254){ 
     260                $pt1recch = "CS14";#254ch:GAORA 
     261        }elsif($recch == 255){ 
     262                $pt1recch = "CS14";#255ch:スカイ・Asports+ 
     263        }elsif($recch == 305){ 
     264                $pt1recch = "CS16";#305ch:チャンネル銀河 
     265        }elsif($recch == 333){ 
     266                $pt1recch = "CS16";#333ch:アニメシアターX(AT-X) 
     267        }elsif($recch == 342){ 
     268                $pt1recch = "CS16";#342ch:ヒストリーチャンネル 
     269        }elsif($recch == 290){ 
     270                $pt1recch = "CS16";#290ch:TAKARAZUKA SKYSTAGE 
     271        }elsif($recch == 803){ 
     272                $pt1recch = "CS16";#803ch:スカチャン803 
     273        }elsif($recch == 804){ 
     274                $pt1recch = "CS16";#804ch:スカチャン804 
     275        }elsif($recch == 240){ 
     276                $pt1recch = "CS18";#240ch:ムービープラスHD 
     277        }elsif($recch == 262){ 
     278                $pt1recch = "CS18";#262ch:ゴルフネットワーク 
     279        }elsif($recch == 314){ 
     280                $pt1recch = "CS18";#314ch:LaLa HDHV 
     281        }elsif($recch == 258){ 
     282                $pt1recch = "CS20";#258ch:フジテレビ739 
     283        }elsif($recch == 302){ 
     284                $pt1recch = "CS20";#302ch:フジテレビ721 
     285        }elsif($recch == 332){ 
     286                $pt1recch = "CS20";#332ch:アニマックス 
     287        }elsif($recch == 340){ 
     288                $pt1recch = "CS20";#340ch:ディスカバリーチャンネル 
     289        }elsif($recch == 341){ 
     290                $pt1recch = "CS20";#341ch:アニマルプラネット 
     291        }elsif($recch == 160){ 
     292                $pt1recch = "CS22";#160ch:C-TBSウェルカムチャンネル 
     293        }elsif($recch == 161){ 
     294                $pt1recch = "CS22";#161ch:QVC 
     295        }elsif($recch == 185){ 
     296                $pt1recch = "CS22";#185ch:プライム365.TV 
     297        }elsif($recch == 293){ 
     298                $pt1recch = "CS22";#293ch:ファミリー劇場 
     299        }elsif($recch == 301){ 
     300                $pt1recch = "CS22";#301ch:TBSチャンネル 
     301        }elsif($recch == 304){ 
     302                $pt1recch = "CS22";#304ch:ディズニー・チャンネル 
     303        }elsif($recch == 325){ 
     304                $pt1recch = "CS22";#325ch:MUSIC ON! TV 
     305        #}elsif($recch == 330){ 
     306        #       $pt1recch = "CS22";#330ch:キッズステーション  #HD化により2010/4変更 
     307        }elsif($recch == 351){ 
     308                $pt1recch = "CS22";#351ch:TBSニュースバード 
     309        }elsif($recch == 257){ 
     310                $pt1recch = "CS24";#ch:日テレG+ 
     311        }elsif($recch == 291){ 
     312                $pt1recch = "CS24";#ch:fashiontv 
     313        }elsif($recch == 300){ 
     314                $pt1recch = "CS24";#ch:日テレプラス 
     315        }elsif($recch == 320){ 
     316                $pt1recch = "CS24";#ch:安らぎの音楽と風景/エコミュージックTV 
     317        }elsif($recch == 321){ 
     318                $pt1recch = "CS24";#ch:MusicJapan TV 
     319        }elsif($recch == 350){ 
     320                $pt1recch = "CS24";#ch:日テレNEWS24 
     321        }# end if CSリマップ 
    385322 
    386323}else{ 
     
    393330        if  (-e "$toolpath/perl/tool/recpt1"){ 
    394331                if ($bandtype >= 1){ #BS/CSなら 
    395                 #[foltia@velvia tool]$ ./recpt1 --b25 --sid 333 CS16 180 ~/php/tv/atxtest.m2t 
    396                 &writelog("digitaltvrecording DEBUGrecpt1 --b25 --sid $originalrecch  $recch $reclengthsec $outputfile   "); 
    397                 $oserr = system("$toolpath/perl/tool/recpt1 --b25 --sid $originalrecch  $recch $reclengthsec $outputfile  "); 
    398                 }else{  
     332                &writelog("digitaltvrecording DEBUG recpt1 --b25 --sid $originalrecch  $pt1recch $reclengthsec $outputfile   "); 
     333                $oserr = system("$toolpath/perl/tool/recpt1 --b25 --sid $originalrecch $pt1recch $reclengthsec $outputfile  "); 
     334                }else{ #地デジ 
    399335                &writelog("digitaltvrecording DEBUG recpt1 --b25  $originalrecch $reclengthsec $outputfile  "); 
    400336                $oserr = system("$toolpath/perl/tool/recpt1 --b25  $originalrecch $reclengthsec $outputfile  "); 
     
    427363                        exit 2; 
    428364                        } 
    429         }else{ # エラー recfriioがありません 
    430                 &writelog("digitaltvrecording :ERROR :recfriio  not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriio."); 
    431         exit 1; 
    432         } 
    433 }#end if errorflag 
    434365 
    435366#BS1/BS2などのスプリットを 
     
    468399}# endif #BS1/BS2などのスプリットを 
    469400 
     401        }else{ # エラー recfriioがありません 
     402                &writelog("digitaltvrecording :ERROR :recfriio  not found. You must install $toolpath/perl/tool/b25 and $toolpath/perl/tool/recfriio."); 
     403        exit 1; 
     404        } 
     405}#end if errorflag 
    470406}#end calldigitalrecorder 
    471407 
  • trunk/install/perl/recwrap.pl

    r110 r115  
    6363 
    6464if ($tid == 0){ 
     65        if ($usedigital == 1){ 
     66                $outputfilename = "0--".$outputfile."-".$digitalch.$extension; 
     67                $mp4newstylefilename = "-0--".$outputfile."-".$digitalch; 
     68        }else{ 
    6569                $outputfilename = "0--".$outputfile."-".$recch.$extension; 
    6670                $mp4newstylefilename = "-0--".$outputfile."-".$recch; 
     71        } 
    6772}else{ 
    6873        if ($countno == 0){ 
track feed