Я хотел бы запустить следующую команду в Powershell: ffmpeg -i "VIDEO.mp4" -i "AUDIO.m4a" -c copy -map 0:v:0 -map 1:a:0 "OUTPUT VIDEO.mp4"
Но я хотел бы просмотреть файлы. Я пробовал это:
Add-Type -AssemblyName System.Windows.Forms
$VideoBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{
InitialDirectory = $PSCommandPath
Filter = 'Video file (*.mp4)|*.mp4|All files (*.*)|*.*'
Title = 'Choose video file'
}
$null = $VideoBrowser.ShowDialog()
if (!($VideoBrowser.FileName))
{
return
}
$AudioBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{
Filter = 'Video file (*.m4a)|*.m4a|All files (*.*)|*.*'
Title = 'Choose audio file'
RestoreDirectory = $true
}
$null = $AudioBrowser.ShowDialog()
if (!($AudioBrowser.FileName))
{
return
}
$NewVideoBrowser = New-Object System.Windows.Forms.SaveFileDialog -Property @{
Filter = 'Video file (*.mp4)|*.mp4|All files (*.*)|*.*'
Title = 'Save new video file as'
RestoreDirectory = $true
}
$null = $NewVideoBrowser.ShowDialog()
if (!($NewVideoBrowser.FileName))
{
return
}
И все эти способы запустить команду, но все не работают:
$ArgumentList = '"{0}" -i "{1}" -c copy -map 0:v:0 -map 1:a:0 "{2}"' -f $VideoBrowser.FileName, $AudioBrowser.FileName, $NewVideoBrowser.FileName;
Start-Process -FilePath ffmpeg.exe -ArgumentList $ArgumentList -Wait -NoNewWindow
ИЛИ
$ArgumentList = '"' + $VideoBrowser.FileName + '" -i "' + $AudioBrowser.FileName + '" -c copy -map 0:v:0 -map 1:a:0 "' + $NewVideoBrowser.FileName + '"'
Start-Process -FilePath ffmpeg.exe -ArgumentList $ArgumentList -Wait -NoNewWindow
ИЛИ ffmpeg.exe $VideoBrowser.FileName -i $AudioBrowser.FileName -c copy -map 0:v:0 -map 1:a:0 $NewVideoBrowser.FileName
Что попробовать? Спасибо!