2016-09-27 30 views
4

我在安裝了MacOS Sierra的Mac上。我用自制軟件安裝了ffmpeg。如何使用ffmpeg捕獲Mac上的定時屏幕錄製文件

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也不起作用,而且我通過活動監視器強行退出。我試過這個命令,但使用設備0(FaceTime攝像頭),並在5秒後停止。

如果有人可以解決這個謎題,我的下一個問題是如何在quicktime中觀看新創建的文件(我想我需要編碼或解碼什麼的),因爲即使FaceTime視頻文件也不會打開在QuickTime中。它只是說「文檔無法打開」。但是,它確實使用VLC打開。

UPDATE:我已經試過這對舊的OS(優勝美地),並得到了(認爲這可能是新的操作系統,打破了它)相同的結果。

+0

http://stackoverflow.com/a/43464269/6180077請訪問此鏈接以使用FFMPEG C++ mp4格式的屏幕錄像機應用程序。 –

回答

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,否則默認yuv422p色彩空間不能被QuickTime播放:

ffmpeg -f avfoundation -i "1" -pix_fmt yuv420p -r 25 -t 5 out.mov 

我使用MBP 2013-中旬MacOS的山脈,也是BREW安裝的ffmpeg 3.1.1。

+0

我想在開始添加選項之前,我正試圖獲得最低限度的工作。我不明白爲什麼這會影響持續時間選項,但你是正確的我的朋友。回答了我的兩個問題。謝謝。 – wetjosh

+0

好的,也適用於我,但是當我嘗試添加音頻錄製時 - 錄製的「1:0」聲音非常糟糕和突破。任何特殊的選項來添加聲音? – kirhgoff

+0

@kirhgoff對於聲音,RTFM有「特殊選項」 –