FFmpeg缩放错误

时间:2015-07-09 14:24:16

标签: android video ffmpeg

我正在尝试使用FFmpeg Android Java library在Android上转换视频 我的方法采用输入和输出文件路径和输出文件的尺寸(例如640x480)。视频应适合裁剪这些界限。由于视频可能是横向或纵向,我是下一个参数:

String.format("-i %s \"scale='if(gt(a,1),-1,%d)':'if(gt(1,a),%d,-1)'\" %s", in, h, w, out);

请参阅this article

根据official doc a是输入文件的宽高比(w / h)。

所以> 1 gt(a,1)表示w> h所以视频是风景,1> gt(1,a)表示h> w所以视频是肖像。

但是我得到了下一个错误:

Unable to find a suitable output format for "scale='if(gt(a,1),-1,480)':'if(gt(1,a),640,-1'"
'"scale='if(gt(a,1),-1,480)':'if(gt(1,a),640,-1'" : Invalid argument

我做错了什么? 感谢。

1 个答案:

答案 0 :(得分:4)

在缩放过滤器之前需要-vf。它将比例过滤器解析为输出文件。所以:

-i %s -vf \"scale='if(gt(a,1),-1,%d)':'if(gt(1,a),%d,-1)'\" %s