Public/Start-Transcode.ps1
function Start-Transcode { <# .DESCRIPTION Transcodes video files containing extenstions *.mp4, *.mkv, *.avi, and *.mpg Inputed Parameters are -c:v libx265 -crf 21 -ac 6 -c:a aac -preset veryfast .PARAMETER outpath Specify the save path for the transcoded files .NOTES Outpath folder must already be created prior to running the command .Example Specify the output path for the remuxed files Start-Transcode -outpath "c:\files\new files\" #> [cmdletbinding()] param ( [Parameter(Mandatory = $true)] [ValidateScript( { if ( -not (Test-Path $_)) { throw "Path '$_' doesn't exist. Create the Directory First" } else { $true } })] [ValidateScript( { if ($_ -notmatch '.+?\\$') { throw "Path '$_' must end with a backslash" } else { $true } })] $outpath ) $ext = "*.mkv" $array = @(Get-ChildItem -filter $ext) Foreach ($video in $array.Name) { ffmpeg.exe -i $video -c:v libx265 -crf 21 -ac 6 -c:a aac -preset veryfast "$outpath$video" } $ext = "*.avi" $array = @(Get-ChildItem -filter $ext) Foreach ($video in $array.Name) { ffmpeg.exe -i $video -c:v libx265 -crf 21 -ac 6 -c:a aac -preset veryfast "$outpath$video" } $ext = "*.mp4" $array = @(Get-ChildItem -filter $ext) Foreach ($video in $array.Name) { ffmpeg.exe -i $video -c:v libx265 -crf 21 -ac 6 -c:a aac -preset veryfast "$outpath$video" } $ext = "*.mpg" $array = @(Get-ChildItem -filter $ext) Foreach ($video in $array.Name) { ffmpeg.exe -i $video -c:v libx265 -crf 21 -ac 6 -c:a aac -preset veryfast "$outpath$video" } } |