фильтр обрезки
Вы можете использовать четыре обрезки фильтров в одной команде:
ffmpeg -i input -filter_complex "[0]crop=iw/2:ih/2:0:0[tl];[0]crop=iw/2:ih/2:ow:0[tr];[0]crop=iw/2:ih/2:0:oh[bl];[0]crop=iw/2:ih/2:ow:oh[br]" -map "[tl]" topleft.mp4 -map "[tr]" topright.mp4 -map "[bl]" bottomleft.mp4 -map "[br]" bottomright.mp4
фильтр битового потока
Фильтр битового потока отличается от нормальный фильтр. Обычный фильтр требует декодирования и кодирования. Фильтр битового потока работает с данными закодированного потока и выполняет модификации уровня битового потока без выполнения декодирования.
Фильтры битового потока h264_metadata и hevc_metadata могут редактировать смещения обрезки окна в SPS для H.264 и H.265 / HEV C. Это означает, что он может изменять эти значения без необходимости перекодировать видео. Размер файла останется прежним, но проигрыватель будет обрезать видео в соответствии с установленными значениями обрезки.
Пример для ввода H.264 320x240:
ffmpeg -i input.mp4 -bsf:v h264_metadata=crop_right=160:crop_bottom=120 -c copy topleft.mp4 -bsf:v h264_metadata=crop_left=160:crop_bottom=120 -c copy topright.mp4 -bsf:v h264_metadata=crop_right=160:crop_top=120 -c copy bottomleft.mp4 -bsf:v h264_metadata=crop_left=160:crop_top=120 -c copy bottomright.mp4
Эти поля установлены в пиксели. Обратите внимание, что некоторые размеры могут не отображаться, если цветность субдискретизирована (это в основном означает, что вы должны использовать только четные значения для типичного видео).
Для сценария этого вы можете использовать ffprobe
, чтобы получить ширина и высота .