회사의 새로운 모듈을 테스트하기 위해서 진행하는 가벼운(?) 공개 프로젝트입니다.

요즘 집중이 잘 안되는 탓에 회사의 업무를 공개로 진행하는 실험을 진행 중 입니다.


https://github.com/ryujt/PTON


강의 할 때  프로젝터가 멀어서 잘 안보이는 경우를 위해서 예전부터 만들어 보고 싶었던 것 입니다.

겸사 겸사 진행해보려고 합니다.


단순히 강사의 컴퓨터 화면을 공유하는 기능밖에 없습니다 ^^;;


화면압축 모듈 등 회사의 중요 자산의 소스는 DLL 형태로 비상업적 용도로만 사용 가능하도록 할 예정입니다.


Posted by 류종택

  • https://github.com/ryujt/ff-player 에 대한 동영상 강의입니다.
  • 객체지향적 설계 및 개발 전반에 대한 강의입니다.
  • 초보분들의 경우 실습이 없이는 다소 어려운 내용일 수도 있습니다.
  • VC++, FFMPEG, SDL



'프로젝트 > FF-Player' 카테고리의 다른 글

실전 프로젝트 동영상 플레이어 만들기  (0) 2016.07.19
FFMPEG player example  (0) 2016.07.12

Posted by 류종택

제가 새로 만드는 실시간 강의 시스템이 완성되면 온라인으로 강의하려고 만든 강의 자료입니다.  새로 만드는 실시간 강의 시스템이 좀 더 시간이 필요하여 예제를 미리 공개합니다.  

1차 완성되자 마자 공개하는 것이라 버그가 상당히 많을 것 입니다.  (100% 유기농 코드!!)

  • 특정 비디오 파일 재생에서 에러가 나는 것을 확인
  • 테스트로 사용하던 와우자 링크의 비디오 재생에 문제가 있는 것을 확인  (오디오는 정상)
  • 스레드 종료 처리가 제대로 되지 않아서 디버깅 모드에서 종료할 때 에러 확인

페북에서 이와 관련된 강의한다고 한 것이 두 달은 넘어가는 듯 하네요 ^^;  혹시 오프라인 강의실이 마련되면 온라인 강의 이전에 오프라인 강의를 진행해보겠습니다.

소스코드는 https://github.com/ryujt/ff-player 에서 받으시면 됩니다.  제가 사용하는 디랙토리 구조와 달라서 VC++ 프로젝트 옵션에서 폴더를 변경해주셔야 합니다.


폴더 구조

  • Bin
    • 실행 파일 및 dll
  • Doc
    • 최초 설계 문서
    • 코딩하면서 설계와 다른 부분들이 상당 수 발생하였으니 참고하시기 바랍니다.
  • Src/VC++/ff-player
    • 소스 코드
  • include
    • ffmpeg 2.7.1 버전을 사용하였습니다.
    • SDL2 2.0.4 버전을 사용하였습니다.
    • 기타 제가 만든 라이브러리를 사용하였습니다.
  • lib



'프로젝트 > FF-Player' 카테고리의 다른 글

실전 프로젝트 동영상 플레이어 만들기  (0) 2016.07.19
FFMPEG player example  (0) 2016.07.12

Posted by 류종택




Posted by 류종택


libvpx를 NDK를 이용해서 빌드하는 방법입니다.


우선 libvpx를 다운 받습니다.

  • $ git clone https://chromium.googlesource.com/webm/libvpx

libvpx 폴더에서 아래와 같이 configure를 실행합니다.
  • $ ./configure --target=armv7-android-gcc --disable-examples --sdk-path=[NDK가 설치 된 폴더] --extra-cflags='-O3 -mfloat-abi=softfp -mfpu=neon' 
  • cygwin에서 에러가 나는데 정확한 이유는 모르겠고, 우분투에서 빌드하니 바로 됩니다.  혹시 cygwin에서 에러나시는 분들은 우분투에서 시도해보시기 바랍니다.
  • NDK는 미리 설치되어 있어야 합니다.

make를 실행합니다.

jni 폴더에서 NDK를 실행합니다.
  • $ [NDK가 설치 된 폴더]/ndk-build
빌드가 성공하면, /libs/armeabi-v7a 폴더에 libRyuVPX.so 파일이 생성 됩니다.

