Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

cli-video

Проигрывает видео прямо в терминале символами: полублоками, шрифтом Брайля или в полном цвете. Со звуком.

Режимы

Режим Как рисует Детализация на ячейку
bw полублоки ▀ ▄ █, чёрно-белый 1×2 пикселя
braille точки Брайля, градации серого или цвет (-c) 2×4 пикселя
color полублок ▀: цвет символа сверху, цвет фона снизу 1×2 пикселя

Цвет выводится в truecolor, если терминал его поддерживает (COLORTERM=truecolor), иначе в 256-цветной палитре xterm.

Что умеет

  • Упорядоченный дизеринг по матрице Байера (-d) вместо жёсткого порога
  • Градации серого в режиме Брайля (-g), инверсия (-i), свой порог яркости (-t)
  • Звук: берёт файл рядом с видео, дорожку из самого видео или извлекает её через ffmpeg в кэш
  • Ссылки на ролики без скачивания: yt-dlp отдаёт прямой поток, OpenCV читает его по сети
  • Без аргументов показывает список видео из ~/Downloads, ~/Movies, ~/Desktop и текущей папки
  • Синхронизация по времени: не успевает отрисовать кадр — пропускает его, а не отстаёт от звука

Установка

git clone https://github.com/fewvar/cli-video.git
cd cli-video
python3 -m pip install -r requirements.txt

Для звука и ссылок нужны ffmpeg и yt-dlp (например, brew install ffmpeg yt-dlp).

Звук сделан через afplay, поэтому работает только на macOS. На других системах видео играет без звука.

Использование

python3 cli_video.py                        # выбрать из найденных
python3 cli_video.py video.mp4 -m braille -d
python3 cli_video.py video.mp4 -m color -w 120 -f 15
python3 cli_video.py "https://..." -m braille -c
Флаг Что делает
-m режим: bw, braille, color
-d дизеринг
-g N градаций серого в braille (1 — чистый ч/б)
-c цвет в braille
-i инверсия
-t N порог яркости 0–255
-w N максимальная ширина в символах
-f N ограничение частоты кадров
-a файл звук из отдельного файла
-s без звука

Производительность

Узкое место не рендер, а терминал: цветной кадр весит около 80 КБ, и при 30 fps это ~2.4 МБ/с вывода. Стандартный Terminal.app на таком потоке задыхается, в kitty проблемы нет. Если тормозит — уменьшить ширину (-w) или частоту (-f).

About

Видеоплеер в терминале: полублоки, шрифт Брайля, truecolor, дизеринг Байера, звук и ссылки на ролики без скачивания.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages