编码会话需要传入D3D设备,在此之前需要创建好D3D设备。接口输出的 void* m_encoder将会用于后续编码接口的第一个参数中。
可以使用 nvEncInitializeEncoder 传入 NV_ENC_INITIALIZE_PARAMS 类型的实例,对编码器进行初始化。其中 encodeGUID 、 encodeWidth 、 encodeHeight 三项是必填选项, encodeGUID 表示使用H264编码( NV_ENC_CODEC_H264_GUID )还是H265( NV_ENC_CODEC_HEVC_GUID )编码。另外,还可以在此设置使用同步编码还是异步编码模式。
nvEncGetEncodePresetConfig 可以获取预置参数 NV_ENC_PRESET_CONFIG 。可以设置码率控制模式、平均码率等数据。
将输入的纹理指针注册成输入资源,即 m_registerResource.resourceToRegister = m_inputTexture
将注册的输入资源映射到编码器。 m_inputMapResource.registeredResource = m_registerResource.registeredResource
创建接收编码出的比特流缓冲。
在编码前需要更新输入纹理数据,即前面已经注册的纹理指针 m_inputTexture ,更新后,填充 NV_ENC_PIC_PARAMS 结构,将 NV_ENC_PIC_PARAMS.inputBuffer 赋值为前面映射的资源,即 m_inputMapResource.mappedResource ,再将 NV_ENC_PIC_PARAMS.outputBitstream 赋值为前面创建的输出比特流缓冲,即 m_outputBuffer.bitstreamBuffer ,然后调用 nvEncEncodePicture 对数据进行编码。
使用 nvEncLockBitstream 将数据从编码器中取出,即GPU到CPU。
nvenc 预设 settings.advanced.nvenc2pass 高级nvenc2pass参数automatic 自动 一般都会黑屏选其它的
high quality 高质量
high performance 高性能
bluray disk 蓝光光盘
low latency 低延迟
high performance low latency 高性能低延迟
high quality low latency 高质量低延迟
lossless 无损
high performance lossless 高性能无损
NVDefault 默认设置
步骤如下:
1、打开obs直播软件的设定,在编码去掉使用cbr固定位元素的小勾,然后把最大比特率修改为3600,缓冲大小修改为5400.
2、接着切换到影像功能,把压缩分辨率设置成1.50,滤镜选择lanczos,giant路径对画面的细节处理效果做好,看着也会更加清晰。FPS调整到60,把启动停用aero的小勾选中。
3、最后来到高级设置,在x264 cpu预设下拉框中选择veryfast模式,如果是7700k可以尝试faster。
4、以上三块设置完毕后的点击最下方的确定保存当前设置信息,然后通过obs直播就会发现画面既清晰又流畅。
扩展资料:
Open Broadcaster Software 它支持和包含以下功能:
支持H264(X264)和 AAC 编码。
支持Intel Quick Sync Video (QSV) 和 NVENC。
无限量的场景和视频源。
支持实时RTMP流推送至 Twitch,YouTube,DailyMotion,Hitbox等平台。
支持 MP4 和 FLV 格式输出。
支持捕获基于 GPU 的游戏捕获,并高性能的输出游戏视频流。
支持DirectShow 采集设备(Webcams,采集卡等)。
Windows 8 高速监控采集支持。
双线性或lanczos3 重采样支持。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)