Public/Start-Remux.ps1

function Start-Remux {
    <#
    .DESCRIPTION
    Remux files to mkv
 
    .NOTES
    Outpath folder must already be created prior to running the command
 
    .Example
    Specify the output path for the remuxed files
 
    Start-Remux -outpath "c:\folder\folder new\"
    #>

    [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 = "*.avi"
    $array = @(Get-ChildItem -filter $ext)
    Foreach ($video in $array.Name) {
        $videoout = $video -split ".avi"
        ffmpeg.exe -i "$video" -c copy "$outpath$videoout.mkv"
    }

    $ext = "*.mp4"
    $array = @(Get-ChildItem -filter $ext)
    Foreach ($video in $array.Name) {
        $videoout = $video -split ".mp4"
        ffmpeg.exe -i "$video" -c copy "$outpath$videoout.mkv"
    }

    $ext = "*.mpg"
    $array = @(Get-ChildItem -filter $ext)
    Foreach ($video in $array.Name) {
        $videoout = $video -split ".mpg"
        ffmpeg.exe -i "$video" -c copy "$outpath$videoout.mkv"
    }
}