среда, 21 января 2009 г.

Запись видео в Linux

Появилась вот такая задачка - записать видео с рабочего стола со звуком. Возможно, кому-то окажется полезным.
У меня Debian. Звуковуха SBLive. Драйвера ALSA.
Для записи использую мощнейшую прогу ffmpeg, которую предварительно скомпилил. Перед компиляцией команде configure передал следующие ключи: --enable-x11grab --enable-libmp3lame.
Ffmpeg на данный момент может грабить звук только с OSS. Я поставил пакет эмуляции OSS под ALSA, но он почему-то после каждой перезагрузки системы выключается. Включаю его командой dpkg-reconfigure oss-compat.
А вот непосредственно команда для записи видео+звук в реальном времени:
ffmpeg -isync -f x11grab -s 320x240 -r 30 -i :0.0+1,49 -f oss -ac 2 -i /dev/dsp -ab 128k -acodec libmp3lame -vcodec mpeg4 -b 3000k out.avi
Здесь вначале указан размер и смещение окошка 320х240, т.к. я записывал не весь экран, а только маленький кусочек.
По ходу дела еще такой момент выяснился: при повторной записи поверх старого файла в результат добавляется жуткая задержка звука и тормоза видео-потока; поэтому рекомендую предварительно удалять out.avi.

3 комментария:

Zuf комментирует...

Можно воспользоваться и gui-утилиткой (хотя, наверное она всеравно работает c ffmpeg) - GTK-recordmydesktop.

Для записи звука удобно использовать звуковой сервер JACK.

Есть так же видео урок как все это сделать: http://www.vimeo.com/2234012

NightRadio комментирует...

Спасибо за ссылку на видео-урок!
Я слышал про эту утилиту, но хотелось поэкспериментировать c консольным ffmpeg :)
Jack - незаменимая штуковина. В ближайшее время я планирую включить её поддержку в SunVox. Ну и соответственно в Pixi тоже.

NightRadio комментирует...

и еще... :) При записи с /dev/dsp тишина. До тех пор, пока я не выставил ручку громкости Mix:0 в Audacity. Почему этой же ручки нет в Alsamixer - пока не понял.