优化ffmpeg以加快实时流处理

我目前正在使用ffmpeg运行在Debian 8 VPS上以2个vCores @ 2.1Ghz托管的24/7音乐直播。我为此编译的ffmpeg版本启用了CPU功能,因此没有问题。

ffmpeg使用以下选项进行编译:

--enable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-postproc --enable-libtheora 
--enable-version3 --enable-libx264 --enable-libfdk-aac --disable-stripping --disable-encoder=libschroedinger
--enable-librtmp --enable-gnutls --enable-avfilter --enable-libfreetype --disable-decoder=amrnb 
--enable-fontconfig --disable-mips32r2 --disable-mipsdspr2 --disable-htmlpages --disable-podpages
--disable-altivec --enable-libass

使用此配置,我可以以13 FPS的速度持续播放视频(视频大部分是静态的,因此对我来说很不错),而ffmpeg的运行速度约为1.2,CPU使用率约为120%:

ffmpeg -threads 0 -thread_queue_size 256 -f alsa -ac 2 -i hw:Loopback,1,0 -fflags +genpts -loop 1 -r $FPS -i $JPEG \
-filter_complex \
"[0:a]showwaves=s=817x200:mode=cline:colors=0xfc6603,colorkey=0x000000:0.875:0.875,format=yuva420p,split=2[v][v2];[v2]hflip[v2h];[1:v][v]overlay=0:135[o];[o][v2h]overlay=(W-w)+35:135,\
drawtext=fontfile=$FONT:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:textfile=$TEXT: fontsize=64: reload=1: y=h-line_h-20: x=20,\
drawtext=fontfile=$FONT:bordercolor=$BCOLOR: borderw=1: fontcolor=$COLOR:text='@proteh_': fontsize=24: reload=0: y=20: x=1795[outv]" \
-map "[outv]" -map 0:a \
-vcodec libx264 -movflags +faststart -break_non_keyframes 1 -x264opts keyint=$KEYINT:min-keyint=$KEYINT:bframes=2:scenecut=-1 -b:v 1000k \
-preset ultrafast -crf 32 -pix_fmt yuv420p -s 1920x1080 \
-c:a libfdk_aac -b:a 320k -ar 44100 \
-f flv $URL

流完美运行(没有缓冲)并且看起来还不错,但是我想将FPS至少增加一些,至少达到30,同时将ffmpeg的速度保持在1倍或更高,以避免缓冲。

我一直在尽最大努力优化过滤器,因为我发现这些过滤器消耗的资源最多,但是我对ffmpeg的了解并不多,所以我目前有点困惑。

我在这里做任何疯狂的事情,可能会消耗不必要的资源吗?我可以做些什么使ffmpeg更快地运行吗?

干杯!