差分発生行の前後
無視リスト:
コミット日時:
2010/02/28 22:28:26 (14 年前)
コミッタ:
sorshi
ログメッセージ:

SQLite採用

ファイル:

凡例:

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

    r83 r94  
    1313use DBI; 
    1414use DBD::Pg; 
     15use DBD::SQLite; 
    1516use Jcode; 
    1617 
    1718$path = $0; 
    1819$path =~ s/ipodtranscode.pl$//i; 
    19 if ($pwd ne "./"){ 
     20if ($path ne "./"){ 
    2021push( @INC, "$path"); 
    2122} 
     
    3536 
    3637#DB初期化 
    37         my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 
    38                 $DBDriv,$DBName,$DBHost,$DBPort); 
    39          $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 
     38$dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 
    4039 
    4140# タイトル取得 
     
    5756 
    5857while ($counttranscodefiles >= 1){ 
    59  
    60 $DBQuery =  "SELECT foltia_subtitle.pid,foltia_subtitle.tid,foltia_subtitle.m2pfilename,filestatus,foltia_program.aspect ,foltia_subtitle.countno  
    61 FROM foltia_subtitle, foltia_program, foltia_m2pfiles  
    62 WHERE filestatus >= $FILESTATUSRECEND AND filestatus < $FILESTATUSTRANSCODECOMPLETE  AND foltia_program.tid = foltia_subtitle.TID AND foltia_program.PSP = 1  AND foltia_m2pfiles.m2pfilename = foltia_subtitle.m2pfilename  
    63 ORDER BY enddatetime ASC  
    64 LIMIT 1  "; 
    65  
    66 $sth = $dbh->prepare($DBQuery); 
    67 $sth->execute(); 
     58    $sth = $dbh->prepare($stmt{'ipodtranscode.1'}); 
     59    $sth->execute($FILESTATUSRECEND, $FILESTATUSTRANSCODECOMPLETE, ); 
    6860@dbparam = $sth->fetchrow_array; 
    6961#print "$dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]\n"; 
    70 &writelog("ipodtranscode DEBUG $DBQuery"); 
     62#&writelog("ipodtranscode DEBUG $DBQuery"); 
    7163&writelog("ipodtranscode DEBUG $dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]"); 
    7264$pid = $dbparam[0]; 
     
    8678# タイトル取得 
    8779if ($pid ne ""){ 
    88  
    89 $DBQuery =  "SELECT title , countno , subtitle   
    90 FROM  foltia_program, foltia_subtitle  
    91 WHERE foltia_program.tid = foltia_subtitle.tid  
    92 AND foltia_subtitle.pid = $pid "; 
    93 $sth = $dbh->prepare($DBQuery); 
    94 $sth->execute(); 
     80        $sth = $dbh->prepare($stmt{'ipodtranscode.2'}); 
     81        $sth->execute($pid); 
    9582@programtitle = $sth->fetchrow_array; 
    9683$programtitle[0] =~ s/\"/\\"/gi; 
     
    147134} 
    148135 
     136 
    149137$filenamebody = $inputmpeg2 ; 
    150138$filenamebody =~ s/.m2t$|.ts$|.m2p$|.mpg$//gi; 
     139 
    151140#デジタルかアナログか 
    152141if ($inputmpeg2 =~ /m2t$|ts$/i){ 
     
    174163        $ffmpegencopt = " -s 360x202 -deinterlace -r 24.00 -vcodec libx264 -g 300 -b 330000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
    175164        }elsif($trconqty == 2){ 
    176         $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
     165#       $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -g 300 -b 400000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
     166# for ffmpeg 0.5 or later 
     167        $ffmpegencopt = " -s 480x272 -deinterlace -r 29.97 -vcodec libx264 -vpre default   -g 300 -b 400000 -level 13 -sc_threshold 60 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
    177168        }elsif($trconqty == 3){#640x352 
    178         $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
     169#       $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -g 100 -b 600000 -level 13 -loop 1 -sc_threshold 60 -partp4x4 1 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
     170# for ffmpeg 0.5 or later 
     171        $ffmpegencopt = " -s 640x352 -deinterlace -r 29.97 -vcodec libx264 -vpre default   -g 100 -b 600000 -level 13 -sc_threshold 60 -rc_eq 'blurCplx^(1-qComp)' -refs 3 -maxrate 700000 -async 50 -f h264 $filenamebody.264"; 
    179172        } 
    180173        &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); 
     
    246239        # MP4ビルド 
    247240        unlink("${filenamebody}.base.mp4"); 
    248         &changefilestatus($pid,$FILESTATUSTRANSCODEMP4BOX); 
    249         &writelog("ipodtranscode MP4Box $filenamebody"); 
    250                 system ("cd $recfolderpath ; MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 
    251 #$exit_value = $? >> 8; 
    252 #$signal_num = $? & 127; 
    253 #$dumped_core = $? & 128;  
    254 #&writelog("ipodtranscode DEBUG MP4Box -fps 29.97 -add:$exit_value:$signal_num:$dumped_core"); 
    255  
    256         if (-e "$filenamebody.base.mp4"){ 
    257         system ("cd $recfolderpath ; MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 
    258 #$exit_value = $? >> 8; 
    259 #$signal_num = $? & 127; 
    260 #$dumped_core = $? & 128;  
    261 #&writelog("ipodtranscode DEBUG MP4Box -add $filenamebody.aac:$exit_value:$signal_num:$dumped_core"); 
     241        if (-e "$toolpath/perl/tool/MP4Box"){ 
     242                &changefilestatus($pid,$FILESTATUSTRANSCODEMP4BOX); 
     243                &writelog("ipodtranscode MP4Box $filenamebody"); 
     244#                       system ("cd $recfolderpath ; MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 
     245                        system ("cd $recfolderpath ;$toolpath/perl/tool/MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 
     246        $exit_value = $? >> 8; 
     247        $signal_num = $? & 127; 
     248        $dumped_core = $? & 128; 
     249        &writelog("ipodtranscode DEBUG MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4:$exit_value:$signal_num:$dumped_core"); 
     250 
     251         
     252                if (-e "$filenamebody.base.mp4"){ 
     253#               system ("cd $recfolderpath ; MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 
     254                system ("cd $recfolderpath ;$toolpath/perl/tool/MP4Box -add $filenamebody.aac $filenamebody.base.mp4"); 
     255        $exit_value = $? >> 8; 
     256        $signal_num = $? & 127; 
     257        $dumped_core = $? & 128;  
     258        &writelog("ipodtranscode DEBUG MP4Box -add $filenamebody.aac:$exit_value:$signal_num:$dumped_core"); 
     259                }else{ 
     260                $filelist = `ls -lhtr $recfolderpath/${filenamebody}*`; 
     261                $debugenv = `env`; 
     262                &writelog("ipodtranscode ERR File not exist.$debugenv.$filelist ;$filenamebody.base.mp4;$filelist;cd $recfolderpath ;$toolpath/perl/tool/MP4Box -fps 29.97 -add $filenamebody.264 -new $filenamebody.base.mp4"); 
     263                } 
    262264        }else{ 
    263         &writelog("ipodtranscode ERR File not exist.$filenamebody.base.mp4"); 
    264         } 
    265  
    266 
    267  
    268 if ($filestatus <= $FILESTATUSTRANSCODEATOM){ 
    269         unlink("${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
    270         # iPodヘッダ付加 
    271         &changefilestatus($pid,$FILESTATUSTRANSCODEATOM); 
    272         &writelog("ipodtranscode ATOM $filenamebody"); 
    273         #system ("/usr/local/bin/ffmpeg -y -i $filenamebody.base.mp4 -vcodec copy -acodec copy -f ipod ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
    274         system ("cd $recfolderpath ; MP4Box -ipod $filenamebody.base.mp4"); 
    275 $exit_value = $? >> 8; 
    276 $signal_num = $? & 127; 
    277 $dumped_core = $? & 128; 
    278 &writelog("ipodtranscode DEBUG MP4Box -ipod:$exit_value:$signal_num:$dumped_core"); 
    279         system("mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
    280         &writelog("ipodtranscode mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
    281 # ipodtranscode mv /home/foltia/php/tv/1329-21-20080829-0017.base.mp4 /home/foltia/php/tv/1329.localized/mp4/MAQ-/home/foltia/php/tv/1329-21-20080829-0017.MP4 
    282  
     265                &writelog("ipodtranscode WARN; Pls. install $toolpath/perl/tool/MP4Box"); 
     266        } 
     267#} 
     268 
     269#if ($filestatus <= $FILESTATUSTRANSCODEATOM){ 
     270        if (-e "$toolpath/perl/tool/MP4Box"){ 
     271                # iPodヘッダ付加 
     272#               &changefilestatus($pid,$FILESTATUSTRANSCODEATOM); 
     273                &writelog("ipodtranscode ATOM $filenamebody"); 
     274                #system ("/usr/local/bin/ffmpeg -y -i $filenamebody.base.mp4 -vcodec copy -acodec copy -f ipod ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
     275#               system ("cd $recfolderpath ; MP4Box -ipod $filenamebody.base.mp4"); 
     276                system ("cd $recfolderpath ; $toolpath/perl/tool/MP4Box -ipod $filenamebody.base.mp4"); 
     277        $exit_value = $? >> 8; 
     278        $signal_num = $? & 127; 
     279        $dumped_core = $? & 128; 
     280        &writelog("ipodtranscode DEBUG MP4Box -ipod $filenamebody.base.mp4:$exit_value:$signal_num:$dumped_core"); 
     281                if (-e "$filenamebody.base.mp4"){ 
     282                unlink("${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
     283                system("mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
     284                &writelog("ipodtranscode mv $filenamebody.base.mp4 ${mp4outdir}MAQ${mp4filenamestring}.MP4"); 
     285                }else{ 
     286                &writelog("ipodtranscode ERR $filenamebody.base.mp4 Not found."); 
     287                } 
     288        # ipodtranscode mv /home/foltia/php/tv/1329-21-20080829-0017.base.mp4 /home/foltia/php/tv/1329.localized/mp4/MAQ-/home/foltia/php/tv/1329-21-20080829-0017.MP4 
     289        }else{ 
     290                &writelog("ipodtranscode WARN; Pls. install $toolpath/perl/tool/MP4Box"); 
     291        } 
    283292} 
    284293if ($filestatus <= $FILESTATUSTRANSCODECOMPLETE){ 
     294        if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 
    285295        # 中間ファイル消す 
    286296        &changefilestatus($pid,$FILESTATUSTRANSCODECOMPLETE); 
     
    293303         
    294304        &updatemp4file(); 
    295  
     305        }else{ 
     306                &writelog("ipodtranscode ERR ; Fail MAQ${mp4filenamestring}.MP4"); 
     307        } 
    296308} 
    297309 
     
    384396&writelog("ipodtranscode DEBUG thmfilename $thmfilename"); 
    385397 
    386 system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3  -v 3 $outputfilename"); 
    387  
    388 &writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3  -v 3 $outputfilename"); 
    389  
    390 if (-e "$pspdirname/$thmfilename"){ 
    391 $timestamp =`date "+%Y%m%d-%H%M%S"`; 
    392 chomp $timestamp; 
    393         system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename".$timestamp.".THM"); 
     398#system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3  -v 3 $outputfilename"); 
     399
     400#&writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -sstep 1 -frames 3  -v 3 $outputfilename"); 
     401if($outputfilename =~ /.m2t$/){ 
     402#ハイビジョンTS 
     403system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=160:90,expand=160:120 -frames 1 $outputfilename"); 
     404&writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=160:90,expand=160:120 -frames 1 $outputfilename"); 
    394405}else{ 
    395         system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 
    396 
    397 &writelog("ipodtranscode DEBUG convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 
    398  
    399 system("rm -rf $pspdirname/0000000*.jpg "); 
    400 &writelog("ipodtranscode DEBUG rm -rf $pspdirname/0000000*.jpg"); 
     406#アナログ 
     407system ("mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=165:126,crop=160:120 -frames 1 $outputfilename"); 
     408&writelog("ipodtranscode DEBUG mplayer -ss 00:01:20 -vo jpeg:outdir=$pspdirname -ao null -vf framestep=300step,scale=165:126,crop=160:120 -frames 1 $outputfilename"); 
     409
     410#if (-e "$pspdirname/$thmfilename"){ 
     411#       $timestamp = strftime("%Y%m%d-%H%M%S", localtime); 
     412#chomp $timestamp; 
     413#       system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename".$timestamp.".THM"); 
     414#}else{ 
     415#       system("convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 
     416#} 
     417#&writelog("ipodtranscode DEBUG convert -crop 160x120+1+3 -resize 165x126\! $pspdirname/00000002.jpg $pspdirname/$thmfilename"); 
     418 
     419#system("rm -rf $pspdirname/0000000*.jpg "); 
     420#&writelog("ipodtranscode DEBUG rm -rf $pspdirname/0000000*.jpg"); 
     421system("mv $pspdirname/00000001.jpg $pspdirname/$thmfilename"); 
    401422 
    402423}#endsub makethumbnail 
     
    407428if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ 
    408429# MP4ファイル名をPIDレコードに書き込み 
    409         $DBQuery =  "UPDATE foltia_subtitle SET PSPfilename = '$mp4filename' WHERE pid = '$pid' "; 
    410          $sth = $dbh->prepare($DBQuery); 
    411         $sth->execute(); 
    412 &writelog("ipodtranscode UPDATEsubtitleDB $DBQuery"); 
     430        $sth = $dbh->prepare($stmt{'ipodtranscode.updatemp4file.1'}); 
     431        $sth->execute($mp4filename, $pid); 
     432        &writelog("ipodtranscode UPDATEsubtitleDB $stmt{'ipodtranscode.updatemp4file.1'}"); 
    413433 
    414434# MP4ファイル名をfoltia_mp4files挿入 
    415         $DBQuery = "insert into foltia_mp4files values ('$tid','$mp4filename') "; 
    416          $sth = $dbh->prepare($DBQuery); 
    417         $sth->execute(); 
    418 &writelog("ipodtranscode UPDATEmp4DB $DBQuery"); 
     435        $sth = $dbh->prepare($stmt{'ipodtranscode.updatemp4file.2'}); 
     436        $sth->execute($tid, $mp4filename); 
     437        &writelog("ipodtranscode UPDATEmp4DB $stmt{'ipodtranscode.updatemp4file.2'}"); 
    419438 
    420439&changefilestatus($pid,$FILESTATUSALLCOMPLETE); 
     
    427446 
    428447sub counttranscodefiles(){ 
    429 my $DBQuery =  "SELECT count(*) FROM foltia_subtitle, foltia_program, foltia_m2pfiles  
    430 WHERE filestatus >= $FILESTATUSRECEND AND filestatus < $FILESTATUSTRANSCODECOMPLETE  AND foltia_program.tid = foltia_subtitle.TID AND foltia_program.PSP = 1  AND foltia_m2pfiles.m2pfilename = foltia_subtitle.m2pfilename  "; 
    431 $sth = $dbh->prepare($DBQuery); 
    432 $sth->execute(); 
     448    $sth = $dbh->prepare($stmt{'ipodtranscode.counttranscodefiles.1'}); 
     449    $sth->execute($FILESTATUSRECEND, $FILESTATUSTRANSCODECOMPLETE); 
    433450my @titlecount= $sth->fetchrow_array; 
    434451 
track feed