Дефолтные пресеты в программе не редактируются. Если я хочу подправить дефолтный пресет, то его нужно сначала скопировать. Для этого можно его найти по имени в файле /usr/share/kdenlive/export/profiles.xml и вставить внутрь тега <profiles> в файл ~/.local/share/kdenlive/export/customprofiles.xml.
У нас есть кусок видео, который мы покрамсали и кусок аудио, который изначально был привязан к этому видео, но потом мы его сдвигали много раз и изначальная привязка потерялась. Как вернуть им изначальную синхронизацию?
Если выбрать формат MP4-H264/AAC, то в окне рендера в самом низу есть текстовое поле со строкой:
ab=160k acodec=aac channels=2 crf=23 f=mp4 g=15 movflags=+faststart preset=veryfast real_time=-1 threads=0 vcodec=libx264
Это параметры кодека FFmpeg, которые Kdenlive передаёт кодировщику FFmpeg. Она полностью описывает как будет сжиматься видео и звук.
Она же в развёрнутом виде:
ab=160k
acodec=aac
channels=2
crf=23
f=mp4
g=15
movflags=+faststart
preset=veryfast
real_time=-1
threads=0
vcodec=libx264
Для уменьшения размера конечного файла можно посоветовать: поменять CRF на 26 или на 27, поменять preset на medium. И ещё можно использовать кодек H.265. Он может уменьшить размер в 2 раза, но не все старые устройства его поддерживают.
Если мы хотим создать свой собственный пресет, то:
preset=veryslow
preset=slower
preset=slow
preset=medium
preset=fast
preset=faster
preset=veryfast
preset=superfast
preset=ultrafastmovflags=+faststart Сюда не получится вписать, например, g=60, потому что этот параметр регулируется в GUI полем GOP. Окно с предупреждением так нам и сообщит – что GUI-интерфейс перезапишет этот параметр. CRF тоже не получится сюда вписать. С CRF – отдельная история. Его в GUI в кастомном пресете никак не выбрать. И в Additinal Parameters он тоже не вписывается, потому что в GUI Rate Control не в выставлен в CRF (а выставить его не даёт сам GUI).Самый простой пример:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
# -с:v – видео-кодек
# -c:a – аудио-кодек
Перекодировал очень хорошо. Я взял минутное видео. Kdenlive сжимал у меня его максимум в 19-22 MB, а эта команда сжала файл в 6,9 MB.
Контроль качества (CRF)
ffmpeg -i input.mkv -c:v libx264 -crf 23 -preset medium -c:a aac output.mp4
# -crf 23 - качество (меньше = лучше)
# -preset=medium – скорость кодирования
Здесь файл тоже перекодировался в 6,9 MB
Можно комбинировать CRF + Max Bitrate:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -maxrate 3000k -bufsize 6000k output.mp4
# maxrate – не даст превышать битрейт
# bufsize – помогает кодеку распределять поток
# тут видео получилось 6,8 MB
bufsize — это размер буфера кодека, который используется при переменном битрейте (VBR) или при ограничении максимального битрейта (-maxrate).
Сильное сжатие:
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a aac output.mp4
Файл сжался до 4.3 MB.
Популярная команда FFmpeg, которая обычно делает файл на 30-50% меньше, чем стандартное перекодирование:
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 -c:a aac -b:a 128k output.mp4
# файл получился 6.9 MB – такой же, как и при дефолтном перекодировании
# То есть эта команда делает то же самое:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
# по дефолтну только -preset medium вроде бы как, но "slow" ничего особо не поменяло
Посмотреть информацию о файле:
ffmpeg -i filename.mp4
# Или:
ffprobe filename.mp4