【发布时间】:2022-06-27 04:50:49
【问题描述】:
大家好,我正在尝试使用流利的 ffmpeg 将某些输入的宽度和高度调整为 768x1366(基本上以垂直模式显示),所以我还必须更改它的 display_aspect_ratio,我碰巧知道它是 0.562225476。
这里的问题是,根据 fluent-ffmpeg doc,如果我设置固定大小,它不会改变纵横比,但如果我使用 ? 到自动模式,它也不会工作。这是我的代码:
ffmpeg({source: req.file.path})
.withFps(30)
.toFormat('mp4')
.size("768x?")
.aspect(0.562225476)
控制台命令:
ffmpeg -i tmp/video.mp4 -y -r 30 -filter:v scale=w=768:h=1366 -f mp4 ./src/internal/media/video.mp4
所以当我用 ffprobe 检查 display_aspect_ratio 时,它仍然是 4:3(作为源文件)。
如果我不添加.aspect()选项,命令是完全一样的......所以不考虑它。
我也试过了:
ffmpeg({source: req.file.path})
.withFps(30)
.toFormat('mp4')
.size('768x1366')
.addOptions('-vf setdar=0.562225476')
这里的命令最终是ffmpeg -i tmp/video.mp4 -y -r 30 -filter:v scale=w=768:h=1366 -f mp4 -vf setdar=0.562225476 ./src/internal/media/video.mp4,所以看起来还可以,但是当我用 ffprobe 检查时,它没有应用宽度和高度的变化。
我真正需要的命令是某种:ffmpeg -i video.mp4 -vf scale=768:1766,"setdar=0.562225476" video2.mp4,它会改变 both、widthXheight 和 display_aspect_ratio
【问题讨论】:
标签: node.js video ffmpeg ffprobe fluent-ffmpeg