레이블이 해결책인 게시물을 표시합니다. 모든 게시물 표시
레이블이 해결책인 게시물을 표시합니다. 모든 게시물 표시

2017년 3월 21일 화요일

Unity3D WebCamTexture 를 ByteArray(Color32) 로 가져오기

처음에는 별거 아닌 줄 알았다.
(해보니까 헬게이트가. ㅠ_ㅠ)
이것 때문에 몇 일 야근하면서 삽질했었기에 기록을 남긴다.

----------

Unity3D 에서 웹캠텍스쳐를 만들어 초기화 할 때,
Request 한 해상도에 근접한 해상도를 리턴한다.
웹캠 장치 몇개를 테스트 했더니 의외로 640x480 이 지원 안되는 캠이 있더라.
(PC는 캠도 다양하고 그 캠의 스펙도 다양하다라는건 뻔히 알고 있었으나 막상 당하니 낭패... )

거기다가 문제는 WebCamTexture.GetPixels32() 요게 되다가 안되다가 한다.
구글 선생님한테 물어보아 찾아봐도 별달리 해결책은 없었는데..

Unity3D WebCamTexture.GetPixels32() 참고 문서
https://docs.unity3d.com/ScriptReference/WebCamTexture.GetPixels32.html


어떤 식으로 잘 안되는가 하니,
리턴된 Color32 Array를 확인해보면 무조건 RGBA(0,0,0,255) 가 출력되고 있다.

전부 문제가 있는 것은 아니고 웹캠마다 다르고, 그 웹캠의 지원해상도 마다 다르다.
(의외로 XspliteBroadCaster 의 가상 카메라는 다 잘되더라.)

여러개로 시험해본 결과 모델과 해상도 조합을 맞춰야 값을 받아올 수 있는 희한한 상태였다.
이대로는 문제가 있기에 확실하게 사용할 수 있는 해결 방법이 뭐가 있을까 알아봤는데...

결국 내가 선택한 해결 방법은 아래와 같다.
encode2png 를 이용하는 방법이다.


// 사용법 ConvertPNGBytesToBGRABytes(_texture2D.encode2Png());

    private byte[] ConvertPNGBytesToBGRABytes(byte[] data)
    {
        if (data == null || data.Length < 1)
            return null;

        byte[] buffer = new byte[_webcamTexture.width * _webcamTexture.height * 4];

        using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data))
        {
            Bitmap bmp = new Bitmap(ms);
            Rectangle rcBitmap = new Rectangle(0, 0, bmp.Width, bmp.Height);
            BitmapData rData = bmp.LockBits(rcBitmap, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
            Marshal.Copy(rData.Scan0, buffer, 0, buffer.Length);
            bmp.UnlockBits(rData);
        }

        return buffer;
    }


이 방법은 부담이 좀 되긴 하는데, 문제없이 잘 출력되고 있다.
프로젝트 완료까지 시간이 없어서 다음에 좀 더 고민해서 개선하는 것으로 -.,-;;

2017년 1월 17일 화요일

Final Cut Pro X (Mac) 파일 Export 와 진행 상황 확인 하기

예전에 업무상 동영상을 만지다가, 뭔가 새벽에 미쳐서 질러버렸던 파이널컷프로...
당시 생각보다 프로스럽지 않아서 미묘한 느낌이 들었는데..
(이때가 리뉴얼 된 직후, 모든 유저로 부터 원성을 받던 시기)

손에 익숙한 베가스만큼은 아니지만,
그래도 맥에서 동영상 편집할 때 편리하게 잘 쓰고 있다.

-----------------------

미묘하게 어려운 UI 때문에 아주 기초적인 작업 몇가지 문제가 있었는데, 그것은 아래와 같다.

1. 편집이 끝난 영상을 어떻게 저장할지 몰라서 방황하는 문제.
해결 :
아래 메뉴의 창에서 원하는 아웃풋 디바이스나 포맷을 맞추어 보내면 된다.
파일 > 공유 (Export? Share? 公有)



2. 저장 진행 상황이 어떻게 되고 있는지 몰라서 방황하는 문제.
해결 :
1번에서 다음을 눌렀는데 감감 무소식이다. 저장하기로 한 위치를 보니 파일은 생기고 있다.
확인하는 윈도우를 따로 실행해야 한다. 아래의 경로대로 진행하자.
윈도우 > 백그라운드 태스크 

참고 문서 : https://support.apple.com/en-us/HT201197

참고로 백그라운드 테스크를 확인하지 않더라도, 작업이 완료되면 맥 알림센터를 통해 알림이 온다.

-----------------------

사족 : 근데 한국 스토어에서 샀는데 왜 일본어로 나오는지는 모르겠다. -_-;
언어를 바꾸면 될 것 같긴 한데 귀찮아서 그냥 쓰는 중.

2017년 1월 15일 일요일

LG 액션캠 LTE 업데이트가 안될 때 해결책 & 몇가지 팁

이번에 무료(?) - 기기값 5만원에 49500원 지원으로 많이 풀린 LG 액션캠이 있다.

점심시간 운동할 때 기록용으로 잘 쓰고 있는데

관련된 팁을 몇개 적어본다.

# 펌웨어 업데이트 안될 때 해결책

1. LG 브릿지를 설치해도 업데이트가 안된다 (최신이라고 나옴)
지금은 해결되었다는 소리를 들었는데,
안되면 포기하는 것이 정신 건강에 이롭다.

2. 스마트폰으로 접속해서 펌웨어 업데이트를 눌러도 진행이 안된다. (무반응)
당신의 스마트폰 제조사와 출시 시기를 검토하라.

이해는 안되는데 내 ASUS 안드로이드 폰 (6.0) 으론 업데이트 눌러도 무반응이더라.
회사에 굴러다니는 테스트용 갤럭시S5 로 업데이트를 눌렀더니 한방에 해결되었다.


# 그 외의 팁

1. 아직 구입하지 않은 사람이라면, LG U+ 모델을 구입할 것
(데이터 유심을 다른데 활용이 가능하며, 성능은 동일하다.)

2. KT 모델을 구입했는데, 3G 무제한 데이터 쉐어링 칩의 사용이 가능했다.
화질은 좀 낮지만 실시간 아프리카TV 방송이 가능할 정도
라이브 스트리밍 시 화질은 자동 설정된다.

3. SKT 모델도 KT와 대동소이 한듯
데이터 쉐어링은 되는데 함께 쓰기 유심은 사용이 불가능하다고 함 (들은것)

4. SKT/KT 유심을 다른데 활용할 수 없는 이유는 사물 인터넷 012 회선으로 가입되기 때문인 것 같음.
다른데 활용하려고 샀는데 (아이패드) 안되서 3개월 후에 해지 예정 ㅠㅠ.