我有一个文件夹,里面有很多需要在开头修剪的视频,还有一个文本文件,里面有视频必须开始的时间:
- 视频_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"