Обрезка черных полос в видео с помощью ffmpeg на Ubuntu меняет размер видео - PullRequest
2 голосов
/ 13 января 2011

У меня есть исходное видео размером 720x576 с черными прямоугольниками сверху и снизу.

Я хочу удалить черные прямоугольники и установить размер выходного видео 640x352.

Я пытался -vf cropdetect, и это значение было 640: 192: 0: 80.

Однако, добавив это значение в crop=<parameter>, вы измените размер выходного видео.

Как я могу это исправить?

например:.

ffmpeg -i all_the_best_test.mpg -s 640x352 -deinterlace -b 500k -minrate 500k \
-maxrate 500k -aspect 1.82 -force_fps -vcodec libx264 -me_method 10 \
-vf crop=640:192:0:80 -r 25 -acodec libfaac -ac 2 -ar 44100 -ab 96k -subq 6 \
-vpre medium /vod/Movies/final/allthebest-crop-2.mp4

1 Ответ

0 голосов
/ 24 апреля 2013

Когда вы указываете -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 ..). Но, скорее всего, вы имели в виду, что картина казалась «искаженной».

...