https://github.com/ryujt/ff-player




FFMPEG을 이용한 동영상 플레이어 예제입니다.  지난 번 만들었던 C++ 예제도 새로 만들었습니다.

  • FFMPEG을 활용하는 기본 지식을 이해하는데 집중하였습니다.
  • 동영상 플레이어는 열기, 닫기, 재생, 멈춤의 기본 기능만 다루고 있습니다.
  • C++ 예제에는 화면 출력 부분이 아직 완료되지 않았습니다.
  • 성능에 대한 고려는 없습니다.  최대한 이해하기 쉽게 하려고 노력하였습니다.
  • 아래의 추가 라이브러리가 필요합니다.


저작자 표시 비영리 변경 금지
신고

Posted by 류종택



boost  설치


boost 파일을 다운받고 boost가 root 위치에서 아래와 같이 실행합니다. (http://www.boost.org/)

  • C:\boost root>bootstrap.bat
  • C:\boost root> b2 --with-system --with-date_time --with-python



libtorrent 설치


libtorrent 파일을 다운받고 아래와 같이 실행합니다.  (https://github.com/arvidn/libtorrent/releases)

  • C:\libtorrent root> set BOOST_BUILD_PATH=C:\boost_root
  • C:\libtorrent root> set PATH=%BOOST_BUILD_PATH%;%PATH%
  • C:\libtorrent root> b2 boost=source link=static geoip=static boost-link=static release optimization=space



기타


저작자 표시 비영리 변경 금지
신고

'오픈소스 연구 > libtorrent' 카테고리의 다른 글

Building libtorrent with Visual Studio  (0) 2016.03.18
Building libtorrent with MinGW  (0) 2016.03.18

Posted by 류종택



몇 년 전 사용하다가 다시 사용하려하니 빌드 자체에서 시간을 허비하여 정리 차원에서 남깁니다.  일단 빌드까지만 성공 했을 뿐, 예제를 컴파일 할 때 소켓 라이브러리 에러가 나네요.  (물론 라이브러리는 포함 시켰지만)


일단 현재까지의 상황만 정리합니다.  시행착오는 길었으나, 결과는 너무 초라할 정도로 간단하네요 ㅡ.ㅡ;


당연히 MinGW가 필요합니다.



boost 설치


boost 파일을 다운받고 boost가 root 위치에서 아래와 같이 실행합니다. (http://www.boost.org/)

  • C:...>bootstrap.bat mingw
  • C:/...> b2 toolset=gcc
  • boost root에는 boost라는 헤더 파일을 모아 놓은 폴더가 있습니다.  이넘을 MinGW/msys/1.0/include/boost 로 복사합니다.  복사하지 않고 쓸 수도 있지만, 저는 이것이 편했습니다.
  • boost root/stage/lib/*.a 파일을 MinGW/msys/1.0/lib 폴더 안에 복사합니다.



libtorrent 설치


libtorrent 파일을 다운받고 아래와 같이 실행합니다.  (https://github.com/arvidn/libtorrent/releases)

  • MinGW를 실행하시고, libtorrent root로 이동
  • $ ./bootstrap.sh
  • $ export CXXFLAGS="-D_WIN32_WINNT=0x0500 -D__USE_W32_SOCKETS -D_WIN32 -DBOOST_ASIO_SEPARATE_COMPILATION"
  • $ export LDFLAGS="-lws2_32 -lwsock32"
  • $ ./configure --enable-shared --disable-encryption --disable-geoip
  • $ make
  • $ make install

CXXFLAGS에서는 -D_WIN32_WINNT=0x0500 필요하고 나머지는 구글 검색에서 나오는 넘들을 하나씩 테스트 해봤으나, 소용 없었습니다.

LDFLAGS는 혹시나 해서 추가해봤습니다.  여전히 소용 없었습니다.


저는 OpenSSL이 필요 없어서 --disable-encryption 옵션을 사용했습니다.


--disable-geoip를 빼면, 해당 소스 파일에서 에러가 납니다.  맨위에 #define WIN32를 추가하면 빌드가 되지만, 제대로 동작하는 지는 모르겠습니다.



기타


위와 같이 하면 빌드는 무사히 되지만, 예제를 만들어서 빌드하면 윈속 라이브러리가 링크되지 않는 에러가 발생합니다.  이부분은 구글을 계속 검색하면서 추적해봤지만, 아직까지 해답을 모르겠습니다.  리눅스에서 사용하면 그냥 잘 됩니다.

저작자 표시 비영리 변경 금지
신고

'오픈소스 연구 > libtorrent' 카테고리의 다른 글

Building libtorrent with Visual Studio  (0) 2016.03.18
Building libtorrent with MinGW  (0) 2016.03.18

Posted by 류종택

오랫만에 써보려면 꼭 무엇인가는 바뀌어 있다 ㅡ.ㅡ

(그래도 이번에는 좀 쉽게 바뀌어서 간략하네요)


C:\boost_1_58_0> bootstrap.bat mingw

C:\boost_1_58_0> .\b2 toolset=gcc install

저작자 표시 비영리 변경 금지
신고

Posted by 류종택
필요한 파일 다운로드

빌드 순서
  • MinGW 실행
  • tar -xzvf faac-1.28.tar.gz
  • cd faac-1.28
  • faac-1.28.diff 파일 복사
  • patch -p1 <faac-1.28.diff
  • ./bootstrap
    • 어?  에러 나는데!  아몰랑 ㅡ.ㅡ;
    • 혹시나 해서 그냥 빌드해보니 되길래 넘어갔습니다.
  • ./configure --prefix=/mingw --without-mp4v2 
  • make
  • make install


저의 경우에는 패치하면 된다던 mp4v2에서 에러가 납니다.

일단 제거하고 사용 할 예정입니다.

혹시라도 나중에 해결 방법을 알게 되면 덧글 붙이겠습니다.



저작자 표시 비영리 변경 금지
신고

Posted by 류종택

다음과 같이 온라인 강의를 진행 합니다.

  • 제목: Video 압축
  • 날짜 및 시간: 2014년 3월 5일 수요일 오후 3시
  • 기타
    • 연락처: ryujt658@hanmail.net
      • 메일 보내주시면 다음 강의가 있을 때 미리 알려드립니다.


녹화자료



강의 내용

  • WebM(libVPX)를 이용한 비디오 압축
  • 라이브러리 사용 예제는 C++을 사용합니다.
  • 테스트 용 UI 제작은 Delphi를 사용 합니다.



강의실 입장 방법
  • http://listen.himytv.com/codeway/1 <-- 클릭 합니다.
  • 사용하실 이름을 입력하시고 엔터를 칩니다.
  • 처음 사용하시는 분들은 [그림 1]과 같이 프로그램 다운로드 창이 나타납니다.  이미 설치하신 분은 바로 강의실로 입장 됩니다.
  • 다운 받으신 프로그램을 실행하여 프로그램을 설치합니다.
  • 설치가 완료되면 실행 버턴을 클릭하시면 강의실로 입장 됩니다.
  • 강의하는 날이 아닐 경우에는 접속이 되지 않을 수 있습니다.


[그림 1]



참고자료





저작자 표시 비영리 변경 금지
신고

'오픈소스 연구 > WebM' 카테고리의 다른 글

온라인 강의 - Video 압축  (0) 2014.03.04
libvpx for Android  (0) 2013.12.09
Visual Studio 2012에서 WebM(libvpx) build error  (0) 2013.07.12

Posted by 류종택

원본: https://github.com/langresser/libiconv-1.14-android


위의 링크에서 다운받은 소스 파일입니다.

libiconv-1.14-android-master.zip



그리고, 수정한 Android.mk 내용입니다.  그냥은 안되더라고요 ㅡ.ㅡa


LOCAL_PATH := $(call my-dir)


include $(CLEAR_VARS)


LOCAL_MODULE := iconv


LOCAL_CFLAGS := \

  -Wno-multichar \

  -DANDROID \

  -DLIBDIR="c" \

  -DBUILDING_LIBICONV \

  -DIN_LIBRARY


LOCAL_SRC_FILES := \

  libiconv-1.14/libcharset/lib/localcharset.c \

  libiconv-1.14/lib/iconv.c \

  libiconv-1.14/lib/relocatable.c


LOCAL_C_INCLUDES += \

  $(LOCAL_PATH)/libiconv-1.14/include \

  $(LOCAL_PATH)/libiconv-1.14/libcharset \

  $(LOCAL_PATH)/libiconv-1.14/lib \

  $(LOCAL_PATH)/libiconv-1.14/libcharset/include \

  $(LOCAL_PATH)/libiconv-1.14/srclib

 

LOCAL_EXPORT_C_INCLUDES       := $(LOCAL_PATH)/libiconv-1.14/include


include $(BUILD_SHARED_LIBRARY)


저작자 표시 비영리 변경 금지
신고

'오픈소스 연구' 카테고리의 다른 글

libiconv for Android  (0) 2013.12.26
libjpeg-turbo for Android  (0) 2013.12.05

Posted by 류종택

# git clone http://git.chromium.org/webm/libvpx.git


# cd libvpx


./configure --target=armv7-android-gcc --disable-examples --sdk-path=[ndk 설치 된 곳]

  • 여기서 Requested CPU 'cortex-a8' not supported by compiler 에러가 난다면 구글을 검색해보면 해결책이 나옵니다.
  • 저는 이해가 잘 안가서 우분투에서 작업하니 그냥 됩니다.  (윈도우(cygwin)에서는 위의 에러가 발생)
  • 아마도 gcc 버전 문제가 아닐까 하는 생각이 듭니다.  심도 깊게 알아보지는 않았습니다 ^^;
# make STRIP=
  • STRIP= 은 필요 없는 것인데, 혹시 빌드 된 static library 를 사용 할 때 경고가 뜨면 추가해서 빌드하시면 됩니다.
  • 문제가 있을 경우, 경고는 다음과 같이 나타납니다.  
    • warning: cannot scan executable section 1 of ... for Cortex-A8 erratum because it has no mapping symbols.
libvpx 폴더에 보시면 static library가 생성되어 있는 것을 확인하실 수가 있습니다.

static 으로 포함시켜서 ndk 빌드하는데 아래와 같은 에러가 나면 --disable-runtime-cpu-detect 를 추가 하면 됩니다.
  • undefined reference to `android_getCpuFeatures'






저작자 표시 비영리 변경 금지
신고

'오픈소스 연구 > WebM' 카테고리의 다른 글

온라인 강의 - Video 압축  (0) 2014.03.04
libvpx for Android  (0) 2013.12.09
Visual Studio 2012에서 WebM(libvpx) build error  (0) 2013.07.12

Posted by 류종택

SoundTouch를 안드로이드로 빌드한 것 입니다.

빌드 된 채로 모두 압축하였습니다.  (소스와 *.so 파일 및 obj 폴더 포함)


soundtouch-android.7z


저작자 표시 비영리 변경 금지
신고

'오픈소스 연구 > SoundTouch' 카테고리의 다른 글

SoundTouch for Android  (0) 2013.12.07
SoundTouch 버그 수정  (0) 2012.01.18

Posted by 류종택

일단 아래 파일은 빌드를 한 것 입니다.


libjpeg-turbo.7z



빌드하는 방법은 아래 링크를 참고하시면 됩니다.


예제


저작자 표시 비영리 변경 금지
신고

'오픈소스 연구' 카테고리의 다른 글

libiconv for Android  (0) 2013.12.26
libjpeg-turbo for Android  (0) 2013.12.05

Posted by 류종택


티스토리 툴바