FFmpeg на iPhone - Изменение Видео Ориентации

Я смешиваю с h264 видео, загруженными FFmpeg на iPhone 3GS. Проблемой являются любые видео, зарегистрированные в ориентации "Портрета", относились к матрице преобразования их заставляющий их отобразить повернутые противочасы на 90 градусов.

Из того, что я понимаю к настоящему времени, я просто должен изменить матрицу преобразования в 'tkhd' атоме. Проблема, я испытываю затруднения при доступе или изменении этих данных. Я проверил реализацию FFmpeg для:

static int mov_read_tkhd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)

который ясно показывает, как к матрице получают доступ в avformat, но когда я пытаюсь получить доступ к байтам заголовка с помощью тех же функций, я не получаю рациональных значений. Даже если я должен был успешно вытянуть матрицу, я не уверен, как заменить ее? FFmpeg имеет функции для получения и добавления к заголовку дорожки, но ничто для замены это кажется?

Любая справка значительно ценилась бы.

Спасибо, матовое.

5
задан Matthew McGoogan 5 February 2010 в 16:10
поделиться

1 ответ

Портретное видео, записанное на iPhone 3GS, странно поворачивается в альбомную ориентацию, и только quicktime воспроизводит его правильно, проигрыватели типа VLC и т.д. воспроизводят видео в портретном режиме в альбомной ориентации, потому что оно закодировано таким образом! Возможно, apple установила какой-то бит, чтобы quicktime определял и правильно устанавливал ориентацию.

Вы можете использовать опцию -vfilters в ffmpeg для поворота видео. Она доступна в версии r21242. Вы должны установить патч на вашу версию ffmpeg.

настройте сборку, используя --enable-vfilters

и вы можете использовать опцию:

ffmpeg -vfilters "rotate=90" -i input.mp4 output.mp4

для поворота входного видео.

2
ответ дан 18 December 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: