记录一下FFmpeg图片转视频,包含DAR的图片转出的视频多出几像素的问题

正常情况下,使用FFmpeg进行图片转视频时,可以通过

ffmpeg -framerate [帧率] -i [图片路径及文件名模板] -s [视频宽度x视频高度] -c:v [视频编码器] [输出视频文件名]

或者

ffmpeg -framerate 25 -i./images/image_%04d.jpg -vf "scale=640:480" -c:v libx264 output.mp4

但很邪门的就是,今天有一张图片,无论如何就是不能生成预期大小的视频。而且在Android上获取到的宽高都没问题,但是复制到电脑端,就发现宽度就是会多出几个像素。真的是百思不得其姐。

后台通过FFmpeg -i 查看图片信息,发现图片中包含 【DAR xx:xx】,这是其他正常图片中没有的,也是造成以上问题的罪魁祸首。


image.png

那么该如何解决呢:
解决方案一

ffmpeg -i /Users/yanjunhui/Desktop/error.mp4  -vf scale=1280x720,setsar=sar=1280/720,setdar=dar=1280/720 -f mp4 out.mp4 -y

修改后,视频的真实像素终于是我们想要的。
最后,再附上罪魁祸首的原图。


0.png

解决方案二
将图片从.jpg、.png直接转换为 .webp,.webp是不包含DAR信息的哈,然后再转回 .jpg、.png就好啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容