Ole*_*leg 34 ffmpeg x11 screencasting kubuntu avconv
有人建议我将未经修改的 X 显示的副本定向到一个文件,然后将该文件转换为通用视频文件。我将使用哪些命令在 Kubuntu 系统上执行此操作?(编辑:他说了一些关于将显示端口附加到文件的内容。)如果不可能,对于不依赖于快速硬件的优质屏幕录制,我的最佳选择是什么?
背景:我尝试将 avconv 与 -f x11grab 和一些 GUI 程序一起使用。但是,无论我尝试什么,生成的视频要么有伪影/模糊,要么断断续续(丢失帧)。这可能是由于 CPU/内存限制。
目标:
我已经尝试过的:
ffmpeg -f x11grab -s xga -r 30 -i :0.0 -qscale 0.1 -vcodec huffyuv grab.avi,然后使用ffmpeg -i grab.avi -sameq -vcodec mpeg4 grab.mp4.
avconv -f x11grab -s xga -r 25 -i :0.0 simple.mpg使用 avconv 版本 0.8.3-4:0.8.3-0ubuntu0.12.04.1-codec:copy(失败:Requested output format 'x11grab' is not a suitable output format)-same_quant(质量很好,但非常不稳定/丢失了很多帧)-vpre lossless_ultrafast(失败:Unrecognized option 'vpre',Failed to set value 'lossless_ultrafast' for option 'vpre')-qscale-b-vcodec h264(重复输出:Error while decoding stream #0:0,[h264 @ 0x8300980] no frame!)
avconv -formats输出中列为DE h264 raw H.264 video formatEdd*_*_Em 30
如果您的硬盘允许,您可以尝试这样做:
首先写入未压缩文件:
ffmpeg -f x11grab -s SZ -r 30 -i :0.0 -qscale 0 -vcodec huffyuv grab.avi
Run Code Online (Sandbox Code Playgroud)
这SZ是您的显示尺寸(例如 1920x1080)。
之后,您可以随时压缩它:
ffmpeg -i grab.avi grab.mkv
Run Code Online (Sandbox Code Playgroud)
当然,您可以更改压缩,选择编解码器等。
hda*_*nte 11
我在以下方面取得了成功:
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
-vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
video.mkv
Run Code Online (Sandbox Code Playgroud)
关键点:
提示:捕获屏幕和网络摄像头覆盖:
ffmpeg -f x11grab -thread_queue_size 64 -video_size 1920x1080 -framerate 30 -i :1 \
-f v4l2 -thread_queue_size 64 -video_size 320x180 -framerate 30 -i /dev/video0 \
-filter_complex 'overlay=main_w-overlay_w:main_h-overlay_h:format=yuv444' \
-vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
video.mkv
Run Code Online (Sandbox Code Playgroud)
https://trac.ffmpeg.org/wiki/Capture/Desktop
[edit 20180418] Gnome Shell 和 Wayland 更新:
ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :1 \
-vcodec libx264 -preset ultrafast -qp 0 -pix_fmt yuv444p \
video.mkv
Run Code Online (Sandbox Code Playgroud)