我可以在使用 ffmpeg 编码之前获取最终输出视频尺寸吗?

我可以在使用 ffmpeg 编码之前获取最终输出视频尺寸吗?

你好,世界 :) (第一条消息,初学者水平 ;) )

我正在尝试编写一个小型 msdos 脚本来简单地调整视频大小。

首先,使用 ffprobe 从源获取iwih、DAR、SAR,然后选择所需的输出高度 oH。我使用这个简单的命令行让 ffmpeg 计算输出宽度并完成工作:

ffmpeg -i !in! -ss !t1! -to !t2! -filter:v scale=-2:!oH!,setsar=1,setdar=!dar! -c:a copy !out!

我以简单情况下的输出宽度为例,因为计算很容易,并且比例滤波器的 -2 值应该给出输出宽度ow=trunc(oh*a/2)*2

但生活并没有那么简单!有时我会添加/使用其他选项,如裁剪或其他效果等...使用 -1 或 -2 的自动计算很有用,但在运行整个脚本之前,我需要检查 ffmpeg 计算的最终尺寸是否符合我的预期。

因此,我的问题是:有没有办法在运行 ffmpeg 之前使用任何 ffmpeg 工具对输出视频的某些数据进行估算?

  • 我没有找到任何可以提供一些数据的“模拟运行”选项(无编码),至少是那些可预测的数据。

  • 我也考虑过使用 ffplay,因为它可以采用相同的参数并“动态”处理视频,并尝试了不同的 -loglevel 值: ffplay -i !in! -vf "scale=-2:!oH!" -loglevel trace 但我无法在任何地方找到输出尺寸......尽管视频实际上正在播放......

  • (写作时的最后一个想法:似乎 ffmpeg 可以从视频中提取并处理单个图片,然后我必须对其进行分析;但对于批量运行来说,这将是一个额外的步骤并且更耗时)

有什么建议吗?谢谢!

相关内容