如何在 ffmpeg 中将一组具有不同尺寸的带信箱的视频转换为 320x240 格式?

如何在 ffmpeg 中将一组具有不同尺寸的带信箱的视频转换为 320x240 格式?

我有一个目录,里面有大约 660 个视频。我编写了一个 PowerShell 脚本来循环遍历目录中的文件 - 但我在使用 ffmpeg 进行转换时遇到了困难。

我尝试过的最新命令是:

$destination = 'Z:\sirenvideos\new-encoded'

Get-ChildItem -Path '.\'   -Filter '*.*' | ForEach-Object {
  $target = Join-Path -Path $destination -ChildPath ([System.IO.Path]::ChangeExtension($_.Name, '.mkv'))
  ffmpeg -i "$($_.FullName)"    -vf "scale=iw/1.333333:ih:force_original_aspect_ratio=decrease,pad=320:240:-1:-1:color=black,setsar=1" -r 30000/1001 -x265-params lossless=1 -c:v libx264 -crf 20 -c:a aac -movflags +faststart "$target"
}

这不起作用。

这些视频中,有些是 1920x1080,有些是 1280x768,有些是 720x480 - 你明白了吧。我需要将所有这些视频都转换为 320x240,同时保留原始纵横比(使用信箱)。最好的方法是什么?

这是我收到的错误输出。

[Parsed_pad_1 @ 0000012e1c3f8a80] Input area -320:-150:640:390 not within the padded area 0:0:320:240 or zero-sized
[Parsed_pad_1 @ 0000012e1c3f8a80] Failed to configure input pad on Parsed_pad_1
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #0:0

相关内容