샤오미 DaFang, Custom Firmware 설치.

샤오미의 다른 IP 카메라를 쓰고 있는데, 이게 Mi Home 을 이용하는 형식이고, 그 얘기는 서버가 중국에 있단 뜻이 된다. 뭐.. 중국에 있건 달나라에 있건, 그 ‘위치’가 중요한게 아니고, 어딘가를 ‘경유’해야한다는 사실 자체가 그다지 맘에 들진 않는다.

대체품이 없을까 고민하던 중에, rtsp 서버를 지원하거나, Onvif 를 지원하는 카메라가 있으면 된다는 사실까진 알아냈는데..
이게 생각보다 비싸고, 확실한 안내서를 찾질 못했다. SBC 를 이용하고, 카메라만 따로 설치할 수 있는 방법이 있다면 좋을텐데.. 광활한 구글 바다에서 이런 내용을 찾질 못했다. 물론 방법은 있을 텐데, 검색하는 내 접근 방법이 잘못됐기 때문이겠지.
그러다가, 눈에 확 들어온 샤오미의 DaFang 카메라. 이건 국내에선 판매하지 않고 있고, Aliexpress 에서도 물량이 많진 않은 듯 했다.

지난 막바지 여름 할인기간을 놓치지 않고 조금이나마 싸게 구매를 했고, 그간 이런 저런 다른 고민에 휩싸여 설정을 하지 못하다가 최근 며칠동안 이것과 씨름을 했다.

그 내용을 간단히 정리한다.


Custom Firmware 를 설치하면, 샤오미 서버를 거치지 않고 직접 카메라에 접근 할 수 있다. 이게 대단한 건 아니고, IP 카메라라는게 결국 작은 PC(SBC 라고나 할까)이기 때문에, 리눅스로 부팅하여 그 안에서 rtsp 서버를 직접 돌릴 수 있게 해주는 역할을 한다.

그 모든 것을, 독일 뮌헨에 살고 있는 Elias Kotlyar 라는 분이 이뤄내줬다. 이 자리를 빌어 감사인사를 올린다.

FAQ설치법을 숙지하고, 실행에 옮긴다.

설치

먼저, SD 카드를 준비해야 하는데, 여기서 꼭 확인해야할 게 있다.
바로, 파티션테이블을 gpt 가 아닌 ms-dos 로 해야만한다. gpt 로 하면 리눅스에서나 MS 윈도우에서나 읽고 쓰는데 아무런 문제가 없지만, DaFang 에선 인식하지 못한다.

따라서! 반드시! ms-dos 로 새롭게 파티션테이블을 만들어야만 한다. 또, ms-dos 로 파티션테이블을 만들라는 건, fat32 를 선택하라는 뜻이다. 다른 것을 선택하면 작동하지 않는다. 리눅스지만, ext 계열도 안된다.

다음 사항은 문서에 다 나와있지만, 중요한 내용이라 다시 언급한다.

microSD 에 부트로더를 넣을 때는 500MB 정도 파티션을 만들고 작업하라고 한다.
부트로더가 설치된 후, CFW 를 설치할 때는 실험해본 결과 32GB 로 파티션을 잡아도 문제없이 작동했다.

여기까지는 일반 설정이고, 다음은 Wifi 와 Swap 파일에 관한 아주 중요한 설정을 해야 한다.

설치 시 중요 설정

WIFI:

config/wpa_supplicant.conf.dist 를 config/wpa_supplicant.conf 로 이름을 바꾸거나 복사한다.
이 파일을 열고, ssid / psk 에 해당 정보를 넣는다. psk 는 그냥 Passphrase 를 넣어도 되고, wpa_passphrase 를 이용해서 생성한 정보를 넣어도 된다.

timezone.conf:

Asia/Seoul 로 설정한다.

SWAP:

스왑을 설정하지 않으면, rtsp 서버가 원활하게 작동하지 않는다. 거의 사용 불가능한 수준. 다시 말하자면, 이 글 내용 중 여기가 가장 중요하다.

  • config/swap.conf.dist 를 config/swap.conf 로 이름을 바꾸거나 복사한다.
  • 파일을 열고, SWAP=false 를 SWAP=true 로 바꾼다.

그런데.. 틀림없이, 스왑을 켜지 않고 실행하면 rtsp 서버가 제대로 작동하지 않았다. 그런데.. 스왑을 켜고 free 명령을 사용해서 메모리 상황을 확인해봤는데, 스왑을 사용하질 않고 있었다. 뭔 일인지..????


기본 설정은 여기서 끝. 이제 SD 카드를 기기에 넣고 부팅한 뒤, http://DAFANG 으로 접속한다. 접속이 되지 않으면, IP 를 알아낸 뒤 접속한다.
최신 웹브라우저에서는 보안 오류가 뜨는데, 그냥 무시하고 접속하면 된다.
ssh 로도 접속 가능하다.

기본 ID/PW 는 root:ismart12

아래 ‘보안’ 항목에서 이 비밀번호(들)을 바꿔줄 수 있다.


기본 설정

System – Services

일반, 불필요한 서비스는 모두 끈다. 다시 말해, Autorun 을 불가능하게 설정한다. (회색, 오른쪽으로 네모가 이동한 상태가 Off 다.)

