ffmpeg 和 PowerShell - 使用文本文件修剪视频

ffmpeg 和 PowerShell - 使用文本文件修剪视频

我有一个文件夹,里面有很多需要在开头修剪的视频,还有一个文本文件,里面有视频必须开始的时间:

  • 视频_001.mxf
  • 视频_001.txt
  • 视频_002.mxf
  • 视频_002.txt
  • 视频_003.mxf
  • 视频_003.txt
  • ETC。

我可以对一个文件执行此操作并且有效:

$start = Get-Content Video_001.txt
ffmpeg -ss $start -i Video_001.mxf -c:v copy -c:a copy ./Trim_Video_001.mxf

由于文件夹中有大约 200 个视频,因此我尝试执行以下操作:

$files = get-childitem *.mxf
$time = get-childitem *.txt

$time | foreach-object {
    $timename = $_.name
}

$files | foreach-object {
    $filename = $_.name
    $start = Get-Content $timename
    ffmpeg -ss $start -i $filename -c:v copy -c:a copy ./'Trim_'$filename
}

但是它会修剪最后一个文本文件中带有时间的所有视频。我该如何修复代码,以便 mxf 文件采用其对应的 txt 文件?

我不是程序员,我是视频编辑,所以我在这方面还算是新手:)

谢谢!

答案1

如果每个视频都有一个同名的文本文件,则命令行中应该可以执行类似这样的操作。首先从命令行输入视频所在的路径,然后使用此命令:

for %a in (*.mxf) do @for /f "delims=" %b in ('type "%~na.txt"') do ffmpeg -ss %b -i "%a" -c:v copy -c:a copy "Trim_%~a"

相关内容