The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Создание скринкастов при помощи FFmpeg
Для создания высококачественных скринкастов, видеороликов отражающих
совершаемые на экране действия, удобно использовать пакет FFmpeg. Для работы
функции по созданию скринкастов пакет ffmpeg должен быть создан с опцией
"--enable-x11grab" (уже используется по умолчанию в Ubuntu и многих дистрибутивах).

На первом шаге создаем запись действий на экране, кодеком без потери качества
(lossless h264), чтобы потом можно было подготовить несколько версий ролика в
разных форматах (например, можно отдельно создать вариант для YouTube и версии
с разным качеством кодирования):

   ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1024x768 -i :0.0 \
      -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output_ll.mkv

где, 
   "-f alsa -ac 2 -i pulse -acodec pcm_s16le" - записываем стереозвук кодеком  pcm_s16le (без потери качества) с использованием звукового сервера PulseAudio (для Linux-систем без PulseAudio можно попробовать "-f alsa -ac 2 -i /dev/dsp" или "-f oss -ac 2 -i /dev/dsp")
   "-f x11grab" - драйвер для записи с экрана;
   "-r 30" - число кадров в секунду (FPS);
   "-s 1024x768 -i :0.0" - размер видео и смещение позиции на экране, напирмер, указав "-s 800x600 -i :0.0+200,100" можно организовать запись блока 800x600 со смещением 200x100 относительно верхнего левого угла экрана;
   "-vcodec libx264 -vpre lossless_ultrafast" - выбираем кодек libx264 без потери качества.

На втором шаге перекодируем созданный ролик в более компактное представление и
отрезав лишние хвосты:

MP4/h.264:

   ffmpeg -ss 00:00:15 -t 00:05:01 -i output_ll.mkv -acodec libfaac \
      -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 video.mp4

Через опции "-ss 00:00:15 -t 00:05:01" организован пропуск первых 15 секунд
записи и вырезано несколько секунд перед концом (записывается ровно 5 минут и 1 секунда).

OGG/Theora:

   ffmpeg -ss 00:00:15 -t 00:05:01 -i output_ll.mkv -acodec libvorbis \
      -ab 128k -ac 2 -vcodec libtheora -b 1000k video.ogg

Matroska/h.264:

   ffmpeg -ss 00:00:15 -t 00:05:01 -i output_ll.mkv -acodec libvorbis \
      -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 video.mkv

AVI/xvid:

   ffmpeg -ss 00:00:15 -t 00:05:01  -i output_ll.mkv -acodec libmp3lame -ab 128k -ac 2 \
      -vcodec libxvid -qscale 8 -me_method full -mbd rd -flags +gmc+qpel+mv4 -trellis 1 \
      -threads 0 our-final-product.avi

Если необходимо в процессе записи ролика отвлечься и прервать запись, разные
куски можно записать в отдельные файлы, а затем объединить их командой mkvmerge:

   mkvmerge -o complete.mkv part1.mkv +part2.mkv +part3.mkv +part4.mkv
 
14.02.2011 , Источник: http://ubuntuforums.org/showthread....
Раздел:    Корень / Пользователю / Обработка изображений и видео

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Проходимец, 07:51, 14/02/2011 [ответить] [смотреть все]
  • +/
    Как же оно дико систему грузит. На моем C2D E6550 при записи картинки 1280х1024 выдаёт ~10-20fps(это без записи звука). Может кто подскажет как можно уменьшить нагрузку на процессор? Может можно видеокарту задействовать как то?
     
     
  • 2.13, User294, 15:37, 15/02/2011 [^] [ответить] [смотреть все]
  • +/
    > Как же оно дико систему грузит.

    А кодирование видео всегда было весьма затратной операцией. Раньше его на ночь оставляли для кодирования 1 сидюка. Ваш Кэп :)

    > при записи картинки 1280х1024 выдаёт ~10-20fps(это без записи звука)

    Угу, чувак всего-то хотел чуть видео чуть покрче HD 720p в реалтайме кодировать с приличным качеством и фпс-ом :). В камерах этим отдельные чисто аппаратные акселераторы занимаются. Тупые но быстрые и заточенные под это дело.

    > Может кто подскажет как можно уменьшить нагрузку на процессор?

    Поюзать более простой (но менее эффективный) кодек, например. Или твикануть параметры кодека для максимально быстрого кодирования (в ущерб соотношению битрейт-качество ессно). А вам так принципиально ужать все 1280х1024 с приличным фпс и именно в реальном времени и именно тяжелым кодеком?

    А еще - скринкасту хватит 10-15FPS. Уменьшив FPS можно прилично разгрузить проц.

     
     
  • 3.15, Zenitur, 01:59, 16/02/2011 [^] [ответить] [смотреть все]
  • +/
    По первой команде видео захватывается с минимальным сжатием, и только по второй оно кодируется.
     
     
  • 4.16, User294, 21:25, 18/02/2011 [^] [ответить] [смотреть все]
  • +/
    Это x264 нынче называется минимальным сжатием? Хренасе минимализм...
     
  • 1.2, Кракен, 09:22, 14/02/2011 [ответить] [смотреть все]
  • +/
    Web-M бы еше не помешал, раз уж речь про тытрубу.
     
     
  • 2.3, Zenitur, 11:37, 14/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Используйте строчку для Theora, заменив кодек на libvp8. По моему субъективному мнению, Theora сравнима с WMV. WebM - с h264, но пока хуже. Записал я первой командой видео (в новости про Wine 1.3.10 оно лежит в WebM), это h264 без сжатия. 3 Мб. Переделал в WebM с тем же параметром. 4,5 Мб. Визуально разницы нет.

    Пробовал с высоким сжатием - отставание еще большее. Но прогресс идет и скоро обязательно будет сравнение сил. Но и MPEG делаются новые.

     
     
  • 3.4, Zenitur, 11:38, 14/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Не "без сжатия", а с "минимальным сжатием".
     
     
  • 4.5, Кракен, 12:53, 14/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Это я просот к тому, что тогда ролик скорее всего будет доступень через HTML5 плеер. :)
     
  • 1.6, x0r, 13:25, 14/02/2011 [ответить] [смотреть все]  
  • +/
    а может ffv1 вместо libx264 больше подходит для первоначального формата?
    и flac для звука
     
  • 1.7, Семен, 13:42, 14/02/2011 [ответить] [смотреть все]  
  • +/
    -ss 00:00:15 ... организован пропуск первых 10 секунд?
     
  • 1.8, paulus, 16:36, 14/02/2011 [ответить] [смотреть все]  
  • +/
    Закопайте уже этот h.264... IMHO
    Мне хватает и webm:
    ffmpeg -an -f x11grab -r 15 -s 1600x1200 -i :0.0 -vcodec libvpx -s 1024x768 -threads 4 -y "'date +%F--%k-%M'.webm"
     
  • 1.9, Аноним, 20:20, 14/02/2011 [ответить] [смотреть все]  
  • +/
    Зачем для скринкаста 30 кадров в сек, хоть убейте не пойму ... весь текст скрыт [показать]
     
     
  • 2.14, User294, 15:45, 15/02/2011 [^] [ответить] [смотреть все]  
  • +/
    > Зачем для скринкаста 30 кадров в сек, хоть убейте не пойму...

    Чтобы проц не простаивал почем зря, разумеется. Ведь если проц занят работой менее чем на 80% - вы зря за него платили?! :)

     
  • 1.10, vovans, 21:04, 14/02/2011 [ответить] [смотреть все]  
  • +/
    знакомая статья....

    http://zenway.ru/page/screencasting-linux-ffmpeg

     
     
  • 2.11, Аноним, 21:23, 14/02/2011 [^] [ответить] [смотреть все]  
  • +/
    Там перевод http ubuntuforums org showthread php t 1392026 ... весь текст скрыт [показать]
     
  • 1.12, svm, 06:44, 15/02/2011 [ответить] [смотреть все]  
  • +/
    Делаю скринкасты кодеком qtrle, он практически не грузит систему во время записи:
    ffmpeg -r 12 -g 120 -s 1280x800 -f x11grab -i :0.0 -vcodec qtrle screencast.mov
     
     
  • 2.17, Zenitur, 20:55, 04/03/2011 [^] [ответить] [смотреть все]  
  • +/
    Попробовал. Всё равно не идеально.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList