| 48 | | |
|---|
| | 41 | # タイトル取得 |
|---|
| | 42 | #トラコンフラグがたっていてステータス50以上150未満のファイルを古い順にひとつ探す |
|---|
| | 43 | # 数数える |
|---|
| | 44 | #$DBQuery = "SELECT count(*) FROM foltia_subtitle, foltia_program, foltia_m2pfiles |
|---|
| | 45 | #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 "; |
|---|
| | 46 | #$sth = $dbh->prepare($DBQuery); |
|---|
| | 47 | #$sth->execute(); |
|---|
| | 48 | #@titlecount= $sth->fetchrow_array; |
|---|
| | 49 | &writelog("ipodtranscode starting up."); |
|---|
| | 50 | |
|---|
| | 51 | $counttranscodefiles = &counttranscodefiles(); |
|---|
| | 52 | if ($counttranscodefiles == 0){ |
|---|
| | 53 | &writelog("ipodtranscode No MPEG2 files to transcode."); |
|---|
| | 54 | exit; |
|---|
| | 55 | } |
|---|
| | 56 | sleep 30; |
|---|
| | 57 | |
|---|
| | 58 | while ($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(); |
|---|
| | 68 | @dbparam = $sth->fetchrow_array; |
|---|
| | 69 | #print "$dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]\n"; |
|---|
| | 70 | &writelog("ipodtranscode DEBUG $DBQuery"); |
|---|
| | 71 | &writelog("ipodtranscode DEBUG $dbparam[0],$dbparam[1],$dbparam[2],$dbparam[3],$dbparam[4],$dbparam[5]"); |
|---|
| | 72 | $pid = $dbparam[0]; |
|---|
| | 73 | $tid = $dbparam[1]; |
|---|
| | 74 | $inputmpeg2 = $recfolderpath."/".$dbparam[2]; # path付き |
|---|
| | 75 | $mpeg2filename = $dbparam[2]; # pathなし |
|---|
| | 76 | $filestatus = $dbparam[3]; |
|---|
| | 77 | $aspect = $dbparam[4];# 16,1 (超額縁),4,3 |
|---|
| | 78 | $countno = $dbparam[5]; |
|---|
| | 79 | $mp4filenamestring = &mp4filenamestringbuild($pid); |
|---|
| | 80 | |
|---|
| | 81 | &writelog("ipodtranscode DEBUG mp4filenamestring $mp4filenamestring"); |
|---|
| | 82 | #展開ディレクトリ作成 |
|---|
| | 83 | $pspdirname = &makemp4dir($tid); |
|---|
| | 84 | $mp4outdir = $pspdirname ; |
|---|
| | 85 | # 実際のトラコン |
|---|
| 84 | | # アスペクト比 |
|---|
| 85 | | if ($aspect == 16){ |
|---|
| 86 | | $cropopt = " -croptop 70 -cropbottom 60 -cropleft 8 -cropright 14 -aspect 1.7777 "; |
|---|
| 87 | | }else{ |
|---|
| 88 | | $cropopt = " -croptop 8 -cropbottom 8 -cropleft 8 -cropright 14 "; |
|---|
| 89 | | } |
|---|
| | 121 | |
|---|
| | 122 | if ($filestatus <= $FILESTATUSRECEND){ |
|---|
| | 123 | } |
|---|
| | 124 | |
|---|
| | 125 | if ($filestatus <= $FILESTATUSWAITINGCAPTURE){ |
|---|
| | 126 | #なにもしない |
|---|
| | 127 | } |
|---|
| | 128 | |
|---|
| | 129 | if ($filestatus <= $FILESTATUSCAPTURE){ |
|---|
| | 130 | #unlink |
|---|
| | 131 | # Starlight breaker向けキャプチャ画像作成 |
|---|
| | 132 | if (-e "$toolpath/perl/captureimagemaker.pl"){ |
|---|
| | 133 | &writelog("ipodtranscode Call captureimagemaker $mpeg2filename"); |
|---|
| | 134 | &changefilestatus($pid,$FILESTATUSCAPTURE); |
|---|
| | 135 | system ("$toolpath/perl/captureimagemaker.pl $mpeg2filename"); |
|---|
| | 136 | &changefilestatus($pid,$FILESTATUSCAPEND); |
|---|
| | 137 | } |
|---|
| | 138 | } |
|---|
| | 139 | |
|---|
| | 140 | if ($filestatus <= $FILESTATUSCAPEND){ |
|---|
| | 141 | # サムネイル作る |
|---|
| | 142 | &makethumbnail(); |
|---|
| | 143 | &changefilestatus($pid,$FILESTATUSTHMCREATE); |
|---|
| | 144 | } |
|---|
| | 145 | |
|---|
| | 146 | if ($filestatus <= $FILESTATUSWAITINGTRANSCODE){ |
|---|
| | 147 | } |
|---|
| | 148 | |
|---|
| | 149 | $filenamebody = $inputmpeg2 ; |
|---|
| | 150 | $filenamebody =~ s/.m2t$|.ts$|.m2p$|.mpg$//gi; |
|---|
| | 151 | #デジタルかアナログか |
|---|
| | 152 | if ($inputmpeg2 =~ /m2t$|ts$/i){ |
|---|
| | 153 | #print "MPEG2-TS\n"; |
|---|
| | 154 | |
|---|
| | 155 | |
|---|
| | 156 | if ($filestatus <= $FILESTATUSTRANSCODETSSPLITTING){ |
|---|
| | 157 | unlink("${filenamebody}_tss.m2t"); |
|---|
| | 158 | unlink("${filenamebody}_HD.m2t"); |
|---|
| | 159 | } |
|---|
| | 160 | if ($filestatus <= $FILESTATUSTRANSCODEFFMPEG){ |
|---|
| | 161 | |
|---|
| | 162 | # H.264出力 |
|---|
| | 163 | $trcnmpegfile = $inputmpeg2 ; |
|---|
| | 164 | # アスペクト比 |
|---|
| | 165 | if ($aspect == 1){#超額縁 |
|---|
| | 166 | $cropopt = " -croptop 150 -cropbottom 150 -cropleft 200 -cropright 200 "; |
|---|
| | 167 | }elsif($aspect == 4){#SD |
|---|
| | 168 | $cropopt = " -croptop 6 -cropbottom 6 -cropleft 8 -cropright 8 "; |
|---|
| | 169 | }else{#16:9 |
|---|
| | 170 | $cropopt = " -croptop 6 -cropbottom 6 -cropleft 8 -cropright 8 "; |
|---|
| | 171 | } |
|---|
| | 172 | # クオリティごとに |
|---|
| | 173 | if (($trconqty eq "")||($trconqty == 1)){ |
|---|
| | 174 | $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"; |
|---|
| | 175 | }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"; |
|---|
| | 177 | }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"; |
|---|
| | 179 | } |
|---|
| | 180 | &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); |
|---|
| | 181 | &writelog("ipodtranscode ffmpeg $filenamebody.264"); |
|---|
| | 182 | system ("ffmpeg -y -i $trcnmpegfile $cropopt $ffmpegencopt"); |
|---|
| | 183 | |
|---|
| | 184 | #もしエラーになったらTsSplitする |
|---|
| | 185 | if (! -e "$filenamebody.264"){ |
|---|
| | 186 | &changefilestatus($pid,$FILESTATUSTRANSCODETSSPLITTING); |
|---|
| | 187 | unlink("${filenamebody}_tss.m2t"); |
|---|
| | 188 | unlink("${filenamebody}_HD.m2t"); |
|---|
| | 189 | if (-e "$toolpath/perl/tool/tss.py"){ |
|---|
| | 190 | &writelog("ipodtranscode tss $inputmpeg2"); |
|---|
| | 191 | system("$toolpath/perl/tool/tss.py $inputmpeg2"); |
|---|
| | 192 | |
|---|
| | 193 | }else{ |
|---|
| | 194 | # TsSplit |
|---|
| | 195 | &writelog("ipodtranscode TsSplitter $inputmpeg2"); |
|---|
| | 196 | system("wine $toolpath/perl/tool/TsSplitter.exe -EIT -ECM -EMM -SD -1SEG -WAIT2 $inputmpeg2"); |
|---|
| | 197 | } |
|---|
| | 198 | if(-e "${filenamebody}_tss.m2t"){ |
|---|
| | 199 | $trcnmpegfile = "${filenamebody}_tss.m2t"; |
|---|
| | 200 | }elsif (-e "${filenamebody}_HD.m2t"){ |
|---|
| | 201 | $trcnmpegfile = "${filenamebody}_HD.m2t"; |
|---|
| | 202 | }else{ |
|---|
| | 203 | &writelog("ipodtranscode ERR NOT Exist ${filenamebody}_HD.m2t"); |
|---|
| | 204 | $trcnmpegfile = inputmpeg2 ; |
|---|
| | 205 | } |
|---|
| | 206 | #再ffmpeg |
|---|
| | 207 | &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); |
|---|
| | 208 | &writelog("ipodtranscode ffmpeg retry $filenamebody.264"); |
|---|
| | 209 | system ("ffmpeg -y -i $trcnmpegfile $cropopt $ffmpegencopt"); |
|---|
| | 210 | } |
|---|
| | 211 | #もしエラーになったらcropやめる |
|---|
| | 212 | if (! -e "$filenamebody.264"){ |
|---|
| | 213 | #再ffmpeg |
|---|
| | 214 | &changefilestatus($pid,$FILESTATUSTRANSCODEFFMPEG); |
|---|
| | 215 | &writelog("ipodtranscode ffmpeg retry no crop $filenamebody.264"); |
|---|
| | 216 | system ("ffmpeg -y -i $trcnmpegfile $ffmpegencopt"); |
|---|
| | 217 | } |
|---|
| | 218 | } |
|---|
| | 219 | if ($filestatus <= $FILESTATUSTRANSCODEWAVE){ |
|---|
| | 220 | # WAVE出力 |
|---|
| | 221 | unlink("${filenamebody}.wav"); |
|---|
| | 222 | &changefilestatus($pid,$FILESTATUSTRANSCODEWAVE); |
|---|
| | 223 | &writelog("ipodtranscode mplayer $filenamebody.wav"); |
|---|
| | 224 | system ("mplayer $trcnmpegfile -vc null -vo null -ao pcm:file=$filenamebody.wav:fast"); |
|---|
| | 225 | |
|---|
| | 226 | } |
|---|
| | 227 | if ($filestatus <= $FILESTATUSTRANSCODEAAC){ |
|---|
| | 228 | # AAC変換 |
|---|
| | 229 | unlink("${filenamebody}.aac"); |
|---|
| | 230 | &changefilestatus($pid,$FILESTATUSTRANSCODEAAC); |
|---|
| | 231 | if (-e "$toolpath/perl/tool/neroAacEnc"){ |
|---|
| | 232 | if (-e "$filenamebody.wav"){ |
|---|
| | 233 | &writelog("ipodtranscode neroAacEnc $filenamebody.wav"); |
|---|
| | 234 | system ("$toolpath/perl/tool/neroAacEnc -br 128000 -if $filenamebody.wav -of $filenamebody.aac"); |
|---|
| | 235 | }else{ |
|---|
| | 236 | &writelog("ipodtranscode ERR Not Found $filenamebody.wav"); |
|---|
| | 237 | } |
|---|
| | 238 | }else{ |
|---|
| | 239 | #print "DEBUG $toolpath/perl/tool/neroAacEnc\n\n"; |
|---|
| | 240 | &writelog("ipodtranscode faac $filenamebody.wav"); |
|---|
| | 241 | system ("faac -b 128 -o $filenamebody.aac $filenamebody.wav "); |
|---|
| | 242 | } |
|---|
| | 243 | |
|---|
| | 244 | } |
|---|
| | 245 | if ($filestatus <= $FILESTATUSTRANSCODEMP4BOX){ |
|---|
| | 246 | # MP4ビルド |
|---|
| | 247 | 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"); |
|---|
| | 262 | }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 | |
|---|
| | 283 | } |
|---|
| | 284 | if ($filestatus <= $FILESTATUSTRANSCODECOMPLETE){ |
|---|
| | 285 | # 中間ファイル消す |
|---|
| | 286 | &changefilestatus($pid,$FILESTATUSTRANSCODECOMPLETE); |
|---|
| | 287 | unlink("${filenamebody}_HD.m2t"); |
|---|
| | 288 | unlink("${filenamebody}_tss.m2t"); |
|---|
| | 289 | unlink("$filenamebody.264"); |
|---|
| | 290 | unlink("$filenamebody.wav"); |
|---|
| | 291 | unlink("$filenamebody.aac"); |
|---|
| | 292 | unlink("$filenamebody.base.mp4"); |
|---|
| | 293 | |
|---|
| | 294 | &updatemp4file(); |
|---|
| | 295 | |
|---|
| | 296 | } |
|---|
| | 297 | |
|---|
| | 298 | }else{ #デジタルかアナログか |
|---|
| | 299 | #print "MPEG2\n"; |
|---|
| | 300 | # アスペクト比 |
|---|
| | 301 | if ($aspect == 16){ |
|---|
| | 302 | $cropopt = " -croptop 70 -cropbottom 60 -cropleft 8 -cropright 14 -aspect 16:9 "; |
|---|
| | 303 | }else{ |
|---|
| | 304 | $cropopt = " -croptop 8 -cropbottom 8 -cropleft 8 -cropright 14 "; |
|---|
| | 305 | } |
|---|
| 126 | | |
|---|
| 127 | | &writelog("ipodtranscode mp4psp -p $mp4file $movietitleeuc"); |
|---|
| 128 | | system("/usr/local/bin/mp4psp -p $mp4file '$movietitleeuc' "); |
|---|
| 129 | | &writelog("ipodtranscode mp4psp COMPLETE $mp4file "); |
|---|
| 130 | | |
|---|
| | 352 | &changefilestatus($pid,$FILESTATUSTRANSCODECOMPLETE); |
|---|
| | 353 | #もう要らなくなった #2008/11/14 |
|---|
| | 354 | #&writelog("ipodtranscode mp4psp -p $mp4file $movietitleeuc"); |
|---|
| | 355 | #system("/usr/local/bin/mp4psp -p $mp4file '$movietitleeuc' "); |
|---|
| | 356 | #&writelog("ipodtranscode mp4psp COMPLETE $mp4file "); |
|---|
| | 357 | |
|---|
| | 358 | &updatemp4file(); |
|---|
| | 359 | }#endif #デジタルかアナログか |
|---|
| | 360 | |
|---|
| | 361 | $counttranscodefiles = &counttranscodefiles(); |
|---|
| | 362 | ############################ |
|---|
| | 363 | #一回で終らせるように |
|---|
| | 364 | #exit; |
|---|
| | 365 | }# end while |
|---|
| | 366 | #残りファイルがゼロなら |
|---|
| | 367 | &writelog("ipodtranscode ALL COMPLETE"); |
|---|
| | 368 | exit; |
|---|
| | 369 | |
|---|
| | 370 | #----------------------------------------------------------------------- |
|---|
| | 371 | sub mp4filenamestringbuild(){ |
|---|
| | 372 | #ファイル名決定 |
|---|
| | 373 | #1329-19-20080814-2337.m2t |
|---|
| | 374 | my @mpegfilename = split(/\./,$dbparam[2]) ; |
|---|
| | 375 | my $pspfilname = "-".$mpegfilename[0] ; |
|---|
| | 376 | return("$pspfilname"); |
|---|
| | 377 | }#end sub mp4filenamestringbuild |
|---|
| | 378 | |
|---|
| | 379 | |
|---|
| | 380 | sub makethumbnail(){ |
|---|
| | 381 | #サムネール |
|---|
| | 382 | my $outputfilename = $inputmpeg2 ;#フルパス |
|---|
| | 383 | my $thmfilename = "MAQ${mp4filenamestring}.THM"; |
|---|
| | 384 | &writelog("ipodtranscode DEBUG thmfilename $thmfilename"); |
|---|
| | 385 | |
|---|
| | 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"); |
|---|
| | 394 | }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"); |
|---|
| | 401 | |
|---|
| | 402 | }#endsub makethumbnail |
|---|
| | 403 | |
|---|
| | 404 | sub updatemp4file(){ |
|---|
| | 405 | my $mp4filename = "MAQ${mp4filenamestring}.MP4"; |
|---|
| | 406 | |
|---|
| | 407 | if (-e "${mp4outdir}MAQ${mp4filenamestring}.MP4"){ |
|---|
| | 408 | # 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"); |
|---|
| | 413 | |
|---|
| | 414 | # 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"); |
|---|
| | 419 | |
|---|
| | 420 | &changefilestatus($pid,$FILESTATUSALLCOMPLETE); |
|---|
| | 421 | }else{ |
|---|
| | 422 | &writelog("ipodtranscode ERR MP4 NOT EXIST $pid/$mp4filename"); |
|---|
| | 423 | } |
|---|
| | 424 | |
|---|
| | 425 | |
|---|
| | 426 | }#updatemp4file |
|---|
| | 427 | |
|---|
| | 428 | sub 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(); |
|---|
| | 433 | my @titlecount= $sth->fetchrow_array; |
|---|
| | 434 | |
|---|
| | 435 | return ($titlecount[0]); |
|---|
| | 436 | |
|---|
| | 437 | |
|---|
| | 438 | } |
|---|