首页 > 解决方案 > FFmpegAndroid 库在压缩后旋转视频

问题描述

execFFmpegBinary(new String[]{“-y”, “-i”, 路径, “-s”, “160x120”, “-r”, “25”, “-vcodec”, “mpeg4”, “-b: v”、“150k”、“-b:a”、“48000”、“-ac”、“2”、“-ar”、“22050”、文件路径});

视频压缩后自动旋转..

有什么解决办法吗?

这是lib链接

标签: androidffmpegandroid-ffmpeg

解决方案


这可能是FFMPEG中的自动旋转问题,您必须禁用自动旋转:

ffmpeg -noautorotate -i input.mp4 output.mp4

如果此解决方案不能解决您的问题,您可以使用 Android API 获取输入视频旋转,如下所示:

MediaMetadataRetriever m = new MediaMetadataRetriever();
m.setDataSource(inputVideoFilePath);
String rotation;
if (Build.VERSION.SDK_INT >= 17) {
     rotation = m.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);
}

找到输入文件的旋转后,您必须相应地旋转输出文件,如下所示:

ffmpeg -noautorotate -i input.mp4 -filter:v "rotation*PI/180" output.mp4

推荐阅读