使用FFmpeg进行高质量的屏幕捕获

时间:2014-08-18 14:36:38

标签: video ffmpeg video-encoding screen-capture x264

我试图找出REHL上高质量屏幕捕获的命令。

我尝试过各种各样的选择,但没有一个真正奏效。质量不够好。我对ffmpeg很新,并不是很了解所有不同的旗帜。所以任何帮助都将不胜感激!

我尝试过的命令:

ffmpeg -y -f x11grab -r 30 -s 1920x1080 -i :0.0+0,0 -vcodec libx264 -strict -2 -b:v 16M output.mov

我试过的第一个命令。奇怪的是它似乎没有保留指定-b:v 16M的比特率。输出视频的比特率仅为2mb / s。在进行屏幕捕获时,这不是指定比特率的正确方法吗?

ffmpeg -f x11grab -s 1920x1080 -r 30 -i :0.0 -qscale 0 -vcodec huffyuv output.mov

huffyuv编解码器应该是无损的,但质量似乎没有比libx264输出更好。

ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0+0,0 -vcodec copy -pix_fmt yuv420p -qscale 0 -an output.mkv
ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 30 -i output.mkv -an -c:v libx264 -qscale 0 result.mov 

我甚至试图捕获rawvideo,然后将其转换为libx264编解码器viedeo。但输出已损坏。

我正在使用今年4月23日制作的ffmpeg版本。它没有像-vpre lossless_ultrafast这样的预设,我在很多帖子中都提到了这个预设。

修改

经过更多的研究,这是我最终使用的命令。我必须使用h264编解码器和yuv420p作为pixel_fmt,因为我需要能够使用quicktime来播放快速时间。

ffmpeg -y -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0+0,0 -c:v libx264 -pix_fmt yuv420p -qp 0 -preset ultrafast output.mov

即使将-qp设置为0,质量也似乎没有太大提高。但是也可能因为根据这篇文章将rgb转换为yuv颜色空间。

https://trac.ffmpeg.org/wiki/Encode/H.264

1 个答案:

答案 0 :(得分:-1)

在互联网上找到这个,也许它会回答你的问题:

http://wiki.oz9aec.net/index.php/High_quality_screen_capture_with_Ffmpeg

编辑:此评论已过时,如评论中所述。请忽略。