제대로 빌드되었는 지 확인하기 위한 테스트 프로그램 소스입니다.

  • 소스 위치 가기
  • TextView에 오픈 된 디코더의 핸들 값이 표시 됩니다.  0이 아닌 숫자이기만 하면 됩니다.
  • 인코더의 경우에는 에러가 나는데, 하도 오래 전에 만든 넘을 손 본 것이라 이번에는 디코더만 테스트합니다.  추후 수정하여 계속 포스트를 올리도록 하겠습니다.





Posted by 류종택
  • Ah! Free Ca(AFC)는 간단한 화상회의 프로젝트입니다.
  • 교육을 목적으로 진행되고 있는 프로젝트입니다.
  • 수 년 간 실제 서비스를 통해서 검증 된 실무 노하우가 포함되어 있습니다.  (http://www.himytv.com/)


TO DO

  • 비디오 인코더를 VPX에서 Intel Media SDK로 변경 할 예정입니다.  VPX는 고해상도에서 CPU 사용률이 매우 높지만, Intel Media SDK를 이용하면, CPU가 H264 인코딩에 대한 하드웨어 가속을 지원 할 경우 비약적인 성능을 보여 줍니다.  (http://goo.gl/bbM1Dz)
  • Speex를 MP3 또는 OPUS로 변경하여 음질을 높일 예정입니다.
  • 음성과 오디오의 완벽한 싱크를 위한 모듈이 아직 마무리가 되지 않았습니다.
  • 그 밖에도 사소한 부분들이 아직 원래 소스로부터 옮겨오지 못한 부분들이 있습니다.
    • 실무 코드 자체를 강의하기에는 무리가 많으며, 공개를 아직 결정하지 못한 부분들을 정리하는 중 입니다.



소스 코드 다운로드


AhFreeCa.zip


RyuLib.zip


(편의를 위해서 2015.02.23일자 소스 코드를 위의 첨부파일로 첨부하였습니다)




데모


AhFreeCa.zip

  • 먼저 SingleServer.exe를 실행합니다.  방화벽 대화창이 나오면 허용을 클릭하여 주시기 바랍니다.
  • Receiver.bat 파일을 실행하면 청취자(수강자) 모드로 실행 됩니다.  수강자는 아이디만 바꾸면 계속 추가하여 로그인 할 수가 있습니다.  사용자 암호 인증 및 중복 로그인 처리는 아직 적용되어 있지 않습니다.
  • Sender.bat 파일을 실행하면 BJ (강사) 모드로 실행됩니다.
    • On Air 버턴을 클릭하면 BJ의 캠과 음성이 청취자에게 전달 됩니다.  같은 PC에서 실행 할 경우 하울링 조심하세요.
    • 캠을 켜거나 On Air 중에는 해상도 변경이 안됩니다.
  • 서버를 외부에서 실행하고 싶을 때는 bat 파일의 내용을 아래처럼 변경하시면 됩니다.
    • start Client.exe -IsSender -Host=서버주소 -UserID=Ryu -UserPW=1234
    • start Client.exe -Host=서버주소 -UserID=Lee -UserPW=1234
    • UserPW는 아직 사용되지 않기 때문에 생략하셔도 됩니다.





Posted by 류종택


"아!  이 아프리카가 아니지 ㅡ.ㅡ"



BJ가 자신의 캠과 마이크를 이용해서 다수의 청취자에게 방송을 하는 시스템을 구축하는 교육 과정에서 사용하고 있는 소스입니다.  


http://www.himytv.com/ 에서 실제 서비스하는 코드를 강의용으로 정리한 것 입니다.  수 년 간 실무에서 겪은 노하우를 담고 있습니다.



실습 소스 및 라이브러리

  • 메인소스는 https://code.google.com/p/ahfreeca/ 사이트에서 받으시면 됩니다.
  • "RyuLib for Delphi"가 추가로 필요합니다.
    • https://code.google.com/p/ryulib4delphi/ 사이트에서 받으시면 됩니다.
    • RyuLib는 제 개인 저장소에서 관리하다가 안정화되면 구글 사이트에 가끔씩 덮어 쓰곤 합니다.  그러다 보니 구글 사이트에는 커밋 메시지가 전혀 없습니다.
    • RyuLib 소스를 받으시면 
      • /Ryu Open Tools API/SetReg.exe 파일을 실행시키세요.  폴더 위치가 변하면 SetReg.exe를 다시 실행시키셔야 합니다.
      • 같은 폴더의 RyuOpenToolsAPI.dpk 를 Install 하세요.
      • /XE7/RyuLib.dpk 를 Install 하세요.
      • /XE7 폴더를 Liblary Path에 추가하세요.


강의 내용

  • 초급 과정
    • 코어 모듈은 이미 작성 된 상태에서 UI 등의 마무리 작업을 하는 시나리오를 통해서 실무에 대한 감각을 익힌다.
  • 중급 과정
    • 코어 모듈을 직접 제작하는 과정

강의 일정
  • 3월은 교재를 보강하기위해 쉬고 4월부터 다시 강의를 시작합니다.
  • ryujt658@hanmail.net 으로 메일 주시면, 다음 강의가 있을 때 마다 알려드립니다.



Posted by 류종택



수 년 동안 지켜봐도 제 자리 걸음만 하는 분들을 많이 보게 됩니다.  여기에 대한 이유도 다양하겠지만, 근본적인 문제 하나만을 언급해 보려고 합니다.


프로그래밍 공부는 두 가지로 나뉩니다.  다른 공부도 비슷하겠지요.

  • 지식 습득 및 이해
  • 훈련
그러나, 대부분의 경우에는 "알 것 같은" 때 공부를 멈추고 맙니다.  

아는 것과 할 줄 아는 것은 엄청난 차이가 있습니다.  누구나 배트를 휘둘러 공을 쳐내는 "기술" 자체는 쉽게 이해할 수 있지만, 실제로 멋지게 공을 쳐내기 위해서는 수 없이 헛 방망이질을 해야 하는 것과 같습니다.

할 줄 아는 것과 능숙한 것과도 엄청난 차이가 있습니다.

"어라? 나는 매일 훈련하는데도 안 늘어요." 
라고 생각하시는 분들은 정말 재능이 없거나, 연습과 훈련의 차이를 모르기 때문입니다.
  • 훈련은 체계를 가지고 있어야 합니다.
  • 훈련은 피드백을 통해서 돌아보고 교정하는 과정의 반복입니다.
이렇게 반복적인 훈련을 거쳐야 할 줄 알게 되고 더 나가서 "잘 할 수 있게" 됩니다.  그러니, 지겨운 반복을 이겨 내야 하는데, 이것이 바로 무엇인가 좋아하는 사람이 해당 분야에서 강한 이유가 됩니다.

"XX 공부를 끝냈는데, 이제 무엇을 하면 되지요?"
이렇게 묻는 분들을 많이 봅니다.  하지만, 정작 자신의 성장을 방해하는 것이 완전하지 못한 기초 지식임을 깨닫지 못합니다.  그리고는 무엇인가 내세우기 좋은 예제만을 사냥하듯이 쫓아 다닙니다.

동전을 10 개 쌓는 것은 누구나 쉽게 합니다.  10 개씩 100만 개를 쌓는 것도 시간과 끈기만 있으면 가능합니다.  하지만, 한 번이라도 동전 100개 또는 천 개를 쌓아 올리는 것은 쉽게 되지 않습니다.  처음 쌓는 동전 하나에도 정성을 다하고, 조금이라도 삐뚤어 지지 않았는지 계속 확인해야 합니다.

그냥 할 줄 아는 정도가 아닌 높은 성취를 바라는 분이라면, 기초를 정확하고 탄탄하게 훈련해야 하는 이유입니다.



'프로젝트 > HelloWorld' 카테고리의 다른 글

프로그래밍을 제대로 배우기 어려운 이유  (2) 2014.12.29
cocos2d-x 시작하기  (0) 2014.04.07
아빠! 프로그래밍이 모에요?  (2) 2014.03.27
슈팅게임 JetBoy #3  (0) 2014.03.23
슈팅게임 JetBoy #2  (0) 2014.03.23
슈팅게임 JetBoy #1  (2) 2014.03.23

Posted by 류종택




무료체험: http://www.himytv.com/asp/trial


기타 문의: http://www.himytv.com/main/customer



증권 방송 및 PC 화면을 위주로하는 방송 솔루션입니다.  

  • 고해상도 지원  (Full HD 이상도 실시간 강의가 가능합니다)
  • Active-X를 사용하지 않고, 모든 브로우져 지원
  • 안드로이드 아이폰 지원
  • 각종 API를 통해서 고객 사이트 및 카페 지원
  • 실시간 방송
  • True Color



Posted by 류종택

cocos2d-x 강의에 앞서서 설치 과정을 설명하려고 합니다.  이 것들이 버전이 달라질 때마다 사용법이 바뀌어서 강의 준비하다가 한 참을 헤매고 말았습니다 ㅡ.ㅡ;


강의는

  • https://www.facebook.com/codeway/posts/281042138725260
  • 2014년 4월 16일 오후 2시부터 시작합니다.
  • 참가자는
    • 듀얼 모니터가 있어야 합니다.  없으시면, 아이폰이나 안드로이드 폰 또는 해당 OS의 테블릿이 필요합니다.
      • 한쪽은 강의 내용을 보고 한 쪽은 실습을 합니다.
      • 문제가 발생하면 강사가 원격으로 수정해 드립니다.
    • 참가 신청은 위의 링크를 참고 하시기 바랍니다.
  • 기타
    • Cocos2d-x 입문 강의입니다.
    • 강의 내용은 http://www.raywenderlich.com/25736 따라하기 입니다.
    • 기존 강의와 달리 이번 강의는 실습을 포함합니다. 그로 인해서 선착순으로 20명만 모집합니다.


강의에 사용 할 리소스


Cocos2DSimpleGameResourcePack.zip




1. 다운로드

  • http://www.cocos2d-x.org/download 에서 cocos2d-x-3.0rc1 를 다운 받고 압축을 풉니다.


2. 빌드
  • 비주얼 스튜디오 2012를 설치합니다.  
    • 이번 강의에서 사용 할 버전입니다.
    • 무료 버전을 사용하셔도 됩니다.
  • build 폴더에 있는 cocos2d-win32.vc2012.sln 파일을 비주얼 스튜디오에서 엽니다.
  • [그림 1]과 같이 솔루션 전체를 빌드합니다.
  • 시간이 오래 걸립니다.  막간에 게임 한 판? ㅡ.ㅡa

[그림 1]


3. 프로젝트 생성
  • 콤멘드 창을 엽니다.  (관리자 권한이어야 한다는 글을 본적이 있습니다.  일단 저는 그렇게 했습니다 ^^)
  • cocos2d-x 가 설치 된 위치에서 setup.py 를 실행합니다.  (phtyton 설치 되어야 합니다)
    • [그림 2]처럼 무엇인가 물어보면 그냥 엔터를 칩니다.
  • 컴퓨터를 껐다가 다시 켜라고 합니다.  일단 그렇게 합니다 ㅡ.ㅡ;
  • 재부팅이 되면, 다시 콤멘트 창을 열고 "cocos2d-x-3.0rc1\tools\cocos2d-console\bin" 폴더로 이동합니다.  (이 폴더가 Path에 저장되어 있으면, 프로젝트 파일을 저장 할 위치에서 진행 하셔도 됩니다.
  • 아래와 같은 형식으로 프로젝트를 생성합니다.  
    • D:...> cocos new 프로젝트명 -p 패키지명 -l cpp -d "프로젝트 저장 할 위치"
  • [그림 3]과 같이 파일이 생성되면, 비주얼 스튜디오에서 열어서 실행 해 봅니다. 역시 오래 걸립니다.
    • 저의 경우에는 "..\HelloWorld\proj.win32" 폴더 안에 "HelloWorld.sln" 파일을 엽니다.
  • [그림 4]와 같이 "HelloWorld" 프로그램이 실행 되면 준비가 완료 된 것 입니다.



[그림 2]




[그림 3]




[그림 4]






'프로젝트 > HelloWorld' 카테고리의 다른 글

프로그래밍을 제대로 배우기 어려운 이유  (2) 2014.12.29
cocos2d-x 시작하기  (0) 2014.04.07
아빠! 프로그래밍이 모에요?  (2) 2014.03.27
슈팅게임 JetBoy #3  (0) 2014.03.23
슈팅게임 JetBoy #2  (0) 2014.03.23
슈팅게임 JetBoy #1  (2) 2014.03.23

Posted by 류종택


티스토리 툴바