Итак - я тоже столкнулся с этой проблемой, и вот мои $ 0,02 по ней:
1.) Некоторые видео имеют метаданные ориентации / поворота, некоторые нет: MTS (Sony AVHCD) или AVIУ меня есть - не иметь тег ориентации.MOVs и MP4 (ipad / iphone или samsung galaxy note2) ДЕЛАЮТ это.
you can check the setting via 'exiftool -Rotation file'.
My videos often have 90 or 180 as the rotation.
2.) Ffmpeg - независимо от man-страницы с тегом метаданных, просто НИКОГДА не устанавливаетсяэто в выходном файле.- тег поворота ВСЕГДА '0'.он правильно сообщает об этом в выходных данных, но exiftool никогда не устанавливает права на его получение.- Но эй - по крайней мере, он есть и всегда 0.
3.) Углы поворота: если вы хотите повернуть +/- 90: переместите = 1 для часовой стрелки 90, 2 по часовой стрелке сейчас, если вам нужно 180 градусов - простодобавить этот фильтр ДВАЖДЫ.помните - это указанная вами цепочка фильтров.:-) - см. ниже.
4.) поверните, а затем масштабируйте: это сложно - потому что вы быстро получаете нарушения формата вывода MP4.Допустим, у вас есть MOV 1920x1080.Поворот на 90 дает 1080x1920, затем мы изменяем масштаб до -1: 720 -> 1080 * (720/1920) = 405 по горизонтали, а по горизонтали 405 НЕ делится на 2 - ОШИБКА.исправить это вручную.ИСПРАВЛЕНИЕ ЭТОГО автоматически - требует немного работы сценария оболочки.
5.) Масштабируйте и поворачивайте: вы можете сделать это таким образом - но тогда вы получите 720x1280.Тьфу.Но вот пример фильтра: "-vf yadif = 1, scale = -1: 720, transpose = 1" Это просто не то, что я хочу - но может работать вполне нормально.
Собираем все вместе: - ПРИМЕЧАНИЕ - «намеренно НЕПРАВИЛЬНЫЙ Rotation-tag», просто чтобы продемонстрировать - он не будет отображаться ВСЕХ в выводе!Это возьмет ввод - и повернет его на 180 градусов , ПОТОМ СБРОСИТЕ ЭТО - сбросьте метку вращения.- обычно iphone / ipad2 может создавать вращающийся на 180 градусов материал.вы можете просто оставить '-metadata Rotation = x' вне строки ...
/ usr / bin / ffmpeg -i input-movie.mov -timestamp 2012-06-23 08:58:10 -map_metadataВращение метаданных 0: 0 = 270 -sws_flags lanczos -vcodec libx264 -x264 открывает me = umh -b 2600k -vf yadif = 1, транспонировать = 1, транспонировать = 1, масштабировать = 1280: 720 -f mp4-y output-movie.MP4
У меня есть несколько устройств - например, приставка, ipad2, note2, и я преобразую ВСЕ свой входной материал (независимо от того, является ли он mp4, mov, MTS, AVI) в 720p mp4и до сих пор ВСЕ получающиеся видео воспроизводятся правильно (ориентация, звук) на каждом устройстве.
Надеюсь, это поможет.