Как вращать файлы mp4? - PullRequest
       31

Как вращать файлы mp4?

0 голосов
/ 23 октября 2018

У меня есть файл mp4 (уже записан) и я хочу изменить ротацию (включая метаданные) видео.Есть способ сделать это, используя Hex Editor , где вы найдете заголовок дорожки (тхдр) и замените матрицу вращения требуемым вращением.

Я знаю, что это можно сделать с помощью библиотеки ffmpeg, но я не хочу использовать библиотеку, а хочу сделать это в Android, используя JAVA.Дайте мне знать, если кто-то делал это раньше.

Спасибо, Рави

Ссылка

1 Ответ

0 голосов
/ 23 октября 2018

Эта библиотека может вам помочь: https://github.com/MasayukiSuda/Mp4Composer-android

Эта библиотека создает фильм Mp4 с помощью Android MediaCodec API и может вращать Mp4.

Ссылка на StackOverflow: https://stackoverflow.com/a/19392712/8572503


Это API свободно и просто:

new Mp4Composer(sourceFile, destinationFile) 
            .rotation(Rotation.ROTATION_90)
            .size(1280,720) //720P
            .fillMode(FillMode.PRESERVE_ASPECT_FIT)
            .listener(new Mp4Composer.Listener() {
                @Override
                public void onProgress(double progress) {
                    Log.d(TAG, "onProgress = " + progress);
                    //or show in notification
                }

                @Override
                public void onCompleted() {
                    Log.v(TAG, "onCompleted() : Destination → "+ destinationFile);
                }

                @Override
                public void onCanceled() {
                    Log.d(TAG, "onCanceled");
                }

                @Override
                public void onFailed(Exception exception) {
                    Log.wtf(TAG, "onFailed()", exception);
                }
            })
            .start();

Вы также можете видеть, что этот транскодер написан на чистом Java: https://github.com/ypresto/android-transcoder


[РЕДАКТИРОВАТЬ: Из комментария] : Вы можете создать измененный новый файл, получить предыдущее имя файла и сохранить его в объекте String, затем удалить предыдущий файл и переименовать новый файл в файл, сохраненный вString объект.

Вы можете извлечь код из этого: https://github.com/javadev/hexeditor, чтобы вручную изменить шестнадцатеричный код.

...