Есть ли инструмент командной строки, который может записать экран вашего компьютера и аудиоустройство, а затем сохранить его в файл?
Есть ли инструмент командной строки, который может записать экран вашего компьютера и аудиоустройство, а затем сохранить его в файл?
Ответы:
Mac OS X предлагает возможность снимать статические снимки экрана из командной строки, используя утилиту, которая называется невообразимо 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
Вы должны иметь дисплей, который выглядит точно так же, как раньше. Конечно, после второго нажатия клавиши дисплей вернется в нормальное состояние.
Вы можете использовать импорт из ImageMagick, но это только Linux. Затем вы можете пойти в терминал и выполнить:
import screenshot.png
Я также использую Snow Leopard на устаревшем macbook, и, поскольку я пытаюсь изучить Objective C, я трачу некоторое время на создание инструмента, который может захватывать определенные окна.
https://github.com/vorgos/QuickGrab
Это инструмент командной строки, который фиксирует самое активное окно или любое указанное вами окно.
Надеюсь, что это помогло.