Библиотека FFmpeg Android вращает видео после сжатия - PullRequest
1 голос
/ 19 марта 2020

execFFmpegBinary (new String [] {"- y", "-i", путь, "-s", "160x120", "-r", "25", "-vcode c", "mpeg4 "," -b: v "," 150k "," -b: a "," 48000 "," -a c "," 2 "," -ar "," 22050 ", filePath});

видео с автоматическим поворотом после сжатия ..

есть ли какое-нибудь решение?

вот lib Ссылка

1 Ответ

2 голосов
/ 19 марта 2020

это может быть проблема с автоповоротом в 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
...