Есть ли инструмент командной строки, который может записать экран вашего компьютера и аудиоустройство, а затем сохранить его в файл?
7 ответов
Mac OS X предлагает возможность снимать статические снимки экрана из командной строки, используя утилиту unmaginatively screencapture
. Вы можете найти больше информации, запустив man screencapture
.
например. screencapture ~/Desktop/picture.png
Что касается записи движения и компьютерного звука, вы можете сделать это через AppleScript, используя QuickTime Player X, если вы используете Mac OS X 10.6 или более новую версию. (Однако это определенно не "тихий" и будет работать только когда кто-то вошел в систему)
(Запись экрана на 5 секунд, просто возможная отправная точка)
tell application "QuickTime Player"
--activate
new screen recording
start document 1
delay 5
stop document 1
save document 1 in file "/tmp/test.mov"
quit
end tell
Я использую SOX и VLC для захвата, crontab для планирования, XLD для создания m4a и MP4Box для мультиплексирования. Он довольно гибкий, но требует знания сценариев Bash (возможно, также сценария Apple). Я нашел свое вдохновение в сценарии Диего Массанти mkmp4.
Основные процессы для запуска:
rec -q -c $C -r 48000 -b 16 $AFILE trim 0 $HH:$MM:00 &
VLC -I dummy screen:// --screen-fps=25 --quiet --sout "#transcode{vcodec=h264,vb=3072}:standard{access=file,mux=mp4,dst=$FILE}" --run-time $TIME vlc://quit
Планирование записи:
crontab -l
0 8 * * 1-5 ~/capture.sh 3 0 recording-name 1
Вы можете получить представление о том, что делает сценарий: запись 3-часового захвата, монофонический звук, каждый рабочий день в 8:00
Я не нашел и не скомпилировал SOX с поддержкой аудиопотоков MPEG, поэтому использовал FLAC для экономии места; Я использую XLD для преобразования его в AAC-HE 16 кбит / с, чего достаточно для передачи голоса.
Следующий шаг: мультиплексировать аудио и видео для создания mp4. Если вы не против использовать GUI, то MPEG StreamClip (или QuickTime) также подойдет.
MP4Box -add $1.m4a -sbr -add $1.m4v -fps $2.0 -inter 500 $1.mp4
Я использую это ежедневно для создания архива GoToWebinar, но когда следующий выпуск FFmpeg поддерживает кодек G2M4, я больше не буду беспокоиться. Да, есть также OSAscript для запуска вебинара, который также потребовал избавиться от флага com.apple.quarantine, чтобы отключить предупреждение (Вы уверены, что хотите открыть его?).
ссылки по теме:
http://blog.massanti.com/2008/09/26/mkmp4-automated-h264-aacplus-encoder-script-mac-linux/
Вы можете использовать программное обеспечение ffmpeg. Чтобы установить его на Mac, следуйте инструкциям здесь. Затем используйте команду:
$ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y output.mkv
Для захвата экрана есть несколько инструментов с открытым исходным кодом. Вы должны искать "снимок экрана", используя менеджер пакетов в Linux. Инструменты типа scrot
могут быть вызваны в скрипте. Если вы планируете делать это программно, в Imlib2 есть необходимые точки входа.
Захват звука действительно запись для микрофона звукового устройства. Это на самом деле не снимок, и вы должны определить, как долго должна выполняться запись.Подойдет любой диктофон.
Есть также инструменты, которые делают видео вашего рабочего стола.
Выгрузка содержимого устройства кадрового буфера Linux в файл может быть чем-то похожим на то, что вы ищете. Ниже я процитировал соответствующую часть Учебного руководства по программированию устройства Linux 2.2 Framebuffer . Вам нужно будет сконфигурировать вашу систему для включения устройства framebuffer (проверьте, есть ли у вас /dev /fb0 в вашей системе), у меня его нет в Ubuntu 9.04.
Когда у вас есть текстовые режимы с высоким разрешением, вы можете начать экспериментировать. У вас будет устройство /dev /fb0, которое вы можете посмотреть как любой обычный файл. Чтобы сделать скриншот, все, что вам нужно сделать, это
cat /dev /fb0> ~ /sshot
И у вас будет довольно большой файл с содержимым памяти вашей видеокарты внутри. Теперь, если вы очистите экран и введите
cat ~ /sshot> /dev /fb0
Вы должны иметь дисплей, который выглядит точно так же, как раньше. Конечно, второй секундный ввод, который вы начинаете печатать, возвращается к нормальному.
Я также использую Snow Leopard на устаревшем MacBook, и, поскольку я пытаюсь изучить Objective C, я трачу некоторое время на создание инструмента, который может захватывать определенные окна.
https://github.com/vorgos/QuickGrab
Это инструмент командной строки, который фиксирует самое активное окно или любое указанное вами окно.
Надеюсь, что это помогло.
Вы можете использовать импорт из ImageMagick, но это только Linux. Затем вы можете перейти в терминал и выполнить:
import screenshot.png