Редактируйте данные MP4 Hex для вертикального или горизонтального переворачивания видео без потерь

Я пытаюсь сделать что-то похожее на вопросы здесь и здесь, но с небольшой разницей. Я пытаюсь перевернуть видео по осям Y или X вместо вращения.

Решение в этих потоках изменить матрицу вращения кажется идеальным подходом, и я могу изменить параметры для выполнения вращения. Но я не могу понять, какими должны быть значения для переворачивания видео.

Цитировать из этих тем:

- без вращения:
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
40
- 180 °:
FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40
- 90 ° по часовой стрелке:
00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40
- 90 ° по часовой стрелке:
00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40

Мне не удалось найти в Интернете документацию, в которой говорится о значениях, указанных в этих двух строках, поэтому я не смог добиться сальто.

Я пробовал альтернативы с ffmpeg, но я столкнулся с проблемами:

ffmpeg -i input.mp4 -vf hflip output.mp4

... Это перекодирует файл из-за флага "vf", который применяет фильтрацию.

ffmpeg -i input.mp4 -vf "transpose = 0, transpose = 1" output.mp4

... Это также перекодирует файл из-за флага "vf".

ffmpeg -i input.mp4 -metadata: s: v rotate = "90" -codec copy output.mp4

... Это работает без перекодирования (и почти так же быстро, как прямое редактирование файла), но, очевидно, вращение не приводит к перевороту. Есть ли способ, которым я мог бы использовать metadata вариант с transpose?

ffmpeg -i input.mp4 -vf "transpose = 0, transpose = 1" -codec copy output.mp4

... Это дает мне ошибку, говоря, что фильтрация и потоковая копия не могут использоваться вместе.

Можно ли сделать то, что я пытаюсь сделать? Как бы я сделал перевернуть видео без кодирования? Даже если я в конечном итоге кодировать, как я могу сделать это без потерь?

Я бы написал в темах, на которые я ссылался выше, чтобы получить помощь, но я здесь новый пользователь и в результате не могу оставлять комментарии к темам.

0 ответов

Другие вопросы по тегам