1. Один из старейших русских кланов Black Heaven, inc объявляет набор бойцов в ArcheAge. Зарегистрируйтесь и подайте заявку.

Учимся делать качественное видео для видеохостингов

Тема в разделе "Трактиръ", создана пользователем Kulala, 12 апр 2014.

  1. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Постараюсь тут набросать мануал по видеокодингу игрового видео для заливки на ютуб.

    Кто все понял может дальше не читать ))



    • Для начала установите все эти программы, а так же набор кодеков K-Lite.



    • Перед непосредственно кодингом самое главное - это сделать качественный источник.
      Вариантов миллион, но самые лучшие - это запись в lossless качестве. Их и обсудим.

    1. Fraps
    Фрапс пишет только в lossless качестве, но есть тонкость - цветовая субдискретизация или в более широком понятии Color space.
    Нас интересуют только 2 настройки.
    Показать
    [​IMG]

    Force lossless RGB capture заставляет писать в цветовом пространстве RGB, если галочка не стоит то в YUV.
    30 fps - frame rate.
    2. Bandicam
    Показать
    [​IMG]




    • Теперь нужно пережать полученное видео для хранения и заливки на видеохостинги.
    Для хранения достаточно пережать в Avisynth > MeGui.
    Но если вы хотите сделать ролик в Sony Vegas, то следует поступать следующим образом:

    Sony Vegas > Debugmode > Avisynth > MeGui
    1. Собрать проект.
    2. Настройка Sony Vegas:
    Показать
    [​IMG]

    3. Жмем Render As.
    4.
    Показать
    [​IMG]

    5.
    Показать
    [​IMG]

    RGB32 - цветовое пространство, для нашего случая можно брать и RGB24, не принципиально.
    Write audio - подхват аудио дорожки (в lossless качестве).
    6. В следующем окне показано куда сохранился так называемый signpost AVI файл.
    Показать
    [​IMG]

    не закрываем это окно.
    7. Создаем текстовый файл с разрешением .avs со следующим содержанием:
    Код:
    AVISource("E:\Fraps\Render\Untitled.avi")
    ConvertToYV12()
    Файл назовем, скажем, 222.
    Очевидно, что в кавычках путь к вашему видео, а точнее к его signpost AVI файлу.

    Либо создаем файл со следующим содержанием, если вы хотите сделать апскейл.
    Код:
    AVISource("E:\Fraps\Render\Untitled.avi"
    Spline64Resize(3840,2160)
    ConvertToYV12()
    Вместо Spline64Resize можно использовать другие методы ресайза, например BlackmanResize и LanczosResize, на мой взгляд эти три метода дают наиболее хорошие результаты для ютуба, причем первый больше всего похож на оригинал, но чуть замылен, а вторые более резки, но дальше от оригинала.
    Цифры для ресайза приведены следующие 1920*2х1080*2, т.е.разрешение видео умножаем на два.
    8. Запускаем MeGui
    Показать
    [​IMG]

    В AviSinth Script вставляем наш только что созданный текстовый файл.
    Выбираем Encoder Settings х264 для видео и Lame MP3 для аудио.
    File format - MP4.
    Настраиваем x264 кодек:
    Показать
    [​IMG]

    Настраиваем Lame MP3 кодек:
    Показать
    [​IMG]

    После кодирования у нас должно получиться 2 файла - 222.mp4 с видео дорожкой и 222.mp3 с аудио дорожкой.
    Нужно их смиксовать в один файл.
    Показать
    [​IMG]

    Показать
    [​IMG]

    Убедитесь что fps соответствует fps источника, в нашем случае 30 fps.
    В противном случае смотрите выше, что вы сделали не так.



    Мануал кажется огромным, однако, когда у вас уже все настроено, запустить кодироваться видео - это дело пары минут.



    F.A.Q.

    Показать

    q. Зачем снимать в lossless качестве?
    a. Если брать только качество и не учитывать такие факторы как нагрузка на процессор, объемы данных и т.д., то лучше всего работать с оригинальным изображением и только один раз пережимать в конце.
    Конечно сейчас есть неплохие аппаратно-программные средства снимающие не в lossless, например cuda и shadowplay. 99% юзеров устраивает их качество, остальным курить мой мануал.

    q. Тогда почему же мы пережимаем 2 раза?
    a. Действительно мы пережимаем кодеком х264, и потом еще раз, когда заливаем на youtube. Но если вы сразу будете заливать на ютуб в лосслес качестве, то это займет гораздо больше времени, к тому же результат может быть даже хуже, чем после нашего кодирования, как это не парадоксально. Сложно дать этому объяснение, не зная алгоритмов работы ютуба. Но практика показывает, что это так.
    К тому же пересжатые видео удобно хранить на жестких дисках.

    q. Почему 30 fps а не, скажем, 60?
    a. Для игрового видео действительно лучше брать 60 fps, но если заливать на видеохостинг, вы получите тот же битрейт что и для 30 fps, но он будет на вдвое большее количество кадров, следовательно качество каждого кадра пострадает.

    q. Что такое апскейл?
    a. Upscaling - процесс повышения разрешения и качества цифрового изображения или видео.
    В нашем случае мы увеличиваем картинку в 2 раза (цифры приведены для разрешения 1920х1080), при заливке на ютуб качество видео будет доступно в качестве 4к и ютуб выделяет значительно больше битрейта на такое видео. Делать его или нет, решать вам.

    q. Что там с цветовой субдискретизацией, зачем оно вообще нужно?
    a. Тема сложная и больная для игрового видео, в двух словах не описать, но я попробую.
    Для начала конечно стоит ознакомиться с основами: цветовая субдискретизация и Color space.
    Если пытаться объяснить совсем по простому, то грубо говоря самая левая картинка 4:4:4 это наш оригинал, а самая правая 4:2:0 - это то, что мы получаем на ютубе, как не крути.
    Показать
    [​IMG]
    [​IMG]

    Особенно это критично для игрового видео, где обычно много надписей состоящих из нескольких пикселей, как, например, ники персонажей.
    Идея мануала состоит в том чтобы работать с оригинальным изображением до самого момента пересжатия. А оригинальное игровое видео отображается в цветовом пространстве RGB. Так же редполагается, что далее вы будете работать в Sony Vegas, а он то же работает в пространстве RGB.
    К тому же важно не переходить в другое цветовое пространство и не понижать субдискретизацию до апскейла.
    Почему, наглядно можно посмотреть на следующем примере:
    Показать
    Берем 8 пикселей сохраняем в png
    [​IMG]
    Сохраняем их же в jpg, суб-ция 4:2:0, такая же как на ютубе, такая же как YV12.
    [​IMG]
    Берем 8 пикселей в png и сделаем билинейный апскейл в 2 раза.
    [​IMG]
    Берем эти 32 пикселя и сохраняем их в jpg.
    [​IMG]
    Теперь берем 8 пикселей в jpg и делаем апскейл в 2 раза.
    [​IMG]
    Теперь берем 32 пикселя апскейлутных будучи в RGB пространстве и сохраненных в YV12, и делаем обратный ресайз тем же методом.
    [​IMG]
    Тоже делаем для 32 пикселей апскейлутных уже после перевода в YV12
    [​IMG]
    Все изображения для удобства были увеличены на 3200%, заскринены и сохранены в png.

    Таким образом мы получаем:
    Оригинал [​IMG] апскейлим, переводим в YV12 и ресайзим назад, получаем: [​IMG]
    Оригинал [​IMG] переводим в YV12, апскейлим и ресайзим назад, получаем: [​IMG]

    Опыт можете повторить сами, цвета я брал следующие:
    первая строчка слева-направо: RGB FF00FF 00FF00 FFFF00 FF0080
    вторая строчка слева-направо: RGB 0000FF 00FFFF FF8000 FF0000.

    На самом деле на больших картинках результат не на столько заметен на глаз, но разница есть.

    q. Почему именно такие настройки кодека?
    a. Я старался подобрать настройки так, что бы быть ближе всего к оригиналу на выходе при меньшем битрейте. Критику от гуру приемлю. ))
    Последнее редактирование: 31 май 2014
    IVN, BoBko, Jeton и 2 другим нравится это.
  2. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Я не знаю как тут можно доступнее писать.
    Заливаешь fraps голый на ютуб в aion и он по понятным причинам из 4:4:4 превращается в 4:2:2. Визуально это очень заметно на никах красных, которые становятся плохочитаемы.
    Заливаешь fraps голый на ютуб в АА и он точно так же по понятным причинам из 4:4:4 превращается в 4:2:2. Но как-то пох, все нормально читается. А то, что цвета переданы не точно - а не пох ли? Если не мешает.

    А твоя борьба за точную цветопередачу в любом случае бессмысленна, т.к. потери так или иначе есть и они заметны.
    Сообщение добавлено 14 апр 2014, оригинальное сообщение: 14 апр 2014
    http://therise.ru/forum/showthread.php?16749-Youtube-4k
  3. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Хочешь с квадратиками поиграться, пожалуйста. Спецально для тебя сделал опыт. ))
    Показать
    Взял 8 пикселей сохранил в png
    [​IMG]
    Сохранил их же в jpg, суб-ция 4:2:0, такая же как на ютубе, такая же как YV12.
    [​IMG]
    Взял 8 пикселей в png и сделал билинейный апскейл в 2 раза.
    [​IMG]
    Взял эти 32 пикселя и сохранил их в jpg.
    [​IMG]
    Теперь взял 8 пикселей в jpg и сделал апскейл в 2 раза.
    [​IMG]
    Теперь берем 32 пикселя апскейлутных будучи в RGB пространстве и сохраненных в YV12, и лелаем обратный ресайз тем же методом.
    [​IMG]
    Тоже делаем для 32 пикселей апскейлутных уже после перевода в YV12
    [​IMG]
    Все изображения для удобства были увеличены на 3200%, заскринены и сохранены в png.

    Таким образом мы получаем:
    Показать

    Оригинал [​IMG] апскейлим, переводим в YV12 и ресайзим назад, получаем: [​IMG]
    Оригинал [​IMG] переводим в YV12, апскейлим и ресайзим назад, получаем: [​IMG]
    Опыт можете повторить сами, цвета я брал:
    первая строчка слева-направо: RGB FF00FF 00FF00 FFFF00 FF0080
    вторая строчка слева-направо: RGB 0000FF 00FFFF FF8000 FF0000.
  4. Elidan
    Offline

    Elidan

    Ник:
    Elidan#3881
    Сообщения:
    4.843
    Симпатии:
    488
    Таким образом мы получаем
    [​IMG]
    Kulala нравится это.
  5. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Красивые пиксели, искаженные относительно оригинала. Причем цвета рандомные.
    А на деле.
    Сообщение добавлено 15 апр 2014, оригинальное сообщение: 15 апр 2014
    p.s. вот кстати морковный красный. в Аion был примерно такой красный и смысл этих манипуляций бул нулевой, т.к. на твоем же примере видно что при любых раскладах вместо читаемых в RGB ников там получалось нечитаемое говно.
    Последнее редактирование: 15 апр 2014
  6. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    С тобой все понятно короче.
  7. BoBko
    Offline

    BoBko

    Сообщения:
    2.582
    Симпатии:
    1
    Как 2 производителя контента вы остаётесь довольными своими результатами, но до сих пор не было комментариев от зрителей, для которых собственно вы и проходите все эти круги декодирования. Дома есть возможность посмотреть видео на хорошем NEC мониторе и на "обычном"!
    Я как сторонний наблюдатель, не могу определиться как мне переобжимать мои видео с GoPro по вашим гайдам :D
  8. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Ну кидай файл инфо своего источника, посоветуем.
  9. MOPKA
    Offline

    MOPKA

    Ник:
    Mopka
    Сообщения:
    4.952
    Симпатии:
    528
    Еще сраный ютуб тупит и тормозит, Гибб, я твою видюху с кораблями последнюю отчаялся в итоге посмотреть именно в топ качестве предложенном... Идет 20 секунд, потом тупит 30... И это не от моего коннекта как ты понимаешь, у меня сотка вполне реальная
  10. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Я то понимаю, но у блида с апскейлом никаких проблем ''если норм коннект'' )))))
    Я то заметь про апскейл пока не пишу в мануале.
  11. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Каждый день-два на Луцие выкладывают видео. Смотрю в 4к всегда. Иногда тупит - жду 2 мин и смотрю без прерываний.
    Сообщение добавлено 15 апр 2014, оригинальное сообщение: 15 апр 2014
    то о чем ты пишешь безразлично 99% зрителей, они просто не увидят разницы сами, пока ты сам не начнешь им рассказать что она есть.
    И смысл твоих манипуляций в том, что бы точнее передать цвета, но в любом случае с искажением. Зачем? При этом ты предлагаешь отказаться от супер удобного шадоуплея и пользоваться трешовым фрапсом, в котором кроме rgb нет вообще ничего.
    Сообщение добавлено 15 апр 2014
    P. S. Закодируй свое видео морское сразу из Вегаса 264 и с апскейлом, залей на Ютуб. Думаешь хоть кто-то разницу увидит и скажет что первое видео круче? Я уверен что нет.
  12. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Да мне насрать на 99% зрителей, я это не для них пишу, и не для тебя. Сколько можно одно и тоже писать.
    Разница в качестве есть, она видна на глаз, а то что 99% ее не видят, это
    их проблема.
  13. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Мне даже интересно, что там за "видная на глаз разница" будет.

    Я смотрю на твой пример и вижу ровно такое же видео по АА, как и миллион других, что выкладывают каждый день.
  14. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Тебе все равно хрен что докажешь, сравнительные те ты ты делать не хочешь. К чему тогда все это пустозвонство?
  15. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Вот оно сравнение. Я сразу кодирую и заливаю. Без лишнего дроча.
    У тебя уже есть с твоим адским алгоритмом в 100500 пунктов видео, просто закодируй его по новой прям из вегаса с большим битрейтом и апскейлом да залей. Я так и делаю. Вот и будет отличное сравнение, не?
  16. Elidan
    Offline

    Elidan

    Ник:
    Elidan#3881
    Сообщения:
    4.843
    Симпатии:
    488
    А ни пойти ли тебе нахуй, клоун? Тебе уже 10 раз предложили взять фрапс выложить твоим говноспособом и сравнить, на что ты предлагаешь сделать все за тебя и перезалить дважды только чтобы тебе что-то там доказать. Ты слишком крут для этой темы, иди отсюда нахуй.
  17. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Я думал уже объяснил что это будет не тоже самое, что снимать шадоуплем и делать апскейл потом.
  18. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Ну справедливости ради можно зарендерить твой этот фрапс в 60k битрейт x264, а потом считая его за источник (типа полученный шадоуплеем) в вегасе апскейльнуть и с большим битрейтом зарендерить x264 опять же, как я и делаю.

    Я не знаю какой именно энкодер там у Nvidia используется и как оно в точности работает, но это один хрен h.264 стандарт на выходе.
  19. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    Какой битрейт на выходе у шадоуплэя?
  20. bl33d
    Offline

    bl33d

    Ник:
    Katana
    Сообщения:
    11.007
    Симпатии:
    39
    Как нравится настраиваешь. От 10к до 50к.
    Video: MPEG4 Video (H264) 1920x1080 60fps 48279kbps [Video]
  21. Kulala
    Offline

    Kulala

    Ник:
    Kulala
    Сообщения:
    7.354
    Симпатии:
    293
    От 10М до 50М тогда.

    Я мануал хотел дописывать в любом случае, так как там апскейл не затронут, потому что там не все так тривиально как кажется некоторым. И какие нибудь примеры я сделаю.
    Но если я буду делать так как ты говоришь, нужно понимать, что поставив просто банально ABR вместо CRF можно получить кардинально разные результаты, и это не трогая еще тонкие настройки, по этому для чистоты эксперемента, нужен конечно источник с шадоуплэя и одновременно записаный фрапс.
    Я шэдоуплэем снять не могу, так как у меня старенькая видеокарта.
    А вообще если брать не лослесс запись, на сегодня мне видится самым интересным вариант CUDA.

Сейчас в этой теме: (пользователей: 0 и гостей: 0)