Online video hd

Смотреть вк видео

Официальный сайт rnns 24/7/365

Смотреть видео бесплатно

30.03.2009 16:18

krigСоздание скринкаста для видео

Для размещения своей раздачи на одном популятном торрент-трекере возникла необходимость создать скринкаст. Немного погуглив так и не нашел решения сей проблемы под линукс. В итоге пришлось устанавливать Media Player Classic на WinXP в VirtualBox (винда в ВБоксе у меня стоит на всякий случай, типа такого). Скринкаст сделал, раздачу создал и вроде бы забыл о проблеме, но осадок остался.



Спустя некоторое время появилось свободное время и я решил написать на питоне скрипт для создания скринкастов.







В итоге кое-что получилось.



Пример того что можно получить скриптом, по сравнению с MPC:

MPC:





screencast.py





Для работы скрипта необходимы:

Python 2.5+ (возможно будет работать и с более младшей версией, не пробовал)
ffmpeg (у меня из репозитория Убунты)
mplayer (у меня из репозитория Убунты)
PIL (Python Image Library)
TrueType шрифт (по умолчанию нужен ttf-liberation)



Все параметры выполнения скрипта можно настраивать параметрами командной строки. В будущем планирую написать оконный фронтэнд на PyQt, но когда это будет пока не известно.



Запуск скрипта:

python screencast.py /PATH/TO/VIDEO

либо, если дать скрипту разрешение на запуск (chmod +x screencast.py)

./screencast.py /PATH/TO/VIDEO



Посмотреть все возможные параметры можно выполнив:

python screencast.py --help



Скрины делаются в полную величину видео, поэтому чем большее разрешение у видео, тем большего размера скринкаст вы получите на выходе.



PS: если это очередной велосипед, буду рад услышать об аналогах. Хотя это опять же писалось для себя, чтобы поттренироваться в питоне и посмотреть на некоторые возможности PIL.



UPD:

v0.3

- теперь скрины делаются при помощи mplayer, что позволило ускорить скрипт в несколько раз (большое спасибо пользователю lomereiter за подсказку и код)

- добавил 2 параметра для изменения количества скринов из командной строки

- изменил шрифт по умолчанию на свободный

- обновил статью (ссылка на скрипт, новый скринкаст, описание параметров)



v0.4

- заменил getopt на optparse, что упростило работу с параметрами и добавило автоматическую генерацию параметров

- теперь все параметры работы скрипта можно настраивать параметрами командной строки

- обновил статью


Тэги: ffmpeg PIL python screencast
+ 21 -
Похожие Поделиться

exelens 30.03.2009 16:39 #
+ -2 -
Из топика не понятно, как запускать скрипт, куда он пишет файлы, в каком разрешении. Какие пакеты нужны для его работы?
krig 30.03.2009 16:49 #
+ 1 -
как запускать скрипт

Если попытать его запустить, он все сам расскажет =)

Сейчас допишу, что смогу.
exelens 30.03.2009 17:37 #
+ -2 -
Спасибо
stanislav 30.03.2009 19:22 #
+ 0 -
В Arch Linux пришлось доставлять Pil. Ну и шрифт я поменял на православный. :)

Удобная штука, хотя не очень шустрая и кушает одно ядро. Но всё же быстрее, чем самому лепить в GIMP'е. :)

Не помешала бы возможность передавать в качестве параметров значения Rows и Cols.
krig 30.03.2009 19:32 #
+ 1 -
Медленная из-за ффмпега - чем больше смещение, тем дольше времени вытаскивается скрин. 1 ядро, думается, тоже из-за сборки ффмпега, хотя возможно что и из-за способа его запуска из питона.

Вечером постараюсь добавить параметры и поменяю шрифт по умолчанию на свободный.
stanislav 30.03.2009 20:47 #
+ 0 -
А у вас нагрузка распределяется по всем ядрам?
krig 30.03.2009 21:02 #
+ 0 -
Нет. Более того, тут только один процесс, запускающий в синхронном режиме другой, и только 1 трэд, поэтому распаралеливать нечего.

Вот если немного изменить структуру программы и делать несколько скринов паралельно, то можно уже подумать и о распределении трэдов по ядрам, если это вобще возможно (еще не приходилось работать с потоками в питоне).
lomereiter 30.03.2009 21:10 #
+ 2 -
Чёрт, хватит сходить с ума! :) Какие, нафиг, потоки?))
У кого есть ffmpeg — и mplayer наверняка завалялся. Не знаю, что за дурь у ffmpeg'а, но mplayer вытягивает jpeg-и в доли секунды. Модифицированный для mplayer скрипт здесь.
stanislav 30.03.2009 21:27 #
+ 0 -
Оо, совсем другое дело :)
krig 30.03.2009 21:39 #
+ 0 -
В том виде что вы запостили исходник он не будет работать - как минимум вы не указали имя для изображения, поэтому сразу же после создания первого же скрина скрипт вываливается с ошибкой. Но идея хорошая, сейчас доведу до ума и обновлю ссылку на новую версию скрипта.
lomereiter 30.03.2009 21:43 #
+ 0 -
А можно поподробней? Какая именно ошибка? У меня почему-то всё работает...
Имя для изображения = const, судя по ману mplayer'а (00000001.jpg)

krig 30.03.2009 21:46 #
+ 0 -
Именно.
Но в строке 160 вашего скрипта вы используете то имя файла, которое я генерил для скринов.
lomereiter 30.03.2009 21:48 #
+ 0 -
Может, таки-лучше diff'ом сравнивать, нежели глазами? %)
104 строка: tmp_image = TMP_PATH + '00000001.jpg'
krig 30.03.2009 22:54 #
+ 0 -
Обновил свой скрипт, добавил пару параметров и обновил статью.
Спасибо за наводку.
DarkMan 31.03.2009 06:38 #
+ 1 -
Я бы на вашем месте для парсинга параметров использовал не getopt, а optpase, тоже стандартная библиотека но более мощная, докуметация тут. Еще впринципе можно пройтись по путям в PATH, в поисках ffmpeg и mplayer, что сделает скрипт более универсальным. Если будет время то обязательно поковыряю ваш скрипт в эту сторону.
А по поводу сабжа -- полезная штука, спасибо.
krig 31.03.2009 10:53 #
+ 0 -
Хождение по путям, выбор шрифта и другие настройки будут в графической оболочке, которая в планах. А за optparse спасибо, обязательно ей воспользуюсь =) Просто getopt был выше в результатах в гугле =)
lomereiter 31.03.2009 10:58 #
+ 1 -
Лучше шрифты и прочее запихнуть в консольную версию, а GUI как фронтенд сделать. А то не всякому удобнее GUI запускать ради установки пары-тройки параметров.
krig 01.04.2009 22:17 #
+ 1 -
Заменил getopt на optparse и вынес все параметры в командную строку. Теперь можно прикручивать к скрипту любой фронтэнд =) Спасибо за помощь.
Cucumber 30.03.2009 20:27 #
+ 0 -
Странно, таких программ встречал штук пять точно. На вскидку XVidCap
krig 30.03.2009 20:31 #
+ 1 -
Разве он не для захвата видео с рабочего стола, так же как и recordMyDesktop, т.е. для создания видео из действия пользователя?

Этот скрипт делает подборку скринов из видео.
Cucumber 30.03.2009 20:36 #
+ 0 -
Сорри, все верно... Такого еще не видел. Плюсую

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн