首页 > 解决方案 > ffmpeg RTSP 使用 GPU 流式传输到 RGB24

问题描述

-hwaccel cuvid我已成功将 RTSP 流输出到 RGB24 管道,但我注意到尽管使用了并且CPU 使用率仍然很高(20-45%)-vcodec h264_cuvid(没有硬件加速它可以达到 100-300%;基于 Linux 上的“top”命令) .

我正在使用的当前代码是:

ffmpeg
.input(*rtsp_add*, rtsp_transport='tcp', fflags='nobuffer', flags='low_delay', hwaccel='cuvid', vcodec='h264_cuvid', vsync=0)
.output('pipe:', format='rawvideo', pix_fmt='rgb24')
.run_async(quiet=False, pipe_stdout=True)

在我使用 -vcodec h264_nvenc 的那一刻,我收到一堆错误,因为我认为它与 RGB24 不兼容。使用命令“ffmpeg -pix_fmts”,我注意到几乎没有任何东西属于“硬件加速格式”。我不介意在 YUV420p、YUV444p、RGB24 等环境中工作……这是否意味着如果我选择使用硬件编码,我将无法将图像输出到管道中?

与将输出写入物理文件并再次读取以操作数据以提高性能相比,我更愿意将输出写入管道。输出到内存中的 JPG 或 PNG 的选项也很好。

标签: python-3.xffmpeghardware-acceleration

解决方案


推荐阅读