Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 使用FFmpeg实现高质量屏幕捕获_Video_Ffmpeg_Video Encoding_Screen Capture_X264 - Fatal编程技术网

Video 使用FFmpeg实现高质量屏幕捕获

Video 使用FFmpeg实现高质量屏幕捕获,video,ffmpeg,video-encoding,screen-capture,x264,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:v16m。输出视频的比特率仅为2mb/s。

我正试图找出一个在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:v16m
。输出视频的比特率仅为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 
我甚至尝试捕获原始视频,然后将其转换为libx264编解码器viedeo。但是输出被破坏了

我使用的是今年4月23日构建的ffmpeg版本。它没有像我在很多帖子中提到的那样预设的
-vpre lossless\u ultrafast

编辑:

经过更多的研究,这是我最终使用的命令。我必须使用h264编解码器和yuv420p作为像素fmt,因为我需要能够使用quicktime播放quicktimes

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颜色空间


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


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

谢谢链接。是的,我看到了,但是我们的ffmpeg版本没有这些命令中使用的预设。你有什么预设?非常有限。。。libvpx-1080p50_60、libvpx-360p、libvpx-720p、libx264-ipod640、libvpx-1080p、libvpx-720p50_60、libx264-ipod320年似乎非常有限。。。如果我理解正确的话,1080p对你来说是不够的,对吧?1080p是用于libvpx的。我只是尝试一下。不好(可能丢失了LIXX264第一行的QSCORE参数。@ RoGrdD打包LIX264忽略了<代码> -QSCAS/CODE >。使用“代码> -CRF < /代码>。请包括完整的<代码> FFMPEG控制台输出,用于您的前两个命令。访问此链接,用于工作FFPEG+C++ MP4格式屏幕记录器应用程序。您尝试过<代码> -CRF 0 < /COD吗?e> 这对我很有效。