텍스트로 360p 영상을 재생하는 ASCILINE 실험
ASCILINE은 일반 동영상 태그를 쓰지 않고 영상을 텍스트처럼 보내고 그리는 실험용 엔진이다. 파이썬 서버가 영상을 해석한 뒤, WebSockets로 짧은 텍스트 데이터 묶음을 브라우저에 보내고, 브라우저는 HTML5 Canvas 위에 그것을 그린다. 최근 최적화로 360p급 화면을 초당 30장 속도로 안정적으로 보여줄 수 있게 됐다.
화면은 두 방식으로 보인다. 하나는 색이 입혀진 블록 문자로 영상을 만드는 픽셀 모드이고, 다른 하나는 실제 문자들이 흐르는 아스키 텍스트 모드다. 브라우저 입장에서는 이것이 동영상이 아니라 자바스크립트가 텍스트를 바꾸는 동작이라서 자동재생 제한이나 일부 광고 차단 방식의 영향을 덜 받을 수 있다.
다만 만든 사람은 광고 회피가 핵심 목적이 아니라 낮은 대역폭 스트리밍과 글자 기반 화면 효과라고 설명했다. 현재 30프레임 기준 파이썬 서버는 약 6~7% 중앙처리장치를 쓰고, 브라우저 쪽 픽셀 모드는 1% 미만을 쓴다고 밝혔다. 앞으로 핵심 엔진을 Rust로 다시 만들어 더 빠르게 하는 것이 목표이며, 광고 악용을 막기 위해 광고 금지 조항을 넣었지만 그 경우 일반적인 MIT 라이선스나 오픈소스라고 보기 어렵다는 지적도 나왔다.
핵심 포인트
- ASCILINE은 동영상을 일반 동영상 태그가 아니라 텍스트 데이터로 보내고 화면에 그린다.
- 현재 360p급 화면을 초당 30장 속도로 재생할 수 있다고 한다.
- 픽셀 모드는 색 블록 문자로 영상을 만들고, 아스키 텍스트 모드는 실제 문자 흐름을 보여준다.
- 광고 차단 우회처럼 보일 수 있지만, 만든 쪽은 낮은 대역폭과 글자 효과가 핵심 목적이라고 밝혔다.
- 개인 사이트나 작은 앱에서는 신기한 데모가 될 수 있지만 접근성, 성능, 라이선스를 확인해야 한다.
용어 한 줄 설명
- ASCILINE
- 영상을 텍스트 데이터처럼 보내고 화면에 그리는 실험용 엔진 이름이다.
- WebSockets
- 서버와 브라우저가 계속 연결된 상태로 데이터를 주고받게 해주는 방식이다.
- websocket
- 서버와 프로그램이 계속 연결된 채로 데이터를 주고받는 통신 방식입니다.
- HTML5 Canvas
- 웹페이지 안에서 그림이나 움직이는 화면을 직접 그릴 수 있는 영역이다.
- canvas
- 브라우저에서 그림이나 게임 화면을 그릴 때 쓰는 HTML 기능입니다.
- 자바스크립트
- 원래 웹페이지에 움직임을 주기 위해 만들어진 가장 대중적인 프로그래밍 언어입니다.
- 중앙처리장치
- 서버가 계산 작업을 처리하는 핵심 부품이며, 사용량이 많으면 비용이 늘 수 있다.
- MIT 라이선스
- 소프트웨어를 누구나 무료로 쓰고, 고치고, 나눠도 되는 오픈소스 허가 방식.