현재 꼭 필요한 서비스는 rtsp-h264 뿐이다. 사운드는 불필요하고, 나머지들은 정확히 어떤 서비스인지 아직 잘 모르겠다.

Configuration – Video

Video Settings:
  • Size : 1280×720 또는 1920×1080
  • bitrate : 1000/1500/2000 등.
  • Video Format : SMART
  • Frame Rate : 24
  • Port : 기본값 또는 적절히 변경

위 값들은 적절히 변경하여 최적 품질을 찾아낸다. 일단 1080 에서 bitrate 1500 정도로 성공했고, 지연현상(Delay)도 거의 없으며, 화질도 그런대로 괜찮은 수준이다.
tinyCam 에서 확인한 결과 Frame Drop 도 없고, 원활히 작동하는 듯 하다.

Auto Night Mode:

On / HW 로 설정. (좀 애매하긴 한데.. 작동은 하는 듯.)

RTSP Night Vision :

On 으로 하면 적외선 영상이 된다. Auto Night Mode 와 연동이 되어 밤에는 자동으로 적외선으로 바뀌는게 아닌 듯도 하고.. 여기는 잘 모르겠다.

그리고 Start H264 RTSP 에서 Start 를 선택해준다. 그러면 거기에 주소가 나오는데, 이 주소로 영상을 볼 수 있다. rtsp 와 http 가 있는데, rtsp 로만 성공했다.

Camera Controls:

IR 관련 설정은 HW/SW 두 종류가 있고, 정확히 어떻게 하는 건지 잘 모르겠다.
Auto Night Detection 도 마찬가지.
확실한 하나는 RTSP 서버는 켜져있어야 한다는 점.

Configuration – Audio

Audio Settings:

tinyCam 을 위해서는 다음 설정이 필요하다.

  • Audio Format : PCMU
  • Sample rate (IN/OUT 모두) : 8000
  • 필터 : 모두 선택하지 않음

SMPlayer 나 VLC 등을 사용한다면 다른 포맷을 사용해도 되는데, tinyCam 에선 저 형식만 지원하는 듯. 또, 8000 을 초과해서 설정해도 지원이 안되는 듯 하다.

보안

비밀번호는 두가지. Web 접근 비밀번호와 계정(root) 비밀번호가 있다. 이 둘을 모두 바꿔줘야 한다.

  • Web 접근 비밀 번호 : Configuration – Administration 에서 바꿀 수 있다.
  • 계정 비밀번호 : ssh 접속 후 passwd 명령으로 바꿔준다.

저렇게 비밀번호를 바꾼 뒤, 웹에서 설정을 바꿔도, 시스템 전체로 적용이 되는데.. 이는 아마도 파일시스템이 FAT32 이기 때문에 권한이 아예 없어서 가능한 듯 하다.

나머지 설정은 아직 잘 모르겠고..

Client 설정

rtsp 프로토콜을 제대로 보려면, 전용 재생기가 필요하다. 우분투에선 VLC, SMPlayer 모두 잘 작동한다.

Android 에선 tinyCam Monitor(Free) 라는 것을 사용해봤는데, 이게 이 동네의 왕인가 보다. (대신 광고가 뜬다. 광고 없애려면 5000원이면 된다. 또, TinyCam이라는 다른 앱도 있는데, 그건 아니니 헷갈리지 말 것.)

설정법도 잘 정리돼 있다. 이대로 해도 되지만, 그냥 일반 방법을 택해도 된다.

  • 카메라 제조사 : Generic
  • 카메라 모델 : Generic
  • JPEG/MJPEG/RTSP 요청 : rtsp://IP:port/unicast
  • 프로토콜 : RTSP over TCP

다만, 샤오미 Dafang 을 선택하고 로그인 정보를 넣으면, tinyCam 에서 바로 설정이 가능하다. NightVision 을 켜고 끈다거나 하는 등, 편리하게 직접 적용할 수 있다.
그러나 ID/PW 는 넣지 않아도 화면을 보는데는 문제가 없다.

iOS 에선 tinyCam 정도의 성능을 보여주는 프로그램은 없는 듯 하다. 여기선, VLC 를 설치해서 그냥 보는 정도로 만족하는 수 밖에.
양쪽 모두를 사용하는 입장에서 보면, iOS 가 이런 면이 많이 약하다. 자유가 많이 속박당하는 느낌이랄까.

외부에서 접속?

현재 상황에선 LAN 환경에서만 작동하므로, 바깥에서 접속하려면 포트포워드를 해주거나 VPN 을 사용해야한다. WireGuard 로 실험해본 결과, 무리없이 잘 작동했다.


이 정도면 가격대비(약 3만원?) 훌륭한 선택이라고 본다. HA 연동도 가능하다는데.. HA 는 아직 ‘관심’만 있는 정도라서.. 언젠간 해볼 수도 있겠지.
근데, HA 와 연동을 뭘 어떻게 한다는 걸까??? HA 에 대한 지식이 전혀 없으니 감을 못잡겠군.

안녕하세요. 글 남겨주셔서 고맙습니다.