HandBrakeCLIで変換スクリプト(PowerShell)

isoファイルとかtsファイルとか、
たまったものをメディアサーバーにそのまま置いておくのもかさばるので、残しておくなら極力x264やらエンコードしておいときたい。

ということで、
ICT備忘録さんで掲載されていたコードを参考にさせてもらってスクリプトにしてみた。

海外ドラマみたいに2話入っているものはこうしないと1話分しか対象とならない事があるからとりあえず2回ループさせてる。
大分適当な対応。(汗

Param(
[switch]$shutdown
)

#Configure
#----------------------------
$HandBrakeEXE = "C:\Program Files\HandBrake\HandBrakeCLI.exe"  #HandBrakeのpath
$InputFilePATH = "F:\Titles\"  #変換する対象ファイルを配置するディレクトリ
$FileTo = "F:\TitlesTo"  #変換済みのファイルを移すディレクトリ

#指定したフォルダを再帰的に処理するので、フォルダでグルーピングして
#渡せば、そのまま変換済みファイルができあがる。
#ただし、処理済みはまとまってしまうので、複写して渡した方が良いかもしれない。

#----------------------------

Function Enc{
	#再帰的処理が不要の場合、-Recurseを削除のこと。
	$filelist = Get-ChildItem $InputFilePATH -Recurse -filter *.iso
	
	$num = $filelist | measure
	$filecount = $num.count
	
	$i = 0;
	ForEach ($file in $filelist)
	{
	    $i++;
	    $oldfile = $file.DirectoryName + "\" + $file.BaseName + $file.Extension;
	    
	    
	    $progress = ($i / $filecount) * 100
	    $progress = [Math]::Round($progress,2)
	    
	    Clear-Host
	    Write-Host -------------------------------------------------------------------------------
	    Write-Host Handbrake Batch Encoding
	    Write-Host "Processing - $oldfile"
	    Write-Host "File $i of $filecount - $progress%"
	    Write-Host -------------------------------------------------------------------------------
	    
	    for ($title=1; $title -le 2; $title++) {
			$newfile = $file.DirectoryName + "\" + $file.BaseName + "-title" + $title + ".mkv";
			
			#x265エンコード設定 DVDISO to mkv
			#Start-Process -FilePath $HandBrakeEXE -ArgumentList &quot;-i <code>&quot;$oldfile</code>&quot; --title $title -o <code>&quot;$newfile</code>&quot; -f mkv  -w 720 --crop 0:0:0:0 --loose-anamorphic  --modulus 2 -e x265 -q 20 --cfr -a 1 -E av_aac -6 dpl2 -R Auto -B 160 -D 0 --gain 0 --audio-fallback ac3 --subtitle 1 --subtitle-burned=1 --markers --encoder-preset=veryfast --verbose=1&quot; -Wait -NoNewWindow
	    	
	    	#x264エンコード設定 DVDISO to mkv
	    	Start-Process -FilePath $HandBrakeEXE -ArgumentList &quot;-i <code>&quot;$oldfile</code>&quot; --title $title -o <code>&quot;$newfile</code>&quot; -f mkv  -w 720 --crop 0:0:0:0 --loose-anamorphic  --modulus 2 -e x264 -q 20 --cfr -a 1 -E av_aac -6 dpl2 -R Auto -B 160 -D 0 --gain 0 --audio-fallback ac3 --subtitle 1 --subtitle-burned=1 --markers --x264-preset=veryfast  --x264-profile=main  --h264-level=4.0 --verbose=1&quot; -Wait -NoNewWindow
	    }
	    
	    Move-Item $oldfile $FileTo
	}
}


#Main
Enc

if($shutdown){Start-Process &quot;shutdown.exe&quot; -ArgumentList (&quot; /s /t 30&quot;) -NoNewWindow -Wait}

DVDISOをmkvにする想定なので、
dvd2mkv.ps1なんてファイル名でpathを通しておくのが良いかな。

TwonkyのDBを再構築

MP3などのライブラリ管理でありがちな、リストに出てこない問題。

 

Twonky serverでもやっぱりなぜか出てこない曲とかが多い。

まだ原因は不明だけど、そもそもVersion8のtwonky serverにはデーターベースの再構築ボタンがない。

 

調べてみたら、直接アドレスで指定するやるらしい。機能としては残っているのね・・(当たり前か)

 

Your.twonky.server.address:9000/rpc/rescan
Your.twonky.server.address:9000/rpc/rebuild

 

DXF2KML利用時のTip

頑張ってDXF作って変換したのにぶっ飛んだ位置にGoogleEarth君がまわってゆき、思った通りに表示されないとき。

たぶん、一部座標値が正しく変換されていない可能性が高いです。

そんなときは。

 

1.kml、kmzをテキストエディタで開き、【NaN】という値を探してみましょう。もちろん、coordinate項目にあるはず。

見つけた項目のハンドルIDがわかると思うので、それを使ってオブジェクトを修正します。

 

2.元のDXFファイルをAtuoCADで開き、オブジェクトを修正します。

どれかを調べるのに便利なのが、(HANDENT “HandleID”)とうコマンド。

たとえば、どれかを見つけるときに_zoomコマンド、オブジェクトオプション(0)をした後で、先の(handent “handleID”)を使うと、画面を移動してくれます。

3.なおし終わったDXFを再度DXF2KMLで変換したら指定した座標位置に出てくると思います。

 

えぇから書けや!