В моем проекте C # я делаю снимки экрана через равные промежутки времени (с таймером). Затем мне нужно преобразовать изображения в одно видео с помощью FFmpeg, поэтому я использую эту команду:
"-f image2 -framerate 9 -i E:\\REC\\Temp\\%06d.jpeg -r 30 E:\\REC\\Video\\" + s + ".mkv"
Это работает, но размер выходного видео большой, около 8 МБ всего за 1 минуту видео. Как я могу сделать видео меньше по размеру, не жертвуя качеством?
mb
на 1min
?Ответы:
Из того, что я знаю, MKV является контейнером, вам нужно использовать сжатие для видеопотока, например:
В этом примере каждое изображение будет иметь продолжительность 5 секунд (обратное значение 1/5 кадров в секунду). Видеопоток будет иметь частоту 30 кадров в секунду, дублируя соответствующие кадры.
Для получения дополнительной информации см. Эту статью на вики FFmpeg .
источник
-crf n
где n - это число, начинающееся с 1, для максимально возможного качества 20 соответствует качеству DVD, а 30 начинает выглядеть немного отвратительно. Размер будет меняться обратно пропорционально качеству.