크롬북으로 제작된 가장 기발한 비디오 월
(varun.ch)-
세상의 가장 독특한 비디오 월 만들기
- 이 프로젝트는 오래된 Chromebook을 활용하여 비디오 월을 만드는 과정에 대한 이야기임.
- 프로젝트는 소프트웨어 담당자인 필자와 하드웨어를 설계한 친구 Aksel Salmi와의 협업으로 진행됨.
- 학교에서 폐기 예정인 Chromebook을 활용하여 비디오 월을 만들자는 아이디어에서 시작됨.
-
Lenovo ThinkPad 11e 소개
- Lenovo ThinkPad 11e는 성능이 낮은 학교용 노트북으로, 필자의 어린 시절 컴퓨터에 대한 관심을 키워준 기기임.
- 현재는 소프트웨어 업데이트가 중단되고, 웹페이지 로딩에 어려움을 겪는 등 성능이 떨어져 폐기 대상이 됨.
-
비디오 월이란?
- 비디오 월은 여러 화면을 조합하여 하나의 큰 디스플레이를 만드는 것임.
- 이 프로젝트에서는 노트북 화면을 재사용하여 비디오 월을 만들기로 결정함.
-
화면을 별도의 하드웨어로 구동할 수 있을까?
- 처음에는 노트북 디스플레이 패널만 활용하여 강력한 컴퓨터로 구동하려 했으나, 시간과 비용 문제로 포기함.
-
두 장치 간의 비디오 동기화 시도
- 각 화면을 독립적으로 구동하는 것이 더 나을 것이라 판단하고, 여러 컴퓨터 간의 비디오 동기화 문제에 집중함.
- VLC의 스트리밍 기능을 사용해 보았으나, 완벽한 동기화에는 적합하지 않음.
-
Socket.io를 활용한 동기화
- Socket.io를 사용하여 웹 페이지에서 비디오 재생을 동기화하는 방법을 발견함.
- 비디오 재생이 끝나면 각 클라이언트가 시작 이벤트를 전송하여 동기화를 유지함.
-
ChromeOS 대체
- Chromebook의 소프트웨어 문제로 ChromeOS를 Linux로 대체하기로 결정함.
- coreboot를 사용하여 기본 펌웨어를 덮어쓰고, 자동으로 비디오를 재생하는 스크립트를 작성함.
-
최종 단계
- Aksel이 하드웨어 장착을 담당하고, 필자는 웹 페이지로 부팅하는 방법을 개선함.
- Porteus Kiosk를 사용하여 자동으로 Chromium 브라우저를 실행하도록 설정함.
-
자체 배포판 제작
- Debian을 기반으로 한 최소 설치를 통해 자동 설치 USB를 제작함.
- c-sync 클라이언트를 관리하고 비디오를 할당할 수 있는 컨트롤러를 구축함.
-
장착 및 최종 조정
- Aksel이 설계한 장착 하드웨어를 사용하여 노트북을 벽에 장착함.
- 팬 속도를 수동으로 설정하여 발열 문제를 해결함.
-
프로젝트의 의미
- 이 프로젝트는 팀워크와 협업의 중요성을 보여주는 사례로, E-Waste를 유용하게 활용한 예임.
- 프로젝트는 필자의 고등학교 경험에 큰 영향을 미쳤으며, 다양한 사람들의 도움으로 가능했음.
Hacker News 의견
-
이 재미있는 프로젝트를 완성한 것을 축하함. 나는 여러 기기에서 미디어 콘텐츠를 동기화하는 작업을 많이 해서 사람들이 어떤 해결책을 내놓는지 보는 것이 항상 재미있음. 아마도 연구 중에 BrightSign 미디어 플레이어를 접했을 것임. 20개의 디스플레이를 구매하는 총 비용은 수만 달러에 이를 수 있음. 재활용 기기로 이 작업을 수행한 것에 큰 찬사를 보냄
- 미디어 동기화 관련 코드베이스 작업에 관심이 있다면 연락하길 바람. 우리는 프리랜서 계약을 위해 개발자를 자주 고용함
-
Chromebook이 출시될 때 Google에서 일했음. 로비 장식을 위한 제안을 했지만 거절당했음. 아마도 40-64대의 기기를 요청했기 때문일 것임
- 비디오 동기화를 시도하지 않았을 것임. 대신 시간 기반 애니메이션을 만들고 네트워크를 사용하여 시계를 동기화했을 것임
- 예시를 여기서 볼 수 있음: [YouTube 링크]
- 8대의 기기가 Chrome을 실행 중임. 동기화된 것은 설정과 시간뿐임
- 기기들이 반드시 격자 형태일 필요는 없음. Boston Science Museum의 가상 수족관에서 영감을 받았음
-
멋짐! 4x4 태블릿으로 비슷한 작업을 했음. 16대를 ADB와 단일 호스트에 연결한 후 대부분의 작업을 자동화할 수 있었음
- 16개의 VNC 클라이언트와 함께 sway에서 16개의 가상 화면을 만들고 Wi-Fi를 통해 모두 스트리밍함. Wi-Fi가 너무 잘 작동해서 더 효율적인 솔루션을 찾지 않았음
- 그 기간 동안 내 PC에는 19개의 디스플레이가 있었음. 그 중 17개는 VNC를 통해 연결됨. 모든 디스플레이에서 작업을 하거나 각각을 다른 목적/프로그램(음악, htop, 캘린더, 시계, ssh 세션)에 할당할 수 있었음
- 하드웨어를 다루는 것이 꽤 귀찮았음. 일부는 속도가 느려지고, 일부는 연결 문제가 있었으며, 다른 것들은 배터리가 충전되지 않았음
-
이 솔루션이 왜 이렇게 잘 작동하는지 완전히 확신할 수는 없지만 우연히 터무니없는 해결책을 생각해냈음
- 가장 느린 컴퓨터가 가장 빠른 컴퓨터를 지연시킴
- 시스템의 병목 현상을 고려하여 설계를 최적화했기 때문에 잘 작동함. 제약 이론을 확인해보길 바람
-
몇 년 전의 비슷한 사례: junkyard jumbotron은 무작위로 모은 디스플레이를 사용하여 더 큰 이미지의 일부를 표시할 수 있게 함
- [GitHub 링크]
- 비디오 [YouTube 링크]
-
Chromebook이 말 그대로 경첩이 없음
-
가장 흥미로운 점은 coreboot로 전환하여 동결 현상이 해결된 것임. 왜 그런 일이 발생했는지에 대한 이론이 있는지 궁금함. ACPI/DSDT 관련 문제인지, 아니면 원래 BIOS를 사용하여 하드웨어 컨트롤러가 잘못 초기화되었는지 궁금함
-
하나의 비디오를 만들고 컴퓨터가 비디오의 다른 부분을 확대하도록 하는 것이 더 쉬웠을지 궁금함. 그런 다음 웹 브라우저를 통해 비디오를 동시에 실행함
-
역설계된 iPod Nano 6 디스플레이로 만든 멋진 비디오 월을 보고 역설계에 대해 배우고 싶다면?
- 11년 전 Mikes Electric Stuff의 비디오 시리즈가 있음. 훌륭함
- [YouTube 링크]
-
나와 다른 개발자가 아마도 8년 전 Windows Embedded thin clients로 300석의 콜센터에서 이 작업을 수행했음. 동기화를 위해 타임스탬프와 고정밀 자바스크립트 라이브러리를 사용했음
- 모든 사람이 퇴근한 후, 모든 화면에 비즈니스 이름과 하루의 통계를 스크롤함. 첫 번째 통화 몇 시간 전까지 대기 중인 비디오나 텍스트, 또는 그날에 따라 단순한 색상 줄을 로드함.