我一直在尝试使用FFmpeg的X11grab模块录制屏幕视频,到目前为止效果还不错。我知道音视频编码是一个复杂的过程,有许多细节需要注意,但我正在努力学习。
我想要进行“轻量级”录制,即在录制时尽量减少对系统的压力。我分别使用pacat和sox录制两个音频流。稍后,整个音视频流将被过滤、归一化、编码并合并到Matroska容器中。
目前,我使用ffmpeg记录一个rawvideo流来提供给x264的yuv4解复用器。之前我也尝试过ffv1和纯粹的x264录制。但我的系统无法在我想要的最终设置下实时编码x264,所以我必须等录制完成后再重新压缩。我发现ffv1会导致严重的帧丢失,使用yuv4也会出现,但情况较轻。我怀疑这是由于硬盘速度引起的,即使我使用的是一个专门用来存储录制数据的SATA3 Caviar Black。
问题是,我应该考虑哪种视频编解码器的组合?直接使用x264录制并在后期重新压缩成“更好”的x264吗?先使用raw video再压缩?我该如何找出像我之前遇到的帧丢失问题的原因?
编辑:这是我目前使用的ffmpeg命令行。
我想要进行“轻量级”录制,即在录制时尽量减少对系统的压力。我分别使用pacat和sox录制两个音频流。稍后,整个音视频流将被过滤、归一化、编码并合并到Matroska容器中。
目前,我使用ffmpeg记录一个rawvideo流来提供给x264的yuv4解复用器。之前我也尝试过ffv1和纯粹的x264录制。但我的系统无法在我想要的最终设置下实时编码x264,所以我必须等录制完成后再重新压缩。我发现ffv1会导致严重的帧丢失,使用yuv4也会出现,但情况较轻。我怀疑这是由于硬盘速度引起的,即使我使用的是一个专门用来存储录制数据的SATA3 Caviar Black。
问题是,我应该考虑哪种视频编解码器的组合?直接使用x264录制并在后期重新压缩成“更好”的x264吗?先使用raw video再压缩?我该如何找出像我之前遇到的帧丢失问题的原因?
编辑:这是我目前使用的ffmpeg命令行。
ffmpeg -v warning -f x11grab -s 1920x1080 -r 30000/1001 -i :0.0\
-vcodec rawvideo -pix_fmt yuv420p -s 1280x720\
-threads 0\
recvideo.y4m