使用ffmpeg录制特定窗口的视频

时间:2012-03-05 22:09:58

标签: video ffmpeg video-capture

我目前正在使用ubuntu 10.04和ffmpeg。这是我的情况:

我有这个命令创建一个窗口并在其中再现一个视频:

video_handle/static/simpleVRML media/generated/video1330515739317/chunk0.avi

我需要录制正在该视频容器中显示的视频并将其保存到视频文件中; webm是首选。视频长度恰好是1秒,fps是29.97

我已经尝试过这个命令:

ffmpeg -loglevel panic -f x11grab -s 640x480 -r 25 -i :0.0+0,50 -vframes 30 -sameq -y out.mpg >/dev/null 2>&1

它实际上会在容器出现时记录屏幕,但我需要输出非常准确

任何想法???

1 个答案:

答案 0 :(得分:1)

这是一个解决方案:从X11捕获到一系列静止图像,添加几秒填充;浏览静止图像并删除不需要的图像;将好的帧集编码成视频。这有利于无损,至少在捕获阶段;你的例子编码为有损的MPEG格式。

捕获一系列静止图像:

mkdir images
ffmpeg -f x11grab -s 640x480 -r 25 -i :0.0+0,50 -vframes 90 -y images/out%04d.bmp

由于您使用的是Ubuntu Linux,因此您可以使用以下方式浏览图像:

gnome-open images

这将包含一系列图像,文件名为out0001.bmp,out0002.bmp等。删除不需要的图像。最后,编码WebM文件:

ffmpeg -i images/out%04d.bmp -y out.webm

请注意,这假设您使用libvpx支持构建了FFmpeg。