Public/System/Join-Video.ps1
function Join-Video { [CmdletBinding()] [CmdLetTag()] param ( [parameter(ValueFromPipeline)] [System.IO.FileInfo[]]$Video, [parameter()] [string]$OutputFile="output.mp4" ) begin { $PSCmdlet|Write-PSCmdLetBegin if (!(Get-Chocopackage ffmpeg)){ Install-ChocoPackage ffmpeg } $files=@() } process { $files+="-i" $files+=$Video.FullName } end { Remove-Item $OutputFile -ErrorAction SilentlyContinue Push-Location (Get-Item $Video|Select-Object -First 1).DirectoryName Invoke-Script{ $format=[System.IO.Path]::GetExtension($outputFile) ffmpeg @files -filter_complex "concat=n=$($files.Length):v=1:a=0" -f $format -vn -y $outputFile } Get-Item $OutputFile Pop-Location } } |