如何使用FFMPEG更高效地对50个H264流进行转码?

时间:2019-06-19 22:19:17

标签: ffmpeg h.264 x264

我需要(重新)转码〜50个实时流。这些流在H264中具有720p至1080p的分辨率,并且比特率高达10M。我只想将流的质量和比特率降低到最高720p。 2M比特率。

这就是我现在正在做的事情:

ffmpeg -re -i "http://domain.tld/path/file.ext" -vcodec libx264 -preset veryfast -vf scale=-2:720 -b:v 2M -maxrate 2M -bufsize 1M -acodec libfdk_aac -f flv "rtmp://127.0.0.1:1935/live/stream_xyz"

我的服务器CPU(2 x Xeon E5-2630 v3)已经达到100%,只有12个流。我将在下个月将服务器升级到2 x Xeon Gold 5118,但我认为这不会给我带来更多的功能。

有人可以帮助我,以提高效率吗?

使用GPU这样做会更高效/更便宜吗?

或其他任何想法,以尽可能高效和廉价地做到这一点?

谢谢

1 个答案:

答案 0 :(得分:1)

  

有人可以帮助我,以提高效率吗?

不。视频编码占用大量CPU。期。如果有一种“更有效”的方法,它将已经是默认设置。

您可以使用硬件加速(nvenc,quicksync等)来“便宜”,但是不会获得12个流,并且质量会更差。或使用较慢的x264预设(超快)并以这种方式牺牲质量来提高速度。

只有另一种选择是使用基于云的服务将资本支出换成运营支出。