使用gstreamer将原始视频编码到h264
我正在使用nvh264enc将原始视频编码为h264 原始视频是使用dxgiscreencapsrc生成的,dxgiscreencapsrc具有以下功能使用gstreamer将原始视频编码到h264,gstreamer,h.264,yuv,Gstreamer,H.264,Yuv,我正在使用nvh264enc将原始视频编码为h264 原始视频是使用dxgiscreencapsrc生成的,dxgiscreencapsrc具有以下功能 video/x-raw: format: BGRA width: [ 1, 2147483647 ] height: [ 1, 2147483647 ] framerate: [ 0/1, 2147483647/1 ] 因此,它以BGRA格式生成原始视频 NVH264ENC不
video/x-raw:
format: BGRA
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
因此,它以BGRA格式生成原始视频
NVH264ENC不支持此压缩格式,但也支持多种其他格式
它支持的格式列表是NV12、YV12、I420、BGRA、RGBA、Y444、VUYA
现在我不知道哪种格式最适合压缩到H264
我应该将其保留为BGRA,还是应该将BGRA转换为其他格式,如I420(使用gstreamer视频转换),然后以这种方式压缩为h264
每种原始视频格式的优点/缺点是什么,转换会使h264变得更糟吗
我应该将其保留为BGRA,还是应该将BGRA转换为其他格式,如I420
如果已经支持像素格式,请坚持使用。否则,从一种像素格式转换到另一种像素格式只会浪费无用的CPU周期(特别是考虑到编码器元素在GPU中可能更有效地完成这项工作)
每种原始视频格式的优点/缺点是什么,转换会使h264变得更糟吗
这里没有好处/坏处。所有这些格式都指定了原始视频数据的结构方式。唯一需要注意的是,如果您要使用像NV12/YV12/I420这样的格式,因为这些格式使用,所以这将是有损转换。一般来说,基于YUV的格式需要更少的处理(因为这是编码器可能在内部使用的),但正如前一点所述,您最好让编码器元素以更高效的方式为您完成这项工作