windows 尝试拾取目录中的mp4和srt文件,并使用一个脚本合并它们

jgovgodb  于 2022-01-05  发布在  Windows
关注(0)|答案(1)|浏览(115)

使用以下代码可以正常工作:

ffmpeg -i input.mp4 -filter:v subtitles=subtitle.srt -c:a copy -c:v libx264 -crf 22 -preset veryfast output.mp4

尝试批处理操作时出现错误:

ls | Where { $_.Extension -eq ".mp4" } | ForEach {

.\ffmpeg.exe -i $_.Name -filter:v subtitles=$_.Name.Replace(".mp4", ".srt") -c:a copy -c:v libx264 -crf 22 -preset veryfast $_.Name.Replace(".mp4", "WithSubs.mp4") 

}

错误:
输出文件#1不包含任何流,将空文件命名为“.mp4”

yqlxgs2m

yqlxgs2m1#

固定通过声明字幕文件名和输出名:

$NewName = $_.Name.Replace(".mp4", "WithSubs.mp4");
$SubsName = $_.Name.Replace(".mp4", ".srt");
write-output $NewName;
write-output $SubsName;
.\ffmpeg.exe -i $_.Name -filter:v subtitles=$SubsName -c:a copy -c:v libx264 -crf 22 -preset veryfast $NewName

相关问题