如何通过使用avconv减少CPU消耗并将其管道化为avplay?

时间:2015-11-11 13:27:06

标签: performance capture avconv screencast

请参阅最终编辑。

我需要捕获第二台显示器并在主窗口中显示一个小窗口。我不需要质量,但需要表现。

因此,(工作)命令捕获1280x1024的第二个监视器并以15fps和水平翻转的640x480窗口显示它(来自askUbuntu):

avconv -f x11grab -r 15 -s 1280x1024 -i :0.1 -c:v mpeg4 \
  -b:v 1000k -s 640x480 -vf "hflip" -f avi - | avplay -i -
  • 如何扩展"无"插值?
  • 我用过" -c:v mpeg4"和" -b:v 1000k"要获得良好的图像质量,但......是否还有其他格式/比特率可以降低CPU消耗?
  • 我知道横向翻转是一个基本效果,但有没有办法告诉avconv使用-vf选项来减少CPU?
  • 当播放窗口星星显示时,其15fps受到尊重。但随后,它会越来越低,逐渐被冻结......直到我点击窗口。然后,它升至15fps并再次降低。为什么会这样,以及如何避免它?我尝试使用" nice -n-20"同时使用avconv和avplay,但它没有任何区别。

当我说我需要性能而不是质量时,我说保存CPU更重要......但我不想看到完全低 - 压缩工件视频

我在Ubuntu-Mate 14.04上。

谢谢!

最终编辑:命令为:

avconv -f x11grab -r 30 -s 1280x1024 -i :0.0+1920 -c:v mpeg4 \
-b:v 1000k -vf "hflip" -vf "scale=640:480" -sws_flags "neighbor" \
-f avi - | avplay -i -

但是帧率问题没有解决,它消耗了16-18%的CPU。在这个question中,有gst-launch选项,gst-launch:它占用2-4%的CPU。所以,avconvert / avplay选项对我来说没用。

1 个答案:

答案 0 :(得分:0)

尝试使用framerate选项x11grab。