gpt4 book ai didi

h.264 - Media Foundation h264 编码器在动态场景中质量不佳

转载 作者:行者123 更新时间:2023-12-05 07:47:02 26 4
gpt4 key购买 nike

我正在编写一个实时记录 PC 屏幕并使用 Media Foundation h264 编解码器对其进行编码的应用程序。如果屏幕上的图片没有很多动态变化,则生成的视频质量会保持很高。如果图片有很多动态变化(例如网页的快速滚动),则视频质量会变得非常低。这听起来像是一个低比特率问题,但引用 OSX 录音应用程序在相同设置下工作正常。

编解码器配置:

  • 25 帧/秒
  • 1364 x 768 分辨率
  • 基本资料
  • 1.2 MBit 比特率

为了最大限度地提高质量,我使用以下参数配置了编解码器:

  • CODECAPI_AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
  • CODECAPI_AVEncCommonQuality = 100
  • CODECAPI_AVEncAdaptiveMode = eAVEncAdaptiveMode_FrameRate
  • CODECAPI_AVEncMPVGOPSize = 10

不幸的是,这并没有多大帮助。唯一具有实际效果的设置是比特率。

演示问题的示例视频: https://www.dropbox.com/s/b26odaeyaygxigo/10-22-2016_15.08.17.mp4?dl=1

最佳答案

这一步需要设置码率和质量:

VARIANT controlModeVar;
InitVariantFromUInt32(eAVEncCommonRateControlMode_GlobalVBR,
&controlModeVar);
hr = CodeApi->SetValue(&CODECAPI_AVEncCommonRateControlMode,
&controlModeVar);
VARIANT quality;
InitVariantFromUInt32(BitRate, &quality);
hr = CodeApi->SetValue(&CODECAPI_AVEncCommonMeanBitRate,
&quality);

InitVariantFromUInt32(eAVEncCommonRateControlMode_Quality,
&controlModeVar);
hr = CodeApi->SetValue(&CODECAPI_AVEncCommonRateControlMode,
&controlModeVar);
InitVariantFromUInt32(H264QualityLevel, &quality);
hr = CodeApi->SetValue(&CODECAPI_AVEncCommonQuality, &quality);

最小操作系统需要 windows8。

关于h.264 - Media Foundation h264 编码器在动态场景中质量不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40192242/

26 4 0
文章推荐: email - 发送包含许多大附件的电子邮件时,Gmail API 推送通知过多
文章推荐: arduino - 在 Arduino 中包含 C 和 C++ 库时出错
文章推荐: visual-studio-2015 - 如何在 ASP.NET Core MVC 中添加 DefinitelyTyped
文章推荐: javascript - Material -UI + React : Why doesn't 's onRowSelection work for Select All?