1. 查看视频信息,看视频是否带有旋转角度
命令:ffmpeg -i xxxx.mp4
上图中的红框处,可以看出此视频旋转角度为90
通过程序执行命令读流的方式,可以从返回信息中截取此处信息,拼配正则方法为:
private String rotateInfo(String ffmpegReturnMsg) {
List<String> res = new ArrayList<String>();
Pattern p = Pattern.compile("Video:[ ]+[\\s\\S]*rotate[ ]+:[ ]+([0-9]*)", Pattern.CASE_INSENSITIVE);
Matcher matcher = p.matcher(ffmpegReturnMsg);
while (matcher.find()) {
res.add(matcher.group(1));
}
return res.get(0);
}
2.视频转码,处理旋转角度变为正常
ffmpeg 命令为:
ffmpeg -i ${sourceVideoPath} -s ${width} * ${height} -vf transpose=1 -y ${targetVideoPath}
注意:命令中${xxx}为需要改成实际路径或宽高的内容,涉及的路径包括ffmpeg工具,都为绝对路径。
且,此处-vf transpose=1 跟ffmpeg的版本相关,需要注意。
-s ${width} * ${height} , 乘号前后无空格