2016-09-27 2 views
4

Я нахожусь на Mac с установленной MacOS Sierra. Я установил ffmpeg с homebrew. Я перечисляю свои устройства с помощью:Как записать временную запись экрана на 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 

Это создает мы файл в рабочем каталоге, но не останавливается через 5 секунд. Фактически, я даже не могу остановить запись, как она предлагает, нажав «q». Ctl-C тоже не работает, и я остаюсь с силой, покидающей Activity Activity. Я пробовал эту же команду, но использовал устройство 0 (FaceTime camera), и он останавливается через 5 секунд.

Если кто-то может решить эту загадку, мой следующий вопрос: как я могу просмотреть вновь созданный файл в QuickTime (я думаю, мне нужно будет кодировать или декодировать или что-то еще), потому что даже видеофайл FaceTime не откроется в QuickTime. Он просто говорит: «Документ не открывается». Однако он работает с VLC.

UPDATE: Я попробовал это на старой ОС (Yosemite) и получили те же результаты (думали, это может быть новая ОС, которая сломала его).

+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. 

И выход видео поток кадров будет 1000k, который является необоснованным.

Итак, я установил опцию fps. Кроме того, я установить формат пикселя для yuv420p, в противном случае цветового пространства по умолчанию yuv422p не могут быть воспроизведены QuickTime:

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

Я использую 2013-середине MBP с MacOS Сьерры, также заварить установлен FFmpeg 3.1.1.

+0

Наверное, я пытался добиться минимальной работы, прежде чем начал добавлять параметры. Я не понял, почему это повлияет на вариант продолжительности, но вы правы, мой друг. Ответил на оба моих вопроса. Благодарю. – wetjosh

+0

Хороший, также работает для меня, но когда я попытался добавить аудиозапись -i "1: 0", записанные звуки очень дрянные и ломающиеся. Любые специальные опции для добавления звука? – kirhgoff

+0

@kirhgoff да есть «специальные опции» для звука, RTFM –

Смежные вопросы