โดยปกติวีดีโอก็จะมีไฟล์นามสกุลอยู่มากมาย ไม่ว่าจะเป็น mp4, avi, trec, mov m4v, mpeg เวลาเปิดดูก็ต้องหาโปรแกรมที่รองรับนามสกุลไฟล์เหล่านี้ เวลาแปลงวีดีโอหลาย ๆ ไฟล์ หากต้องมานั่งคลิกคงไม่ไหว เราจะมาเขียน Powershell Script แปลงให้เป็น mp4 ซึ่งเป็นมาตรฐานกัน
Handbrake
โปรแกรม Convert ก็มีอยู่มากมาย แต่จะขอแนะนำ Handbrake เพราะเป็น Open Source และสามารถใช้ Command ในการเขียนเป็น Script เพื่อ Convert ได้ จะสะดวกมากหากเราต้อง Convert Video หลาย ๆ ไฟล์ เราจะได้ไม่ต้องมานั่งเสียเวลา แต่ถ้าใครไม่ถนัดใช้ Command ก็ใช้แบบโปรแกรมก็ได้ครับ
Handbrake CLI Script
- ดาวน์โหลด Handbrake CLI โดยเลือกให้ตรงกับ OS
- Format Command ของ Handbrake CLI
# PS C:\> HandBrakeCLI -i filename.avi -o filename.mp4 -e x264 -q 22 -r 30 -B 352 -X 1152 -O
i input
o output
e video format H264
q video quality 22 RF for web mp4
r framerate 30 frames / second
B audio bitrate 64 for stereo and 160 for mono
x max width 1152
- ทีนี้เราก็มาเขียน Powershell Script ชื่อว่า handbrake.ps1 แปลงวีดีโอนามสกุล .avi เป็น .mp4 โดยวนลูป แปลงทุกไฟล์ในโฟลเดอร์ Video
$filelist = Get-ChildItem "E:\Video" -filter *.avi -recurse
$num = $filelist | measure
$filecount = $num.count
$i = 0;
ForEach ($file in $filelist)
{
$i++;
$oldfile = $file.DirectoryName + "\" + $file.BaseName + $file.Extension;
$newfile = $file.DirectoryName + "\" + $file.BaseName + ".mp4";
$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 -------------------------------------------------------------------------------
Start-Process "C:\Program Files\Handbrake\HandBrakeCLI.exe" -ArgumentList "-i `"$oldfile`" -o `"$newfile`" -f mp4 -e x264 -q 22 -r 30 -B 352 -X 1152 -O" -Wait -NoNewWindow
}
- จากนั้นก็รันผ่าน Powershell
อ่านเพิ่มเติม : https://bit.ly/2vOIaJp
Tagged: Powershell
Leave a Reply