lolchocolats

На Пикабу
114 рейтинг 0 подписчиков 1 подписка 1 пост 0 в горячем
14

Мой первый open source: ff!ck.mp0 — рекордер, который не вылетает

Всем привет, ребзя!
[перезалив]

У меня тут был один очень весёлый опыт: попытка записать видео на ноуте 2016 года с AMD A6-9220 и Radeon R4.
Казалось бы, ничего особенного, но на практике это было настоящее шоу.

Сначала я попробовал Kazam.
И вроде всё нормально, но чем дольше шла запись, тем страннее он себя вёл.
Потом кнопка остановки записи как будто просто перестала существовать, а сам результат в итоге оказался каким-то полумёртвым огрызком, который ещё и нормально не воспроизводился.

После этого решил попробовать OBS.
Ну и да, там всё было ещё веселее: лаги, жёсткая нагрузка, FPS в районе “ну почти слайдшоу”, и ощущение, что ноуту уже не очень хорошо.

Тогда я подумал: а может, ну его, и сделать что-то своё?

Сначала я собрал совсем простой bash-скрипт на ffmpeg, который просто писал экран по кускам:

bash

while true; do out="rec_$(date +%s).mkv" ffmpeg \ -loglevel warning \ -thread_queue_size 512 \ -framerate 30 -video_size 1280x720 -f x11grab -i :0.0 \ -thread_queue_size 512 \ -f pulse -i alsa_output.pci-0000_00_09.2.analog-stereo.monitor \ -c:v libx264 -preset ultrafast -crf 28 -pix_fmt yuv420p \ -c:a aac -b:a 128k \ -shortest -t 00:02:00 "$out" done

И, что самое приятное, это реально работало.
Не выносило мозг ноуту, не убивало запись, не делало из системы кашу.
Да, приходилось жить в 1280x720, потому что мне привычнее 16:9, но это вообще не критично.

А потом мне надоело каждый раз писать cd ... и запускать скрипт вручную, и я решил сделать уже нормальную GUI-программу на Python.

Так и появился ff!ck.mp0 — очень простой рекордер с одной особенностью: запись по кускам.

То есть:

  • не надо держать тяжёлую программу;

  • не надо надеяться, что кнопка “Стоп” оживёт;

  • не надо молиться на FPS;

  • просто пишешь кусками и живёшь спокойно.

Я ещё сначала хотел прикрутить туда VRMVlad’s Record Method — но потом решил не распыляться и оставил только то, что реально нужно.
Если кому-то нужна чистая запись, это тоже есть через галочку.

Потом я всё это ещё и упаковал в исполняемый файл:

bash

pyinstaller --onefile --noconsole ffuck.py

И да, оно теперь запускается как обычная программа.

Репозиторий тут:
https://github.com/lolchokolats/ffuck.mp0

Если кому-то интересно, могу потом отдельно расписать:

  • как именно это собирал;

  • как сделал запись по кускам;

  • как всё упаковал в один файл под Linux;

  • и почему старый ноут 2016 года оказался отличным тестом на выживание.

Буду рад багрепортам, идеям и вообще любым замечаниям.


Мой первый open source: ff!ck.mp0 — рекордер, который не вылетает
Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества