From: Sergey Matveev Date: Fri, 24 Apr 2020 17:47:56 +0000 (+0300) Subject: Кодирование экрана в lossless X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=9e4f39c6983d7b1e2085f8e50dc4ab04d7a1ef95;p=stargrave-blog.git Кодирование экрана в lossless ffmpeg похоже годится для тьмы задач которые я делал mplayer/mencoder. mpv совсем не нужен ни для чего кроме проигрывания. Декодировать ALAC/APE -- ffmpeg может. Аналог -ao pcm тоже. Из example его документации увидел как делается просто запись экрана. Сразу задаюсь вопросом во что кодировать? Хочется же чтобы потом можно было хорошо сжать, а источник в идеале должен быть без потери качества. Об опыте lossless кодеков писал в 748a0008be8dd4408f9366e02a71144acec766a7. YUV4MPEG2 слишком круто забивает диск. FFV1 очень жрёт CPU. ffvhuff хорошо подходит: и жмёт вполне себе лучше чем голый YUV4MPEG2 (у меня на ZFS уйдёт процессорное время всё) и в real-time вполне себе справляется. Теперь хочется сжать в VP9 lossless, просто ради поиграться. Но хочу vpxenc утилиту использовать. ffmpeg-ом делаю yuv4mpegpipe вывод и меня посылают, ибо надо задать формат пикселя. Задаю такой, какой vpxenc берёт по умолчанию: I420. Да, закодировался lossless, но цвета явно покорёжены и унылы. Очевидно из-за I420. Указываю I444, ffmpeg опцию соответствующую, vpxenc ругается что при текущем профиле не поддерживается этот формат пикселей. Пошёл в исходный код, потом в Wikipedia: https://en.wikipedia.org/wiki/VP9#Profiles Действительно, есть разные профили (ну как и в MPEG стандартах) и мне нужен явно profile 1. Благо в vpxenc это можно указать и всё закодировалось, действительно без потерь. 800-1000Kbps при всяких top-ах и переключениях рабочих столов оно где-то тратит битрейта на FullHD. ---