아직도 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
두꺼운 도서 목록
Books iRead 읽은 책 목록에 '쇼펜하우어 문장론'을 집어 넣고 있었다. 책을 읽고 포스트한 게 작년 5월이고, 그때의 나와 지금의 나는 사상이 바뀌었으니 다시 읽을만한 가치가 있으므로 잠시 침대에 누워
개발자가 쓴 네이트 앱스토어 체험기
오늘 네이트와 싸이월드가 통합됐다. 관심 없다. 나는 개발자가 아니던가. 앱스토어가 오픈한 것이 가장 중요한 것이다. Dev.Square 개발자센터에 가서 간단한 가입절차만으로 앱스 서빙을 할 수 있었다.
제 홈피 코멘트 안써지던 버그 수정했습니다.
지난 목요일부터 5일 동안 제 홈피에 OpenID로 코멘트 달기가 동작하지 않았습니다. 현상은 금방 파악했지만, 최근 바쁜 일정에 제대로 원인파악도 못하고 있었네요. 오전에 잠시 짬을 내어 원인이 무엇인지