2015년 12월 11일 금요일

[KODI] 롤리팝 먹은 TVG 이야기

LG U+ TVG의 OS가 업그레이드 되면서 젤리빈에서  안드로이드 5.1인 롤리팝이 되었습니다. 이번 글에서는 젤리빈에서 롤리팝으로 업그레이드 되면서 삽질한 이야기를 한번 풀어 볼까 합니다. 이전 롤리팝 업그레이드 사용기들이 구글 검색에서 여럿 보이기 때문에 일반적인 이야기들 보다는 KODI 동영상 머신으로써의 롤리팝 먹은  TVG 이야기를 해 보죠.

잡설을 생략하고 요점만 간단히 보실 분을 위해 정리하자면...

  • 롤리팝  OS레벨에서 동영상 처리 코드 개선으로 KODI에서 자막 멈칫거림 현상 해결
  • tvheadend로 원본 품질 녹화 한 영상의 경우 KODI에서 여전히 가로줄 현상 발생 (interlace/deinterlace 문제)
  • 외부플레이어를 이용 하면 젤리빈에서 H/W 디코딩 할 경우 deinterlaced 되면서 가로줄 현상 제거할 수 있었으나 롤리팝에서는 H/W+ 디코딩으로만 재생 되면서 가로줄을 제거 할 수 없게 됨 
  • KODI의 스핀오프 버전인 SPMC의 deinterlaced 옵션으로 가로줄 현상을 제거 할 수 있지만 화면이 흔들리는 현상과 프레임 드랍 발생으로 눈이 심히 불편함.
  • KODI 16.0 beta3의 deinteralced 옵션은 작동 안 함.
  • 구글플레이가 앱을 자동으로 업데이트 시키는 옵션이 켜 있어 KODI를 맘대로 버전업시키니, 저 처럼 14.2를 계속 쓰고 싶을 때는 앱 자동 업데이트 꺼야 함.
  • 젤리빈으로 내리려고 셋탑 초기화 시켜도 롤리팝으로 초기화 됨
  • 실행 되는 앱을 죽일 수 있는 방법을 못 찾음. 관련 기능이 삭제 된 것인지?

실시간 TV를 보는 편의성은 IPTV 전용 셋탑인만큼 군더더기 없이 좋습니다. 셋탑의 하드웨어와 방송 신호, 스트리밍 되는 데이터를 처리하는 소프트웨어가 찰지게 연동되니 코덱,디코더,인코더 등의 단어는 머리속에서 잊어도 되지요.

이런 IPTV의 셋탑에 안드로이드 OS가 깔리면서 호기심이 많아 손, 발 뿐만 아니라 머리까지 고생인 저에게 여러가지 도전과제를 주었습니다. 동영상 머신 뿐만 아니라 70인치 대 화면으로 이용하는 영상통화 시스템, 오락실을 재현할 수 있는 게임 머신 만들기 뿐만 아니라 이번 글에서 이야기 할 동영상 머신까지 노려 봤지요. TV를 보는 것처럼 편하게 사용할 수 있게 해야 한다는 목표를 가지고 접근 했습니다만 화상 전화기나 오락기로 만드는 것까지는 가능하지만 편하냐? 라는 질문에는 아직 "편하다"라고 할 수가 없었습니다만.. 동영상 머신으로써는 TV 보는 것처럼 충분히 편하게 만들수 있었습니다. 방송 정보 스크래핑, 녹화 파일을 자동으로 라이브러리 정리 하는 방법, 스트리밍 방식의 외부 플레이어 사용 방법, 헤드리스 코디 서버 등 다소 손이 가는 작업들이 진행 된 덕분이었습니다.

동영상 머신으로써 젤리빈 기반의 TVG 셋탑은 몇 가지 문제가 있었습니다.
ES탐색기를 이용해 MX Player등으로 감상하는 것은 TV 보는 것처럼 쉽고 편한 방법이 아니기 때문에 PLEX, DS VIDEO, KODI 처럼 동영상을 전문적으로 다루는 프로그램을 써야 일단 기본은 먹고 들어갈 수 있습니다. 여러가지 이유로  KODI를 동영상 머신의 플랫폼으로 선택 했습니다만 TVG의 아쉬운 성능으로 인해 자막의 멈칫거림이나 일부 코덱의 디코딩 능력이 부족하더군요. 안드로이드 용 KODI가 다른 플랫폼의  KODI보다 유연성이 떨어지는 이유로 인해  KODI의 기본 플레이어로는 해결 할 수 없는 문제 였습니다.  다행히 MX PLAYER를 외부 플레이어로 쓸 수 있는 방법을 찾아 내면서 TVG의 아쉬운 성능과 KODI의 부족한 유연성을 극복할 수 있었습니다.

그러나 TVG가 롤리팝을 먹으면서 골치덩이가 되가고 있습니다.
먼저 롤리팝이 되면서 OS 레벨에서의 동영상 재생 능력은 좋아진 듯 합니다. KODI의 기본 재생 플레이어가 자막이 있어도 전혀 멈칫거림이 없네요. 화면에 자막 뿌리는 과정에서 연산량이 많았던 것이 원인 같은데 관련 부분이 개선 된 듯 합니다. KODI 14.2, 15.2, 16.0에서 모두 좋아졌습니다. 일반적인 수준의  자막포함, H264 코덱으로 된 1080p 파일까지는 완벽한 재생 성능을 보여 줍니다.

문제는 직접 녹화 하는 파일이었습니다. tvheadend라는 녹화 프로그램으로 mkv 컨테이너로 녹화 하다 보니 여러 상황 상 원본 품질로만 녹화가 되는데.. 이 파일의 품질이 너무 좋습니다. 이렇게 까지 필요가 없습니다만...... 품질을 낮추기 위한 실시간 처리 또는 후 처리를 하기에는 제 NAS의 성능이 부족합니다. DS415+라는 상용 NAS 중에서는 그래도 쓸만한 놈이긴 합니다만... 이 놈으로는 좀 힘든 것 같습니다. ffmpeg으로 후 처리 하기에는 하루에 20개 정도의 스캐줄을 소화 해야하는 NAS의 CPU 사용량이 오랜 시간 100%를 점유하도록 둘 수는 없더군요.

기존 젤리빈에서도 녹화 파일의 경우 심한 interlace 현상으로 KODI의 기본 플레이어로는 가로줄 현상이 심하게 발생했습니다. MX PLAYER를 외부 플레이어로 연결해서 쓰니 H/W 디코딩으로 deinterlaced 기능을 쓸 수 있게 되면서 가로줄 현상을 해결 할 수 있었습니다만 롤리팝이 되면서 MX PLAYER 뿐만 아니라 그 어떤 플레이어도 녹화 파일을  H/W 디코딩 하지 못하게 되었습니다. H/W+ 디코딩이 가능하지만  H/W+는 deinterlaced 기능을 할 수 없기 때문에 소용이 없지요. samba/webdav/ftp 등 프로토콜을 바꿔 보면서 네트워크 스트림 문제인지 테스트 해봤지만 H/W 디코딩 할 수 있는 프로토콜은 없었습니다. KODI에서 네트워크 스트림도 외부 플레이어를 쓸 수 있게 하는 xbmc wrapper 개발자에게 문의 해서 관련 코드를 개선한 업데이트 버전을 받아서 테스트 해 봤지만 해결 되지 않았습니다. ES 탐색기로  녹화 영상을  MX PLAYER로 재생하면  H/W 디코딩이 될 때도 있고 안 될 때도 있습니다. H/W디코딩 되는 경우에도 앞/뒤 이동이 안되는 문제가 있었습니다.

KODI 16.0에 포함 된 deinterlaced 기능은 작동을 하지 않았습니다. 정식 버전 나와도 안드로이드에서는 아마 안되겠죠? SPMC라는 KODI의 스핀오프 버전에도  deinterlaced 기능이 있던 것이 생각나 설치 해서 돌려 보니 가로줄 현상은 해결됩니다만 프레임 드랍이나 화면의 떨림 현상이 있어서 실사용은 불가 판정을 내렸습니다.

젤리빈으로 돌아가고 싶어 셋탑 초기화를 해 봤지만 불가능 하네요. 롤리팝으로 초기화 되버리고 맙니다. LG에 연락해도 젤리빈으로 안 바꿔 줄 것 같아 전화는 안 해 봤습니다.

어쨋든 이것 저것 깔았다 지웠다... 초기화까지 해대면서 깊은 빡침을 느끼고 일단 문제가 있어도 돌아는 가게 해 두자는 생각으로 원래 쓰던 14.2버전의  KODI를 설치하고 이것 저것 세팅을 다시 해 두었지만.. 다음 날 KODI를 켜니 15.2 로 업그레이드 되어있더군요. 다시 지우고 14.2로 세팅 해 두고 다음 날 다시 켜니.. 또 15.2....... 저는 KODI 머신들이 여러 대라서 NAS에 headless KODI를 DOCKER로 라이브러리 갱신 머신으로 돌리고 있기 때문에 별 문제 없을 때까지는 14.2를 쓰고 있습니다. 15.2는 사용하는 DB 테이블이 다르기 때문에 14.2에서 업데이트 되는 라이브러리가 갱신 되지 않습니다.

왜 TVG KODI가 맘대로 업데이트 되는지 몰라서 처음에는 KODI가 셀프업그레이드 하는 신 기능을 탑재 했나 생각 해 봤지만 그럴 가능성는 낮다 생각하고 뒤져보니 OS 업그레이드 되면서 구글플레이가 자동으로 앱 업데이트를 시키는 옵션이 켜져 버렸던 것이었습니다. 껏더니 문제는 해결 되었네요.

원래 TVG 셋탑을 TV보는 것처럼 편하고 쉬운 동영상 머신으로 잘 사용하다가 갑자기 가로줄 먹은 화질을 봐야 하는 반쪽짜리 머신이 되버려 당황 스럽기 그지 없습니다.릴 되는 일반 영상들과의 차이점은 비트레이트가 높다는 것 밖에 없는 듯 한데 왜 H/W 디코딩이 되지 않는지 계속 원인을 찾아 보는 중이네요.

저처럼 직접 녹화해서 보는 경우가 아니라면 롤리팝 업그레이드로 동영상 재생 능력을 높이는 것도 좋은 방법이라 보입니다. 녹화 해서 보는 분들은... 할 수 있다면 젤리빈으로 좀 더 버텨 보시는 것을 추천하겠습니다.

이상 빡침의 연속인 롤리팝 먹인  TVG 이야기 였습니다.





댓글 4개:

  1. TV G 기본 단말기도 업데이트 된건가요??

    답글삭제
    답글
    1. 글쎄요 저는 UHD 단말기로 업데이트 받았습니다.

      삭제
  2. 안녕하세요 전 BTV 스마트 셋탑으로 이용해서 KODI를 사용중인데
    KODI 재생능력이 좀 떨어지는지.. MX Player 에 비해서 조금 멈칫거리는 현상도 있고
    외부플레이어로 MX Player 를 사용하고 싶은데
    KODI 에서 외부플레이어를 MX Player 로 사용하는 방법을 가르쳐 주실수있나요?

    답글삭제
    답글
    1. http://freespiritslab.blogspot.kr/2015/08/kodi.html
      이 링크 참조 하시면 쉽게 MX플레이어를 외부 플레이어로 사용할 수 있으실 거에요.

      삭제