使用 NVENCODE 时出现损坏的输出 API
Getting corrupted output when using NVENCODE API
我正在尝试使用作为视频编解码器 SDK 11.1.5 的一部分提供的 NVENC API(特别是 AppEncode 应用程序)使用 H.264 编码对 yuv 视频(从 IMX490 传感器保存)进行编码.
使用 CMake 构建所需的库后,我给出以下命令:
./AppEncCuda -i ~/Desktop/input-yuv420p.yuv -s 320x320 -tuninginfo lowlatency -rc cbr -gpu 0 -bitrate 2M -maxbitrate 4M -vbvbufsize 6M -vbvinit 25 -bf 0 -aq 0 -cq 20 -multipass qres -o ~/Desktop/output-yuv.h264
一些附加信息:
input-yuv420p.yuv 的像素格式为 yuyv422(渐进式),2880x1860
所有标志设置均基于推荐设置(NVENC 视频编码器 API 编程指南 :: NVIDIA 视频编解码器 SDK 文档)
使用的硬件:CUDA 11.4、NVIDIA GeForce RTX 3050 Ti
我还尝试了使用 ffmpeg(h264_nvenc 和 h264_cuvid)的等效方法,并且效果很好。但是,当我尝试仅使用 NVENC APIs 进行编码时,我得到了损坏的输出。我已经尝试将像素格式转换为 yuv420p 并进行编码,但仍然无效。当我尝试使用 VLC 媒体播放器按编码文件显示时,我得到绿色 pixels/lines 和随机颜色。
我对使用 NVENC 还很陌生 API 所以我立即开始使用视频 SDK,但我遇到了这些问题。我不确定是什么原因造成的,所以任何建议都会很有帮助!
把-s 320x320
改成-s 2880x1860
就这么简单。 -s
标志表示输入分辨率大小而不是比例(这是我最初假设的)。
理想情况下,像这样的命令应该可以顺利运行:
./AppEncCuda -i ~/Desktop/input-yuv420p.yuv -s 2880x1860 -tuninginfo lowlatency -rc cbr -gpu 0 -bitrate 2M -maxbitrate 4M -vbvbufsize 6M -vbvinit 25 -bf 0 -aq 0 -cq 20 -multipass qres -o ~/Desktop/output-yuv.h264
我正在尝试使用作为视频编解码器 SDK 11.1.5 的一部分提供的 NVENC API(特别是 AppEncode 应用程序)使用 H.264 编码对 yuv 视频(从 IMX490 传感器保存)进行编码.
使用 CMake 构建所需的库后,我给出以下命令:
./AppEncCuda -i ~/Desktop/input-yuv420p.yuv -s 320x320 -tuninginfo lowlatency -rc cbr -gpu 0 -bitrate 2M -maxbitrate 4M -vbvbufsize 6M -vbvinit 25 -bf 0 -aq 0 -cq 20 -multipass qres -o ~/Desktop/output-yuv.h264
一些附加信息: input-yuv420p.yuv 的像素格式为 yuyv422(渐进式),2880x1860 所有标志设置均基于推荐设置(NVENC 视频编码器 API 编程指南 :: NVIDIA 视频编解码器 SDK 文档)
使用的硬件:CUDA 11.4、NVIDIA GeForce RTX 3050 Ti
我还尝试了使用 ffmpeg(h264_nvenc 和 h264_cuvid)的等效方法,并且效果很好。但是,当我尝试仅使用 NVENC APIs 进行编码时,我得到了损坏的输出。我已经尝试将像素格式转换为 yuv420p 并进行编码,但仍然无效。当我尝试使用 VLC 媒体播放器按编码文件显示时,我得到绿色 pixels/lines 和随机颜色。
我对使用 NVENC 还很陌生 API 所以我立即开始使用视频 SDK,但我遇到了这些问题。我不确定是什么原因造成的,所以任何建议都会很有帮助!
把-s 320x320
改成-s 2880x1860
就这么简单。 -s
标志表示输入分辨率大小而不是比例(这是我最初假设的)。
理想情况下,像这样的命令应该可以顺利运行:
./AppEncCuda -i ~/Desktop/input-yuv420p.yuv -s 2880x1860 -tuninginfo lowlatency -rc cbr -gpu 0 -bitrate 2M -maxbitrate 4M -vbvbufsize 6M -vbvinit 25 -bf 0 -aq 0 -cq 20 -multipass qres -o ~/Desktop/output-yuv.h264