Другим его будет сложновато под себя адаптировать.
Например, -crf 0 в ffmpeg обычно означает lossless-качество, но в SVT-AV1 этот режим (пока) не сделали*, поэтому по счастливой случайности выбирается авто-качество. А вот в libaom-av1 сделали.
-async 1 мог перекочевать из других советов, потому что это неочевидная опция ресемплера**, заданная неочевидным образом***, нужна ли она на самом деле - можно долго думать.
Есть ошибка в zscale=width=%width%:height=-1, из-за 4:2:0 надо сделать высоту гарантированно кратной двум (height=-2).
hwaccel логично сделать целиком отключаемым, а выбор кодека хардкодить под себя.
Например, -crf 0 в ffmpeg обычно означает lossless-качество, но в SVT-AV1 этот режим (пока) не сделали*, поэтому по счастливой случайности выбирается авто-качество. А вот в libaom-av1 сделали.
Видимо раньше означало. В двух двугих перекодировщиках в cq значение "0" означает автоматическое определение. Выполни ffmpeg -h encoder=h264_nvenc или ffmpeg -h encoder=hevc_nvenc, посмотри что он тебе выдаст. Подскажу: "-cq E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)"
Есть ошибка в zscale=width=%width%:height=-1, из-за 4:2:0 надо сделать высоту гарантированно кратной двум (height=-2).
Не понял проблему, если честно. У меня всё норм.
hwaccel логично сделать целиком отключаемым, а выбор кодека хардкодить под себя.
Ещё если видео кодируется только ради залива на видеохостинг, то можно не думать над настройками и не выбирать медленный AV1. Потому что видеохостинг ещё раз переконвертирует видео со своими настройками. Всё что нужно - дать ему достаточно качественный исходник, об эффективности кодирования можно почти не думать (если интернет не медленный).
-async 1 мог перекочевать из других советов, потому что это неочевидная опция ресемплера**, заданная неочевидным образом***, нужна ли она на самом деле - можно долго думать.
это значение для дефолтного ресемплера swr, который выбирается по умолчанию. в принципе без этого параметра тоже всё нормально кодируется, но я его взял как рекомендацию для решения потенциальных проблем десинхронизации видео и аудио дорожек.
У меня ещё есть способ превращения filtergraph'а из заклинания в читаемый код, но тут он не нужен (эту строку для HDR=>SDR используют как раз как заклинание, в её смысл вникать не обязательно) https://pastebin.com/j7dTCsDf
Другим его будет сложновато под себя адаптировать.
Например, -crf 0 в ffmpeg обычно означает lossless-качество, но в SVT-AV1 этот режим (пока) не сделали*, поэтому по счастливой случайности выбирается авто-качество. А вот в libaom-av1 сделали.
-async 1 мог перекочевать из других советов, потому что это неочевидная опция ресемплера**, заданная неочевидным образом***, нужна ли она на самом деле - можно долго думать.
Есть ошибка в zscale=width=%width%:height=-1, из-за 4:2:0 надо сделать высоту гарантированно кратной двум (height=-2).
hwaccel логично сделать целиком отключаемым, а выбор кодека хардкодить под себя.
Комментарии помогают.
* https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1636
** https://ffmpeg.org/ffmpeg-resampler.html#:~:text=async
*** https://ffmpeg.org/ffmpeg-resampler.html#:~:text=may%20be%20set%20by%20specifying%20-option
Например, -crf 0 в ffmpeg обычно означает lossless-качество, но в SVT-AV1 этот режим (пока) не сделали*, поэтому по счастливой случайности выбирается авто-качество. А вот в libaom-av1 сделали.
Видимо раньше означало. В двух двугих перекодировщиках в cq значение "0" означает автоматическое определение. Выполни ffmpeg -h encoder=h264_nvenc или ffmpeg -h encoder=hevc_nvenc, посмотри что он тебе выдаст. Подскажу: "-cq E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)"
Есть ошибка в zscale=width=%width%:height=-1, из-за 4:2:0 надо сделать высоту гарантированно кратной двум (height=-2).
Не понял проблему, если честно. У меня всё норм.
hwaccel логично сделать целиком отключаемым, а выбор кодека хардкодить под себя.
Без проблем. Сделай себе если тебе это надо.
Ещё если видео кодируется только ради залива на видеохостинг, то можно не думать над настройками и не выбирать медленный AV1. Потому что видеохостинг ещё раз переконвертирует видео со своими настройками. Всё что нужно - дать ему достаточно качественный исходник, об эффективности кодирования можно почти не думать (если интернет не медленный).
-async 1 мог перекочевать из других советов, потому что это неочевидная опция ресемплера**, заданная неочевидным образом***, нужна ли она на самом деле - можно долго думать.
это значение для дефолтного ресемплера swr, который выбирается по умолчанию. в принципе без этого параметра тоже всё нормально кодируется, но я его взял как рекомендацию для решения потенциальных проблем десинхронизации видео и аудио дорожек.
У меня ещё есть способ превращения filtergraph'а из заклинания в читаемый код, но тут он не нужен (эту строку для HDR=>SDR используют как раз как заклинание, в её смысл вникать не обязательно)
https://pastebin.com/j7dTCsDf