Тестирование ffmpeg: проблемы и решения.
Ну что-же! Вот прошло тестирование новой сборки сервера.(Сборка на двух E5-2680) Много времени и сил было потрачено на поиски информации в интернете, и столько же на решение появившихся проблем. Думаю лучше начать все по порядку.
Булочка.zip105.14 MbDownload
Первая возникшая проблема была связана с тем, что кодек х264 не хотел работать на многопроцессорной сборке, задействую сразу 2 процессора. Каждый новый запуска батника использовал только один процессор в системе. Второй в это время просто простаивал. Решение было найдено множественными изменениями количества потоков через параметр threads. После множественных изменений, было найдено число которое позволило использовать второй процессор в кодировании(-x264-params "threads=128").
Вторая проблема была связана с системой управления битрейтом. Так как все стриминговые сервисы не уважают переменный битрейт(VBR, CQP), а сам ffmpeg не поддерживает CBR пришлось искать решение в интернете. Благо на самой ffmpeg wiki есть костыль для обхода.(-x264-params "nal-hrd=cbr" -b:v 250К -maxrate 250К -bufsize 500K) Все три значения должны присутствовать, или кодировщик будет писать предупреждение. У меня почему-то начинала падать скорость кодирования.
Треть проблемы была связана с очень маленьким битрейтом который требует твич и некоторые сервисы(6Mb/sec). В динамичных сценах картинка просто разваливалась на блоки, или превращалась в сплошное месево. При использовании хваленого кодировщика NVENC, картинка становилась еще хуже. Можно было немного улучшить картинку тонкой настройкой, но это приходилось делать почти для каждой игры. Пришлось уменьшать разрешение до "1664х936" и битрейт аудио до "128kb/s", что-бы уложится в 0.064 bit/pix. Можно еще уменьшить частоту кадров. Для более качественной картинки. Но все-же динамический сцены очень сильно теряли в детализации. В итоге я решил забить на твич. Благо он у меня почему-то работает очень плохо, и скорость кодирования порой начинает почему-то падать ниже 1.00.
Думаю это пока все что я хотел написать. Про подбор количества ключевых кадров и b-кадров, я рассказывать не буду. Сам еще не понял как лучше. Но могу сказать сборка вполне нормальная и "бюджетная".
Если кому нужны фото сравнения картинок при разном битрейте, пишите в комментариях к посту. Даже просто пишите.)
п.с - Прикрепил архив с видео и фото. Исходника нет, он весит 1.5гб.
Можете задать вопросы на стримах -> https://vkplay.live/big_daniels