我正在使用 Ffmpeg 在 Windows 10 中录制屏幕视频:
ffmpeg -rtbufsize 1500M -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 2777 -offset_y 344 -video_size 1280x720 -i desktop -c:v libx264 -vf format=yuv420p -preset ultrafast D:/myvideo.mpg
如果我在 VLC 中播放录制的文件,它们会正常工作。如果我在内置的 Windows Media Player 或“电影和电视”中播放它们,我会收到此错误代码:0xc10100be ERROR_INVALID_MODULETYPE
我是否需要添加任何设置到 Ffmpeg 以便在 Windows 中使用?
答案1
非常感谢@LordNeckbeard。我忘了“mpg”文件不是像“mp4”这样的容器。很好的总结这里。
因此,第 1 部分是将输出文件类型设置为“.mp4”。这至少可以阻止崩溃和错误,但 Windows 播放器中仍然会出现黑色视频。第 2 部分是将像素格式设置为 yuv420p。从这里:
为愚蠢的玩家编码
您可能需要使用
-vf format=yuv420p
(或别名-pix_fmt yuv420p
) 才能让您的输出在 QuickTime 和大多数其他播放器中工作。这些播放器仅支持 H.264 视频的 YUV 平面色彩空间和 4:2:0 色度子采样。
这是有效的 ffmpeg 命令,我确信它需要进一步优化:
ffmpeg -rtbufsize 1500M -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 2633 -offset_y 103 -video_size 1280x720 -i desktop -pix_fmt yuv420p -c:v libx264 -preset ultrafast D:/myvideo.mp4