Я использую FFMPEG для перекодирования видео, функция которого запускается автоматически. Я пытаюсь уменьшить масштаб видео до нескольких разрешений, сохраняя соотношение сторон (уменьшить до нужного размера). Если исходное разрешение видео меньше, чем разрешение, указанное в команде, пропустите перекодирование и прекратите создание выходного файла для этого конкретного разрешения.
Например:
У меня есть видео с разрешением 1920x1080
Выход:
- 3840x2160 (Пропустить / Остановить)
- 2560x1440 (Пропустить / Остановить)
- 1920x1080 (перейдите к output-1080p.mp4)
- 1280x720 (перейдите к output-720p.mp4)
Я перепробовал много команд, но ни одна из них не работает. Могу ли я узнать, есть ли команда, которая может этого добиться?
Ниже приведена последняя рабочая команда, которая у меня есть для FFMPEG. Извините, я новичок в FFMPEG, я понимаю, что текущая команда все еще далека от того, к чему я стремлюсь.
ffmpeg -i sample.mp4 -c:a copy -vf scale='min(2160\,iw):-2' -movflags +faststart out2160.mp4 -vf scale='min(1440\,iw):-2' -movflags +faststart out1440.mp4 -vf scale='min(1080\,iw):-2' -movflags +faststart out1080.mp4 -vf scale='min(720\,iw):-2' -movflags +faststart out720.mp4 -vf thumbnail -vf scale='min(500\,iw):-2' -vframes 1 thumb500.png -vf scale='min(270\,iw):-2' -vframes 1 thumb270.png
Если sample.mp4 имеет разрешение 1920x1080p или даже меньше, эта команда выведет следующие файлы:
- out2160.mp4
- out1440.mp4
- out1080.mp4
- out720.mp4
- thumb500.png
- thumb270.png
Поскольку я запускаю FFMPEG автоматически, я хочу, чтобы команда могла сравнивать установленное разрешение. Если исходное разрешение видео меньше, просто пропустите его, нет смысла создавать или масштабировать файл, размер которого больше исходного разрешения. Выводите только то же или меньшее разрешение, сохраняя соотношение сторон (уменьшите, чтобы соответствовать). Было бы здорово, если бы вы могли помочь мне в этом, спасибо еще раз.