У меня есть запись экрана видеочата, который у меня был, и размер файла огромен, потому что сама запись экрана была сделана на 59,93 кадра в секунду. Однако я думаю, что видеочат был где-то 15-30 кадров в секунду. Плюс это был видеочат, так что отдельные кадры, очевидно, также были сжаты.
Я не хочу терять качество видео (оно и так довольно плохое, учитывая, что это был видеочат). Однако я хотел бы уменьшить размер файла. Я не совсем понимаю, как лучше всего это сделать... Я полагаю, что мой вопрос сводится к следующему:
- Есть ли способ как-то снизить частоту кадров видео таким образом, чтобы она была синхронизирована с частотой кадров видеочата?
- Есть ли еще какие-то варианты сжатия, о которых я не знаю?
Вот вывод ffmpeg -i, если это поможет:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\Untitled1.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2015-08-02T20:32:54.000000Z
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookAir4,2
com.apple.quicktime.software: Mac OS X 10.10.4 (14E46)
com.apple.quicktime.creationdate: 2015-08-02T12:46:10-0700
Duration: 00:45:19.57, start: 0.000000, bitrate: 12981 kb/s
Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1438x874, 12974 kb/s, SAR 1:1 DAR 719:437, 59.93 fps, 60 tbr, 6k tbn (default)
Metadata:
creation_time : 2015-08-02T20:32:54.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : H.264
решение1
FFMPEG просто удаляет «ненужные» кадры видео при использовании-filter:v fps=n
Подробное объяснение можно найтиздесь
Дополнительно конвертируя видео из h264 в h265, вы можете сжать видео примерно в 10 раз без заметной потери качества. Это означает, что файл размером 100 МБ впоследствии займет всего 10 МБ места, не принимая во внимание сниженную частоту кадров.
Пример:
ffmpeg -i <input> -filter:v fps=30 -c:v libx265 -vtag hvc1 -c:a copy <output>