我在安装了MacOS Sierra的Mac上。我用自制软件安装了ffmpeg。我通过以下方式列出我的设备:
ffmpeg -f avfoundation -list_devices true -i ""
返回:
[AVFoundation input device @ 0x7fc2de40e840] AVFoundation video devices:
[AVFoundation input device @ 0x7fc2de40e840] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7fc2de40e840] [1] Capture screen 0
[AVFoundation input device @ 0x7fc2de40e840] AVFoundation audio devices:
[AVFoundation input device @ 0x7fc2de40e840] [0] Built-in Microphone
我不需要音频,所以我通过以下方式开始我的5秒屏幕录制:
ffmpeg -f avfoundation -t '5' -i '1' test.mov
它在工作目录中创建一个mov文件,但在5秒后不会停止。事实上,我甚至无法通过按'q'来停止录音。 Ctl-C也不起作用,我通过Activity Monitor强制退出。我尝试了同样的命令,但是使用设备0(FaceTime摄像头),它在5秒后停止。
如果有人可以解决这个谜题,我的下一个问题是如何在quicktime中观看新创建的文件(我想我需要编码或解码或其他东西)因为即使FaceTime视频文件也无法打开QuickTime的。它只是说“文件无法打开”。但是,它确实以VLC开放。
更新: 我在较旧的操作系统(Yosemite)上尝试过此操作并得到了相同的结果(认为它可能是破坏它的新操作系统)。< / p>
答案 0 :(得分:4)
我猜大多数时候我们会忽略程序警告,但不会忽略这个警告。
如果没有其他选项的录制屏幕:
ffmpeg -f avfoundation -i "1" out.mov
您可能会看到一些警告:
[mov @ 0x7f7fcf19da00] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
No pixel format specified, yuv422p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
......
[mov @ 0x7f7fcf19da00] WARNING codec timebase is very high. If duration is too long,
file may not be playable by quicktime. Specify a shorter timebase
or choose different container.
输出视频流fps将为1000k,这是不合理的。
所以我设置了fps选项。我还将像素格式设置为yuv420p
,否则quicktime无法播放默认的yuv422p
色彩空间:
ffmpeg -f avfoundation -i "1" -pix_fmt yuv420p -r 25 -t 5 out.mov
我正在使用2013年中期的MBP与MacOS sierra,同时也安装了ffmpeg 3.1.1。