Как получить текущий каталог на библиотеке классов?

Я пытаюсь понять вашу проблему.

Моя программа ScreenCaptureEncode использует стандартные настройки кодировщика Microsoft:

  • Профиль: базовый уровень
  • Уровень: 40
  • CODECAPI_AVEncCommonQuality: 70 [117 ]
  • Битрейт: 2000000

Исходя из моих результатов, я считаю, что качество хорошее / приемлемое.

Вы можете изменить профиль / уровень / битрейт с помощью MF_MT_MPEG2_PROFILE / MF_MT_MPEG2_LEVEL / MF_MT_AVG_BITRATE. Для CODECAPI_AVEncCommonQuality кажется, что вы пытаетесь использовать локально зарегистрированный кодер, потому что вы на Win7, чтобы установить это значение на 100, я думаю.

Но я не думаю, что это сильно изменит ситуацию.

Зв

здесь 3 скриншота с экраном печати клавиатуры:

  • экран
  • кодированный экран, воспроизводимый видеоплеером в полноэкранном режиме
  • кодированный экран Воспроизведение видео проигрывателем в не полноэкранном режиме

enter image description here

Два последних изображения из одного и того же видео кодированного файла. Видеоплеер вводит псевдонимы, когда не воспроизводится в полноэкранном режиме. Тот же кодированный файл, воспроизводимый в полноэкранном режиме, не так плох, как по сравнению с исходным экраном, так и с настройками кодера по умолчанию. Вы должны попробовать это. Я думаю, что мы должны смотреть на это более внимательно.

Я думаю, что псевдоним исходит от вашего видеоплеера, и потому что не играет в полноэкранном режиме.

PS: я использую видеоплеер MPC-HC.

PS2: мою программу нужно улучшить:

  • (не уверен) использовать IDirect3D9Ex для улучшения буферизованного механизма. В Windows7 для рендеринга лучше использовать IDirect3D9Ex (без буфера подкачки). Возможно, это то же самое для экрана захвата (список задач).
  • Я должен использовать два потока, один для экрана захвата и один для кодирования.

РЕДАКТИРОВАТЬ

Вы читали это:

CODECAPI_AVLowLatencyMode

Режим с низкой задержкой полезен для связи в реальном времени или захвата в реальном времени, когда задержка должна быть минимизирована. Однако режим с низкой задержкой может также снизить качество декодирования или кодирования .

blockquote>

О том, почему моя программа использует MFVideoFormat_RGB32, а ваша - MFVideoFormat_YUY2. По умолчанию в SinkWriter включены конвертеры. SinkWriter преобразует MFVideoFormat_RGB32 в совместимый формат кодера h264. Для кодировщика Microsoft прочитайте это: Видеокодер H.264

Формат ввода:

  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

Таким образом, MFVideoFormat_RGB32 отсутствует. Я думаю, что SinkWriter выполняет преобразование с использованием DSP Color Converter.

Так что определенно проблема не в преобразовании rgb в yuv до кодирования.

PS (последний)

, как сказал Маркус Шуман,

H.264 больше предназначен для естественного контента, а не для захвата экрана.

blockquote>

Он должен был упомянуть, что проблема особенно связана с захватом текста.

Вы только что нашли ограничение кодера. Я просто думаю, что ни один кодировщик не подходит для кодирования текста с приемлемым растяжением, как я упоминал при рендеринге видеоплеера.

Вы видите псевдоним при окончательном захвате видео, потому что это фиксированная информация внутри фильма. Воспроизведение этого фильма в полноэкранном режиме (так же, как захват) - это нормально.

В Windows текст рассчитывается в соответствии с разрешением экрана. Так что дисплей всегда хорош.

это мой последний вывод.

26
задан lexeme 15 June 2018 в 10:30
поделиться