Programming/MFC-C++

ffmpeg 관련 정보

빠릿베짱이 2013. 2. 16. 20:29
반응형

FFMpeg Tutorial

http://dranger.com/ffmpeg/tutorial01.html

Video & Audio Encoding, Decoding Example

http://ffmpeg.org/doxygen/trunk/api-example_8c-source.html

FFMpeg VC++ 6.0에서 컴파일 방법

http://www.codeproject.com/Tips/111468/FFmpeg-Tutorial

 

Visual C++ 컴파일 관련한 방법

http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b

 

FFmpeg을 이용하여 개발 시 유용할 듯 함.. 통밥에서 오는 삘~~~

http://ffmpeg.zeranoe.com/blog/?p=166

 

vs2010 에서 api-example.c 컴파일 하는 방법

http://blog.naver.com/PostView.nhn?blogId=bsh0128&logNo=80162582453

델파이와 ffmpeg

http://ryulib.tistory.com/248

 

 

희안하게도 이걸 컴파일 하는데, 삽질 할줄 알았는데. 이상하게 금방 됬다.

다른 자료 찾아보니 무척 복잡해보였으나, 걍 대충대충 하다보니,ㅋㅋㅋ

되버렸다. 그래서 잊어버릴까바. 정리하고자 한다.

먼저 ffmpeg 소스를 받는다.

http://ffmpeg.org/download.html

본인은 여기서 FFmpeg 1.1.3 "Fire Flower"를 받았다.

http://sourceforge.net/projects/mingw/files/

그리고 여기서 mingw-get-inst-20120426.exe 파일을 다운로드 후 설치하였다.

설치하다보면 선택하는게 보이는데, 기본적으로

c compiler 만 선택되어있다.

왠지 c++ compiler와 MSYS Basic System 과 MinGW Developer Toolkit 을 체크하고 싶어서

체크하고 설치하였다.

그럼 c:\MinGW 폴더에 설치가 된다.

그리고 그 안에 msys 폴더가 있는데, 거기서 msys.bat 를 실행한다.

여기서 잠깐

C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat

이걸 실행하지 않으면 lib 파일이 생성이 안되는 듯 하다. 그래서

msys.bat 파일을 열어서 가장 위에

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

이 부분을 추가하였다. 그럼 이제 다음 순서로 하면 된다.

msys.bat을 실행해서

실행하면 도스창이 뜨는데.

cd ..

cd ..

두번하고 dir 치면 msys 폴더에 있는 내용이 뜬다.

그럼 위에서 받은 ffmpeg 소스를 그 안에 폴더채로 복사를 한다.

그리고 cd ffmpeg 으로 그 안에 들어가서

./configure --help

를 치면, 옵션에 대한 설명이 쭈~욱 나온다.

상당히 옵션이 많은데, 네이버 서치하여 대부분 간단하게 하길래 그중에 하나 선택해서

./configure --enable-shared --disable-static --enable-memalign-hack

이렇게 치면 아마도 다음과 같이 에러가 나올 것이다.

yasm not found. use --disable-yasm 어쩌고 저쩌고

그래서 뒤에 추가하고 다시 하였다.

./configure --enable-shared --disable-static --enable-memalign-hack --disable-yasm

그럼 한참 기다리면 환경설정이 되는 듯 하다.

이 명령이 완료되면 프롬프트가 뜨는데, 그럼

make

치고 엔터 치면 컴파일이 된다.

컴파일이 끝나면 ffmpeg 폴더에 exe 파일이 생기고, 각 폴더안에 라이브러리 파일과 dll 파일이 생성된다.

머 이것을 한쪽에 몰아넣고 싶다면, 옵션에서 조정하면 될듯 한데, 본인은 원래 대충하는 성격이라.

걍 했다. ㅋㅋ

근데 어디 보니 make install도 하라는데, make만 해도 잘 되던데, 저건 왜 하는걸까..

지금 실험삼아 해보고 있긴한데, make랑 크게 달라보이진 않는다. 머가 다를까요? 아시는 분은 댓글 좀.. 굽신.

그리고 이제 테스트를 하자면,

ffmpeg 폴더에 doc 폴더 안에 example 폴더가 있다.

그 안에 decoding_encoding.c 를 이용하여 테스트 하였다.

아마 컴파일 하면 inttypes.h 에 대한 오류가 발생할 것이다.

http://code.google.com/p/msinttypes/downloads/list

위의 링크로 가서 다운로드 후 압축을 풀고 inttypes.h 파일을 ffmpeg 폴더에 넣는다.

그리고 컴파일 하면 짜잔~ 하고 될 것이다.

희안하게 삽질을 해야하는데, 너무 쉽게 컴파일이 되서 먼가 찜찜함.ㅋㅋ

여튼 돌긴 도니까.. 한가지 문제가 있다면 소스 코드에서 h264에 대한 샘플을 제공하는데 실행해보니 코덱이 없단다.

이유가 멀까.. 해보신 분은 좀 알려주세요~

 

머 어찌됫던 기본적인건 되니까. 이제부터 삽질해서 제대로 하면 될듯하다. 처음부터 시작이 좋다.

화이팅 해봅시다. ~

x264 설치 편

먼저 x264를 다운로드 한다.

http://www.videolan.org/developers/x264.html

압축을 풀고

C:\MinGW\msys\1.0 경로에 복사한다.

MinGW shell 창을 들어가서 해당 경로로 간 후에

다음과 같이 명령을 내린다.

./configure --enable-win32thread --enable-static --prefix=../build/media_x86

make

make install

그러면 C:\MinGW\msys\1.0\build\media_x86 폴더에 라이브러리와 인클루드가 생긴다. bin 폴더도 생김

ffmpeg을 다시 컴파일 한다

[32bit compile]
./configure --enable-memalign-hack --enable-gpl --enable-libx264 --extra-cflags=-I../build/media_x86/include --extra-ldflags=-L../build/media_x86/lib --prefix=../build/media_x86

 

./configure --enable-shared --disable-static --enable-memalign-hack --arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32- --enable-gpl --pkg-config=pkg-config --enable-pthreads --enable-libx264 --enable-libxvid --extra-cflags=-I../build/media_x86/include --extra-ldflags=-L../build/media_x86/lib --prefix=../build/media_x86

 

x264와 기타 라이브러리와 ffmpeg 빌드 하는 방법

https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

http://blog.naver.com/PostView.nhn?blogId=kimdew0912&logNo=100091607458&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

http://blog.naver.com/PostView.nhn?blogId=shlee7708&logNo=120154583078

http://nieaunder.egloos.com/4602791

avi 파일로 저장하는 예제 코드

http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/output-example_8c-source.html

x264 코덱 설정하는 파라메터 예제

http://natnoob.blogspot.kr/search?updated-min=2011-01-01T00:00:00%2B07:00&updated-max=2012-01-01T00:00:00%2B07:00&max-results=6

http://catnest.tistory.com/200

영상 디코딩과 관련된 소스 코드

http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.5/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp

http://ffmpeg.org/doxygen/trunk/api-example_8c-source.html

inline 관련 에러시

#define inline __inline 을 추가하면 됨. stdafx.h 에?

ffmpeg 라이브러리에서 AES 알고리즘 관련 함수를 제공한다.

http://ffmpeg.org/doxygen/trunk/aes_8c_source.html#l00142

안드로이드 FFMpeg 관련자료

http://www.androidpub.com/index.php?mid=android_dev_info&category=127161&document_srl=1645684

http://www.androidpub.com/index.php?mid=android_dev_info&category=127161&document_srl=1646144

http://www.androidpub.com/index.php?mid=android_dev_info&category=127161&document_srl=1646529

http://www.androidpub.com/index.php?mid=android_dev_info&category=127161&document_srl=1646540

http://helloworld.naver.com/helloworld/8794

ffmpeg을 이용한 플레이어 (화면 뿌리는 것은 OpenGL 사용함)

https://github.com/limitz/AV3D

반응형