Когда вы указываете -s 640x352 в качестве первой команды, применяемой к выходным данным, ожидаете ли вы, что ffmpeg будет обрабатывать ее последней? Судя по вашим результатам, я думаю, что он, должно быть, применил его первым (к фильму с черной рамкой еще нетронутым). Таким образом, черная рамка была бы изменена вместе с фильмом. Затем вы применили кадрирование, которое было обнаружено для фильма оригинального размера, к этому новому меньшему фильму. Трудно объяснить без рисования чего-либо, но это исказило бы ваше соотношение сторон и, если обрезка указана в качестве сохраняемой геометрии, вырежьте некоторый контент из ваших полей (помните: вы сделали видео меньше, прежде чем применять исходную обрезку ). Другими словами, это не просто искривлено, но у людей должны быть некоторые недостающие волосы и придатки и тому подобное?
Почему бы не сделать простой контрольный пример. Если я использую базовый подход, который вы использовали здесь в фильме в черной рамке, он работает очень хорошо.
Шаг 1 остается прежним. Выполните ffmpeg -i movie.mp4 -vf cropdetect temp.mp4 и прочитайте, что он говорит о кадре, например, о вашем кадре = 640: 192: 0: 80.
Шаг 2: упростите командную строку для тестирования: ffmpeg -i movie.mp4 -vf crop = 640: 192: 0: 80 movie_without_borders.mp4. Обязательно воспроизведите результат в проигрывателе, который установит свои собственные границы для размера файла (или может быть настроен для этого - нажмите 2, если вы играете в банк). Новый фильм не искажен и черные границы исчезли.
Для моего тестового файла произошли два изменения размера. Во-первых, очевидно, новый геометрический размер - это то, что мы указали для урожая. Во-вторых, размер файла немного уменьшился, предположительно потому, что для сохранения черного ящика использовался небольшой объем пространства. С libx264 и относительно сжатым файлом низкого качества без особого движения, вырезание черного ящика равной области с изображением уменьшило размер файла с 3,99 до 3,76 (для n = 1 ..). Но, скорее всего, вы имели в виду, что картина казалась «искаженной».