Difference between revisions of "LinuxScreencasting"
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:Курс «Видео на конвеере»]] | + | <noinclude>[[Category:Курс «Видео на конвеере»]]</noinclude> |
Итак, для Windows из доступно-надежного предлагается запись экрана через [[ConferenceRecorder]] или [[Screen2Log]], но как записывать экран в Linux? | Итак, для Windows из доступно-надежного предлагается запись экрана через [[ConferenceRecorder]] или [[Screen2Log]], но как записывать экран в Linux? | ||
Line 22: | Line 22: | ||
Вроде достаточно прилично экран можно записать с помощью кодека FlashScreen, в flv-формат (индексы он хранит в начале файла, и этом может быть плюсом при внезапном падении записи): | Вроде достаточно прилично экран можно записать с помощью кодека FlashScreen, в flv-формат (индексы он хранит в начале файла, и этом может быть плюсом при внезапном падении записи): | ||
− | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec flashsv -vb 1000 -vsync 1 -y $(date "+%F-%H-%M-%S"). | + | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec flashsv -vb 1000 -vsync 1 -y $(date "+%F-%H-%M-%S").flv |
Оно запустит с самым низким приоритетом запись полного экрана с фреймрейтом 8FPS, и с дублированием пропущенных кадров. В целом, это более чем достаточно для записи лайвкодинга, не говоря уже о слайдах. Для записи видео, конечно надо озаботится мощным компом и увеличить FPS хотя бы до 12. | Оно запустит с самым низким приоритетом запись полного экрана с фреймрейтом 8FPS, и с дублированием пропущенных кадров. В целом, это более чем достаточно для записи лайвкодинга, не говоря уже о слайдах. Для записи видео, конечно надо озаботится мощным компом и увеличить FPS хотя бы до 12. | ||
− | Чтобы сделать из записанного <tt>yyyy-mm-dd-hh-mi-ss.flv<tt> «vanilla» AVI для последующего монтажа с помощью [[SeminarAssembler]], достаточно запустить [[SeminarAssembler]] так: | + | Чтобы сделать из записанного <tt>yyyy-mm-dd-hh-mi-ss.flv</tt> «vanilla» AVI для последующего монтажа с помощью [[SeminarAssembler]], достаточно запустить [[SeminarAssembler]] так: |
sa b yyyy-mm-dd-hh-mi-ss.flv$lossless.avi | sa b yyyy-mm-dd-hh-mi-ss.flv$lossless.avi | ||
Line 32: | Line 32: | ||
Но если взлетит, лучше (качественные и готово к монтажу) было бы так: | Но если взлетит, лучше (качественные и готово к монтажу) было бы так: | ||
− | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast_lossless -vsync 1 -y $(date "+%F-%H-%M-%S"). | + | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast_lossless -vsync 1 -y $(date "+%F-%H-%M-%S").avi |
− | Конечно, можно еще включить запись аудио, но тут есть тонкость, какую аудиосистему (alsa/pulse) использовать, | + | ---- |
+ | except: | ||
+ | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi | ||
+ | ---- | ||
+ | |||
+ | Конечно, можно еще включить запись аудио, но тут есть тонкость, какую аудиосистему (alsa/pulse) использовать. | ||
+ | |||
+ | nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -f alsa -i hw:0,0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi |
Latest revision as of 07:50, 13 June 2013
Итак, для Windows из доступно-надежного предлагается запись экрана через ConferenceRecorder или Screen2Log, но как записывать экран в Linux?
Причем, чтобы:
- В любом из сонма дистрибутивов
- С минимальной инсталляцией
- Без помех демонстрации (не тормозит!)
- Без рассинхронизации с истинным временем, чтобы потом, можно было синхронизовать экран с записями камер и другими скринкастами, используя, например SeminarAssembler.
- Без настроек, но чтобы было понятно, когда это записано (опять таки важно для синхронизации).
- Ну и чтобы быстро и надежно — на конференциях обычно спохватываются непосредственно за минуту до выступления докладчика, пришедшего со своим Linux-ноутбуком, и при этом ни разу не запускавшим скринкастинг.
Если для Windows идеалом является portable-программа, запускающаяся без инсталляций, развертывания в Program Files, кучи настроек… то Linux-way несколько другой. Надо использовать самые стандартные, всегда установленные (или легко устанавливающиеся утилиты), и свертывать их в работающий поток длинным one-liner-ом!
В некотором смысле, такие строчки напоминают букмарклеты — руками их набивать не очень удобно, непосвященный это не осилит, но зато их легко запустить на любом линуксе без стандартных процедур инсталляции — если забыли или не в писали в скрипт — доступ в интернет, находите эту или другую страницу, копипастите — и понеслась.
Ключевой утилитой, будет конечно творение безумного гениального Фабриса Беллара — FFmpeg.
Тут я должен был бы привести магическую строчку настроенную на самые правильные параметры, но есть нюансы.
К сожалению, из-за аспектов копирастии, сборки ffmpeg-а под разными дистрибутивами (например, под ортодоксальным GNU Debian) могут не включать различные пакующие кодеки, защищенные правами и патентами, и в частности, самый оптимальный вариант — lossless h264. Поэтому я приведу несколько версий.
Вроде достаточно прилично экран можно записать с помощью кодека FlashScreen, в flv-формат (индексы он хранит в начале файла, и этом может быть плюсом при внезапном падении записи):
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec flashsv -vb 1000 -vsync 1 -y $(date "+%F-%H-%M-%S").flv
Оно запустит с самым низким приоритетом запись полного экрана с фреймрейтом 8FPS, и с дублированием пропущенных кадров. В целом, это более чем достаточно для записи лайвкодинга, не говоря уже о слайдах. Для записи видео, конечно надо озаботится мощным компом и увеличить FPS хотя бы до 12.
Чтобы сделать из записанного yyyy-mm-dd-hh-mi-ss.flv «vanilla» AVI для последующего монтажа с помощью SeminarAssembler, достаточно запустить SeminarAssembler так:
sa b yyyy-mm-dd-hh-mi-ss.flv$lossless.avi
Ну а далее, например, Category:Курс «Видео на конвеере» или чем вы привыкли пользоваться.
Но если взлетит, лучше (качественные и готово к монтажу) было бы так:
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast_lossless -vsync 1 -y $(date "+%F-%H-%M-%S").avi
except:
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -an -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi
Конечно, можно еще включить запись аудио, но тут есть тонкость, какую аудиосистему (alsa/pulse) использовать.
nice -n 19 ffmpeg -f x11grab -r 8 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -f alsa -i hw:0,0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -vsync 1 -y $(date "+%F-%H-%M-%S").avi