video - 使用 FFmpeg 进行高质量屏幕截图

标签 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 编解码器视频。但输出已损坏。

我使用的是今年 4 月 23 日构建的 ffmpeg 版本。它没有像 -vpre lossless_ultrafast 这样的预设。我在很多帖子中看到过。

编辑:

经过更多研究,这是我最终使用的命令。我必须使用 h264 编解码器和 yuv420p 作为 pixel_fmt,因为我需要能够使用 quicktime 播放 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

最佳答案

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

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

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

关于video - 使用 FFmpeg 进行高质量屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25365927/

相关文章:

video - 使用 FFmpeg 进行 H.264 转换(来自 RTP 流)

Powershell 和 FFMPEG - FFMPEG 未执行

编码: EOF timestamp not reliable期间的ffmpeg错误

c - FFmpeg 解码 .mp4 视频文件

android - 如何在Android中以编程方式捕获没有音频的视频?

java - 加速加密?

video - 那里有哪些视频编码和流媒体服务?

android - 在 Android 中可以使用 red5 代替 FFmpeg 吗?

ffmpeg - 使用 -to 时出现问题,将 -to 与帧速率更改结合使用

azure - Windows Azure 的视频编码