Ffmpeg覆盖使用复杂的过滤器占用太多的cpu



我正在将输入rtmp流中继到不同的服务器。在其中一个用例中,我使用filter complex和scale2ref将图像覆盖在流的顶部,但与正常的ffmpeg命令相比,这几乎占用了10倍的cpu。

overlay:"ffmpeg-xerror-itsoffset${delaySeconds}-i${SOURCERTMP}-i${overlayUrl}-max_muxing_queue_size 9999-filter_complex";[1] [0]scale2ref[ovr][base];[base][ovr]overlay=0:0,split=1[a]"-映射0:映射";[a] "-c: v libx264-c:aac-f flv-flvflags no_duration_filesize'${forwardUrls[0]}'

简单版本:'ffmpeg-xerror-itsoffset${delaySeconds}-i${SOURCERTMP}-max_muxing_queue_size 9999-c:v copy-c:a copy-f flv-flvflags no-duration_filsize'${forwardUrls[0]}'

它没有占用太多的CPU,它占用了所需的CPU。这是意料之中的事。第二个命令比第一个命令做得少得多。

overlay命令不仅仅是添加一个overlay。它是解码视频,闪电覆盖,然后重新编码视频(这非常昂贵(,并可能进行一些自动的颜色空间对话。

";简单版本";只是读取一个编码的帧,然后不看就把它写出来。它基本上是一个文件副本。

坦率地说,我认为它的CPU只有10倍多。

最新更新