12

Есть ли инструмент командной строки, который может записать экран вашего компьютера и аудиоустройство, а затем сохранить его в файл?

7 ответов7

9

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
2

Я использую 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/

1

Вы можете использовать программное обеспечение 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
0

Для захвата экрана есть несколько инструментов с открытым исходным кодом. Вы должны искать "снимок экрана", используя менеджер пакетов в Linux. Инструменты типа scrot могут быть вызваны в скрипте. Если вы планируете делать это программно, в Imlib2 есть необходимые точки входа.

Захват звука действительно запись для микрофона звукового устройства. Это на самом деле не снимок, и вы должны определить, как долго должна выполняться запись.Подойдет любой диктофон.

Есть также инструменты, которые делают видео вашего рабочего стола.

0

Выгрузка содержимого устройства кадрового буфера Linux в файл может быть чем-то похожим на то, что вы ищете. Ниже я процитировал соответствующую часть Учебного руководства по программированию устройства Linux 2.2 Framebuffer . Вам нужно будет сконфигурировать вашу систему для включения устройства framebuffer (проверьте, есть ли у вас /dev /fb0 в вашей системе), у меня его нет в Ubuntu 9.04.

Когда у вас есть текстовые режимы с высоким разрешением, вы можете начать экспериментировать. У вас будет устройство /dev /fb0, которое вы можете посмотреть как любой обычный файл. Чтобы сделать скриншот, все, что вам нужно сделать, это

cat /dev /fb0> ~ /sshot

И у вас будет довольно большой файл с содержимым памяти вашей видеокарты внутри. Теперь, если вы очистите экран и введите

cat ~ /sshot> /dev /fb0

Вы должны иметь дисплей, который выглядит точно так же, как раньше. Конечно, второй секундный ввод, который вы начинаете печатать, возвращается к нормальному.

0

Я также использую Snow Leopard на устаревшем MacBook, и, поскольку я пытаюсь изучить Objective C, я трачу некоторое время на создание инструмента, который может захватывать определенные окна.

https://github.com/vorgos/QuickGrab

Это инструмент командной строки, который фиксирует самое активное окно или любое указанное вами окно.

Надеюсь, что это помогло.

0

Вы можете использовать импорт из ImageMagick, но это только Linux. Затем вы можете перейти в терминал и выполнить:

import screenshot.png

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .