아직도 Google WebRTC 코드와 시간을 보내고 있다. AV1 인코더는 요새 부쩍 빨라진 libaom 2.0을 써도 넷플릭스가 만든 svt-av1을 써도 어셈블리 반 러스트 반인 rav1e를 써도 라이브에 적용하기에는 성능이 별로라 접고 만만한 VP9을 썼다.
Google WebRTC에서 안 쓰는 기능들 샥샥 날려 압축한 바이너리 크기도 아키텍처당 3MB 미만으로 줄였다. 뭐 하나 고칠 때마다 iOS arm64 x86_64, macOS x86_64 프레임워크 빌드하고, Android 빌드 환경은 리눅스만 지원하니 VirtualBox 속 우분투에서 arm arm64 x64 빌드해 나오느라 조금 지치는 구석이 있다.
앱은 플러터로 만들지만 화상채팅은 다 WebRTC 바이너리가 하고 플러터에서는 픽셀 버퍼 뿌리기만 해서 성능 이슈는 아직 없다. iPhone XS에서는 프레임당 인코딩 6ms 디코딩 2ms 정도인데, 저가형 안드로이드 Moto G에서는 프레임당 인코딩이 25ms 정도로 느린 편이나 나중에 문제되면 안드 인코더만 H264로 바꾸면 되고, 5분 통화해도 폰이 막 뜨거워지는 건 아니니 넘어가기로 했다.
이제 방화벽 환경 만들어 STUN, TURN 서버 테스트만 하면 다시 일상으로 돌아갈 수 있다. 세븐틴 13명이 한 자리에 모여 각자 아이패드 앞에서 팬미팅 한다 치면 인바운드 아웃바운드 합쳐 3MB/s 정도 쓴다. 부담되는 트래픽은 아니지만 팬미팅 장소를 내가 통제할 수 없기 때문에 가능한 한 방탄 투바투 엔하이픈 정도 스케일만 했으면 좋겠다. 13명은 부담스럽다.
번아웃 방지 차원에서 중간중간 Daygram macOS 버전을 만들어 런칭했다. Mac Catalyst로 날로 먹긴 했지만 일단 폰이랑 데스크탑 iCloud 싱크가 되니 일기를 더 자주 쓰게 된다. 500원으로 할인 중입니다..?
Continue Reading
Discover more thoughts and insights
7월 첫째주 월요일
스리슬쩍 2006년 반이 지나가버렸다. 지난 몇 해들을 의미없이 보냈어서 그랬을까? 2006년은 중요하고 필요한 것들을 많이 한 것 같다. 좋게 느껴지는 것은 많지 않지만, 이전과는 다르니. 충격도도 다르니.
Reverse engineering
쓰면서 내용을 만드는 글이니 경어를 피하겠습니다 내가 무엇인가를 학습할 때는 항상 역공학을 쓴다. 처음 메신저와 관련된 로봇을 만들고 싶어서 ICQ 프로토콜을 공부할때도 문서보다는 표본을 채집하고 그것으로 부터
싸이월드 미니홈피를 다시 열었다.
뭐 관리는 자주 안하겠지만, 심심해서 열었다. 이 블로그의 성격과 다르게 운영되는 곳이니, 이곳에 주소를 공개할 필요는 없을 것 같다. 그런데 왜 블로그를 올렸을까? 미니홈피를 장장 4시간동안 꾸미느라 7주만에