Repolode
YusufB5

YusufB5/ASCILINE

動画をASCII文字またはピクセルブロックのフレームに変換し、HTML5 Canvasプレーヤーにリアルタイムで配信するPython・JavaScriptエンジン。

スター
2,772
フォーク
315
未解決の Issue
1
最終コミット
17 時間前

これは何?

ASCILINEは動画をテキストベースのフレームに変換します。FastAPIを使ったPythonバックエンドがOpenCVで動画をデコードし、各ピクセルをASCII文字または色付きブロックに割り当て、フレームをバイナリデータとしてWebSocket経由で配信します。素のJavaScriptで実装されたクライアントがフレームをHTML5 Canvasに描画するため、ブラウザに動画コーデックや<video>タグは必要ありません。

ライブ配信に加えて、動画を単体で動作する.ascfファイルに変換できます。このファイルは、PythonコンパイラまたはブラウザベースのStudioを使って生成でき、GitHub Pagesなどの静的ホストで再生できます。また、AsciiPlayerクラスと<ascf-player>要素を備えたJavaScript SDK(asciline-player)や、ピクセルモードでより高いFPSを実現するオプションのRustエンジンも提供しています。

Windows、macOS、Linuxに対応し、白黒から1,600万色まで複数の色深度を利用できます。配信サーバー用のDockerファイルも含まれています。

主な機能

  • 01ASCII文字または色付きピクセルブロックのフレームをWebSocket経由でブラウザーのCanvasに配信します。
  • 02動画を静的ホスティング向けの単体で動作する.ascfファイルに変換します。
  • 03クラスAPIと<ascf-player> HTML要素を備えたJavaScript SDKを提供します。
  • 04白黒から1,600万色まで、複数のカラーモードを利用できます。
  • 05オプションのyt-dlp追加機能によりYouTubeやURLからの入力に対応し、フォルダーやJSONプレイリストのキューも利用できます。

ユースケース

  • 動画プレーヤーを使わずに、テキスト風の動画エフェクトをWebサイトに埋め込む。
  • GPUデコードを利用できない低消費電力デバイスや、ネットワークに制約のある環境で動画を再生する。
  • バックエンドを用意せず、事前にコンパイルした動画クリップを静的サイトでホスティングする。
  • レトロなターミナル風、またはタイポグラフィを活用したビジュアル体験を構築する。

クイックスタート

  1. 1

    README の Installation セクションに記載されている手順で Python の依存関係をインストールします

  2. 2

    動画ファイルを使ってライブストリーミングサーバーを起動します

    python stream_server.py video.mp4 --host 0.0.0.0

使う前に知っておきたいこと

  • エンジンは AGPL v3 ライセンスで、コピーレフトの義務があります。一方、JavaScript SDK は MIT ライセンスです。
  • オプションの Rust エンジンによるライブピクセル DCT はプレビュー版で、Windows でのみテストされています。
  • Python 3.9 以降が必要です。

トピック

よくある質問

ASCILINE とは?
動画をASCII文字またはピクセルブロックのフレームに変換し、HTML5 Canvasプレーヤーにリアルタイムで配信するPython・JavaScriptエンジン。 ASCILINEは動画をテキストベースのフレームに変換します。FastAPIを使ったPythonバックエンドがOpenCVで動画をデコードし、各ピクセルをASCII文字または色付きブロックに割り当て、フレームをバイナリデータとしてWebSocket経由で配信します。素のJavaScriptで実装されたクライアントがフレームをHTML5 Canvasに描画するため、ブラウザに動画コーデックや<video>タグは必要ありません。
ASCILINE は無料で使えますか?ライセンスは?
ASCILINE は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ASCILINE は今もメンテナンスされていますか?
活発にメンテナンス中。ASCILINE の最終コミットは 2026年10月19日 です。
ASCILINE は何に使えますか?
動画プレーヤーを使わずに、テキスト風の動画エフェクトをWebサイトに埋め込む。 GPUデコードを利用できない低消費電力デバイスや、ネットワークに制約のある環境で動画を再生する。 バックエンドを用意せず、事前にコンパイルした動画クリップを静的サイトでホスティングする。 レトロなターミナル風、またはタイポグラフィを活用したビジュアル体験を構築する。
ASCILINE のインストール方法は?
README の Installation セクションに記載されている手順で Python の依存関係をインストールします 動画ファイルを使ってライブストリーミングサーバーを起動します: python stream_server.py video.mp4 --host 0.0.0.0
ASCILINE はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/YusufB5/ASCILINE

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト