The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Создание скринкастов при помощи FFmpeg"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Создание скринкастов при помощи FFmpeg"  +/
Сообщение от auto_tips on 14-Фев-11, 07:51 
Для создания высококачественных скринкастов, видеороликов отражающих совершаемые на экране действия, удобно использовать пакет 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" организован пропуск первых 10 секунд записи и вырезано несколько секунд перед концом (записывается ровно 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


URL: http://ubuntuforums.org/showthread.php?t=1392026
Обсуждается: http://www.opennet.dev/tips/info/2534.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Проходимец on 14-Фев-11, 07:51 
Как же оно дико систему грузит. На моем C2D E6550 при записи картинки 1280х1024 выдаёт ~10-20fps(это без записи звука). Может кто подскажет как можно уменьшить нагрузку на процессор? Может можно видеокарту задействовать как то?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от User294 (ok) on 15-Фев-11, 15:37 
> Как же оно дико систему грузит.

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

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

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

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

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

15. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Zenitur on 16-Фев-11, 01:59 
По первой команде видео захватывается с минимальным сжатием, и только по второй оно кодируется.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от User294 (ok) on 18-Фев-11, 21:25 
Это x264 нынче называется минимальным сжатием? Хренасе минимализм...
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

2. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Кракен (ok) on 14-Фев-11, 09:22 
Web-M бы еше не помешал, раз уж речь про тытрубу.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Zenitur on 14-Фев-11, 11:37 
Используйте строчку для Theora, заменив кодек на libvp8. По моему субъективному мнению, Theora сравнима с WMV. WebM - с h264, но пока хуже. Записал я первой командой видео (в новости про Wine 1.3.10 оно лежит в WebM), это h264 без сжатия. 3 Мб. Переделал в WebM с тем же параметром. 4,5 Мб. Визуально разницы нет.

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Zenitur on 14-Фев-11, 11:38 
Не "без сжатия", а с "минимальным сжатием".
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Кракен (ok) on 14-Фев-11, 12:53 
Это я просот к тому, что тогда ролик скорее всего будет доступень через HTML5 плеер. :)
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от x0r (??) on 14-Фев-11, 13:25 
а может ffv1 вместо libx264 больше подходит для первоначального формата?
и flac для звука
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Семен (??) on 14-Фев-11, 13:42 
-ss 00:00:15 ... организован пропуск первых 10 секунд?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от paulus (ok) on 14-Фев-11, 16:36 
Закопайте уже этот 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"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Аноним (??) on 14-Фев-11, 20:20 
Зачем для скринкаста 30 кадров в сек, хоть убейте не пойму...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от User294 (ok) on 15-Фев-11, 15:45 
> Зачем для скринкаста 30 кадров в сек, хоть убейте не пойму...

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

10. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от vovans (ok) on 14-Фев-11, 21:04 
знакомая статья....

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Аноним (??) on 14-Фев-11, 21:23 
> знакомая статья....
> http://zenway.ru/page/screencasting-linux-ffmpeg

Там перевод http://ubuntuforums.org/showthread.php?t=1392026

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от svm email(??) on 15-Фев-11, 06:44 
Делаю скринкасты кодеком qtrle, он практически не грузит систему во время записи:
ffmpeg -r 12 -g 120 -s 1280x800 -f x11grab -i :0.0 -vcodec qtrle screencast.mov
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Создание скринкастов при помощи FFmpeg"  +/
Сообщение от Zenitur on 04-Мрт-11, 20:55 
Попробовал. Всё равно не идеально.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру