아래 명령을 입력하면, 현재 시스템의 디스크 및 파티션 정보를 확인 가능합니다.

$ sudo fdisk -l

(소문자 L)

 

1. 파티션 생성

 

새로 추가된 하드디스크의 정보를 확인 한 뒤,(예: /dev/sdb)

해당 디스크에 파티션을 생성하기 위해 아래 명령을 입력합니다.

$ sudo fdisk /dev/sdb

 

m 을 입력하면 사용할 수 있는 명령들의 리스트를 보여줍니다.

n 명령으로 파티션을 생성한 뒤, fdisk 를 종료하기 전에 꼭 w 를 입력하여

설정사항을 저장하고 나옵니다.

 

2. 파일시스템 생성 (format)

 

$ sudo mkfs.ext4 /dev/sdb1

 

3. 마운트 방법

 

아래 명령으로 마운트 시킬 디렉토리를 생성합니다.

$ sudo mkdir /mnt/sdb

 

마운트 명령을 통하여 파일 시스템을 생성한 디렉토리에 연결합니다.

$ sudo mount -t ext4 /dev/sdb1 /mnt/sdb

 

4. booting 시 자동으로 마운트 시키는 방법

 

/etc/fstab 파일에 아래 내용을 추가합니다.

/dev/sdb1   /mnt/sdb   ext4   errors=remount-ro   0   1

 

마운트 정보를 refresh 합니다.

$ sudo mount -a

 

file system 정보를 보는 명령을 입력하여 마운트 된 파일시스템의 정보를 확인해 볼 수 있습니다.

$ df -k

 

 

 

 

 

'Tip' 카테고리의 다른 글

Disable Microsoft Office Upload Center  (0) 2013.12.12
mac address table in linux  (0) 2013.12.06
wireshark in Kali (Ubuntu)  (0) 2013.12.06
How to install pcap lib in Kali  (0) 2013.12.06
samba in Ubuntu (Kali)  (0) 2013.10.17
by JNexOnSoft 2014. 2. 5. 16:28

요즘 스마트폰 성능도 좋아지고, 망과의 데이터 속도도 좋아짐에 따라, 멀티미디어 서비스 분야에 더욱더 초점이 맞추어지고 있습니다. 이러한 분위기에 발맞추어 멀티미디어 분야에 대해 스터디 중인데요...

 

http://www.androidpub.com/index.php?mid=android_dev_info&page=1&search_target=tag&search_keyword=FFmpeg&document_srl=1645684 

에 스터디 하기 좋은 자료가 있어서 따라해 보았습니다.

 

아래 웹페이지에서는 테스트시 사용할 수 있는 전체코드를 배포하고 있습니다.

http://www.androidpub.com/index.php?_filter=search&mid=android_dev_info&search_target=title&search_keyword=ffmpeg&document_srl=1648388

 

준비물 및 빌드 방법은 다음과 같습니다.

 

1) cygwin 

   윈도우 환경에서 cross compiler 로 빌드하기 위한 준비단계로, cygwin 을 설치합니다. 아래 버전을 사용하고 있습니다.

$ uname -a
CYGWIN_NT-6.1 wolf-PC 1.7.10(0.259/5/3) 2012-02-05 12:36 i686 Cygwin

 

2) NDK 설치

   http://developer.android.com/sdk/ndk/index.html 에서 다운로드 받을 수 있습니다.

   32비트 환경에서 작업하므로, android-ndk-r9c-windows-x86.zip 를 다운로드 하였습니다. 설치디렉토리를 환경설정의 PATH 에 등록해 줍니다.( 예: C:\work\android-ndk-r9c)

 

3) standalone tool 설치

   다운로드 받은 NDK 안에서 아래 명령어를 통해 추출해 낼 수 있습니다. cygwin Terminal 을 관리자 권한으로 실행 후, 아래 명령을 입력합니다.

  

$ /cygdrive/c/work/android-ndk-r9c/build/tools/make-standalone-toolchain.sh --platform=android-8 --install-dir=/android-toolchain

 

   관리자 권한으로 실행하지 않으면, 아래와 같은 Permission denied 에러 메시지가 출력됩니다.

$ make-standalone-toolchain.sh --platform=android-8 --install-dir=/path/to/target --ndk-dir=/path/to/android-ndk/
Auto-config: --toolchain=arm-linux-androideabi-4.4.3
Copying prebuilt binaries...
Copying sysroot headers and libraries...
Copying libstdc++ headers and libraries...
mkdir: cannot create directory `/tmp/build-6212/standalone/arm-linux-androideabi-4.4.3/arm-linux-androideabi': Permission denied
ERROR: Cannot copy to directory: /tmp/build-6212/standalone/arm-linux-androideabi-4.4.3/arm-linux-androideabi/include/c++/4.4.3

 

4) android app project 생성

   http://www.androidpub.com/index.php?mid=android_dev_info&page=1&search_target=tag&search_keyword=FFmpeg&document_srl=1645684  를 참고하여 생성합니다.  필자는 E:\212.JavaTraning\FFmpeg 에 생성하였는데, 원하는 위치에 하면됩니다.

   프로젝트 디렉토리 안에 jni 디렉토리를 생성합니다. ( E:\212.JavaTraning\FFmpeg\jni 처럼)

 

5) ffmpeg 소스 및 jni 를 이용하기 위한 소스 추가

  http://www.androidpub.com/index.php?_filter=search&mid=android_dev_info&search_target=title&search_keyword=ffmpeg&document_srl=1648388 에서 소스를 다운로드 하여 jni 디렉토리 하위 내용을 전부 해당 위치로 복사해 옵니다. (안드로이드 앱 프로젝트 소스도 포함되어 있으니 참고하면 됩니다.)

  변경 사항들에대해서 알고 싶으면 위의 URL 로 가서, 강좌를 쭉~ 보시기 바랍니다.

 

  a. config.sh 에서

  export ANDROID_ROOT=/cygdrive/c/my-android-toolchain  를 자신의 환경에 맞게 바꾸어 줍니다.

  필자는 export ANDROID_ROOT=/android-toolchain 로 변경함. 

 

   b. C:\ffmpegtmp 디렉토리를 생성합니다. configure 명령을 실행하면서 중간에 필요한 파일들의 임시 저장소로 사용됩니다.

 

6) ffmpeg source 빌드

   cygwin terminal 에서 jni/ffmpeg 위치로 이동합니다. ( 필자는 /cygdrive/e/212.JavaTraning/FFmpeg/jni/ffmpeg 위치)

 

   $ .  ./config.sh  를 입력하여 정상적으로 configure 가 실행된다면, 해당 디렉토리에 config.h 가 생깁니다.

 

   이 명령이 실행되면서 출력되는 메시지를 보면, no such file or directory 들도 보이고,

   WARNING: /android-toolchain/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
   이런 warning 도 보이지만, config.h 가 최종 생성됩니다.

   (사실, 전체소스안에 이미 config.h 가 생성되어 있는데, 새로이 생성해 보았습니다.)

 

   그 후, android app project 디렉토리로 이동하여 (/cygdrive/e/212.JavaTraning/FFmpeg)

  

  $ ndk-build 명령을 실행합니다.

 

  실행시 아래와 같은 에러가 발생한다면...

 

jni/ffmpeg/libavcodec/srtdec.c: In function 'srt_to_ass':

jni/ffmpeg/libavcodec/srtdec.c:113:61: error: format not a string literal and no format arguments [-Werror=format-security]

jni/ffmpeg/libavcodec/srtdec.c:149:53: error: format not a string literal and no format arguments [-Werror=format-security]

cc1.exe: some warnings being treated as errors

 

/cygdrive/c/work/android-ndk-r9c/build/core/build-binary.mk:386: recipe for target `obj/local/armeabi-v7a/objs/avcodec/srtdec.o' failed

make: *** [obj/local/armeabi-v7a/objs/avcodec/srtdec.o] Error 1

 

  >>>웹서핑을 해보니 이런 내용이 있습니다. 

srtdec.c 파일 113 라인의 snprintf 부분에서 오류가 났습니다. NDK 버젼이 바뀌면서 snprintf "%s" 같은 포멧 선언이 빠지면 컴파일시 warring 나오던데서 에러가 나오게 변경되서 컴파일이 겁니다. 설명대로 CFLAG -Werror=format-security 추가하셔도 되고, snprintf 사이에 "%s" 같은 것을 넣어주셔도 됩니다.
 예) out += snprintf(out, out_end-out, "%s", stack[j].param[i]); 필자는 이런식으로 수정해서 빌드했습니다.

  제법 시간이 흐린 뒤, 빌드에 성공하면, {android app project directory}\FFmpeg\libs\armeabi-v7a\ 에 libbasicplayer.so 가 생성됩니다.

 

7) android app project build

   eclipse 에서 해당 프로젝트를 열고, 안드로이드 폰을 usb 케이블로 PC와 연결후, build 버튼을 선택합니다. 필자는 아래 동영상이 플레이됩니다. (윈도우즈 OS에 기본적으로 있는 "야생.wmv" 를 실행시켜 보았습니다. 소리는 나지 않고요... ^^;; audio codec에 대한 디코딩 부분을 확인해 봐야겠죠...)

 

  

 

'Biz > Multimedia' 카테고리의 다른 글

How to build Mediainfo open source in VS2010  (0) 2013.12.07
OpenCV in Linux  (0) 2013.11.29
Visual Studio Build error - opencv_core247d.lib  (0) 2013.11.14
OpenCV & VS2010  (0) 2013.11.14
ffmpeg compile in Ubuntu  (0) 2013.10.14
by JNexOnSoft 2014. 2. 3. 00:11

Xcode 에서 run 선택시 release mode 로 바이너리 생성 후 실행하는 방법입니다.


Xcode 메뉴에서 Product > Scheme > Edit Scheme 을 선택하면 [그림 1]의 화면이 나타납니다.


[그림 1]


[Build Configuration] 항목을 "Release" 로 설정하면 Build 시 Release Mode 로 바이너리가 생성됩니다.


by JNexOnSoft 2014. 1. 28. 18:23
| 1 2 3 4 5 6 7 ··· 15 |