Поделиться через


Получение хороших результатов с помощью кодека экрана Windows Media Video 9

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Она была заменена средствами чтения источника и модуля записи приемников. Средство чтения источника и модуль записи приемников оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения исходного кода и модуль записи приемников вместо пакета SDK для Windows Media Format 11, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Экранный кодек Windows Media Video 9 предназначен для создания видео с высокой степенью сжатия для захвата экрана. Поскольку большая часть потребности в снимке экрана включает в себя довольно простые и статические изображения, достигнутые высокие уровни сжатия, как правило, не означают большой жертвы в качестве изображения. Однако каждый снимок экрана отличается, и результирующее качество изображения может значительно отличаться в зависимости от обстоятельств.

Лучший способ определить параметры профиля для сеанса кодека экрана — закодировать тестовый файл с помощью потока с переменной скоростью на основе качества. Задайте для качества требуемое значение и закодируйте снимок экрана так, как если бы вы записывали окончательный файл. При записи файла воспроизводим его с помощью объекта асинхронного средства чтения, выполняя регулярные вызовы IWMReaderAdvanced::GetStatistics. Отслеживая значение члена dwBandwidthструктуры WM_READER_STATISTICS для каждого вызова, можно определить приблизительную скорость, необходимую для достижения требуемого качества. Затем эту скорость можно использовать для кодирования с постоянной скоростью.

Если вы обнаружите, что для нужного качества требуется более высокая скорость передачи, чем можно использовать в сценарии доставки, можно попробовать следующие методы, чтобы повысить эффективность кодека.

  • Используйте меньшее разрешение для снимка экрана. Захват большего разрешения экрана, чем требуется, также может создать путаницу для зрителя, предоставляя больше информации, чем требуется.
  • Используйте меньше графики в снимке экрана. Экранный кодек Windows Media Video 9 оптимизирован для кодирования примитивов и текста Windows с высоким качеством. Обычно проблемы возникают из-за растровой графики, которая часто содержит тысячи отдельных цветов. Чем меньше растровых изображений на экране при записи, тем лучше будут результаты. Если вы не можете исключить графику из снимка экрана, существует несколько способов свести к минимуму влияние растрового изображения на качество изображения.
    • Уменьшите размер рисунка.
    • Уменьшите количество отдельных графических элементов, которые отображаются на экране одновременно.
    • Уменьшите объем перемещения рисунка. Например, если рисунок находится в окне, оставьте окно как можно более неподвижным.
    • Не перемещайте указатель мыши на рисунок или перетаскивайте окна или другие элементы поверх рисунка.
  • Используйте более низкую частоту кадров. Снимки экрана часто могут быть эффективными при очень низкой частоте кадров (иногда до 4 или 5 кадров в секунду).
  • Уменьшите скорость сопровождающего звука.

Кроме того, кодек не поддерживает изменение размера прямоугольника видео. Другими словами, если вы попытаетесь использовать кодек для кодирования экрана с разрешением 800 x 600 до прямоугольника видео 640 x 480, полученное видео будет содержать значительные артефакты, которые могут сделать большую часть текста на экране неразборчивым.

Настройка потоков захвата экрана

Настройка потоков