Обновить
1
0

Пользователь

Отправить сообщение
Декодер используем NVIDIA или ffmpeg. Когда встречается кривой кадр, который не получается раскодировать мы его пропускаем и продолжаем работать. Такое часто бывает в mpeg2ts потоках.
Трансмаксеры свои.
Верно подмечено. Quicksync отличная вещь, но встречается только на desktop-ах и некоторых серверных процессорах E3. На практике мы пока работали только с quicksync на десктопах.
Если мы говорим про quicksync и подразумеваем desktop, то самый на мой взгляд выгодный вариант такой:
-Вставляем nvidia GTX. Ограничений по колличеству сессий на декодинг нет. Ограничение на 2 одновременные сессии енкодинга.
-Весь декодинг делаем на GTX.
-Весь енкодинг делаем на quicksync. Quicksync умеет создавать софтовые енкодинговые сессии когда кончились хардварные так что грузим процессор по полной.
-Если есть куда используем 2 енкодинговые сессии, которые поддерживает GTX.
И дешево и производительно получается.
работа с nvenc идет без ffmpeg-а. Сам ffmpeg используется в фильтрах между декодером и енкодером если он нужен. Работа с libx264 тоже происходит напрямую.
Причин тому несколько. Одна из них в том, чтобы явно контролировать вставку ключевых кадров из нашего кода. Вторая в том, чтобы иметь возможность контролировать/кешировать nvenc контексы, чего с ffmpeg сделать нельзя.
Спасибо за статью.
По логике вещей youtube должен сделать прием live по webrtc. Это было бы логичным продолжением политики google.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность