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




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

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


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

Posted by 류종택


MinGW-20120330.zip.torrent


ffmpeg을 빌드하기 위해서 필요한 라이브러리 등을 설치한 MinGW의 스냅샷입니다.  제가 사용하던 것을 그대로 압축한 것 입니다.  저는 MinGW를 설치한 이후 이넘을 덮어 써서 사용합니다.  ffmpeg은 포함되어 있지 않습니다.  해당 사이트에서 받아서 사용하시기 바랍니다.  설치된 라이브러리들은 home/lib에 있습니다.  설치는 되었지만, 해당 폴더에 없는 것들이 있을 수 있습니다.



MinGW-20120405-MEncoder 한글 자막.zip.torrent


Mencoder 개발환경이 포함 된 MinGW의 스냅샷입니다.  MEncoder 소스가 포함되어 있긴 하지만, 제가 소스를 조금 수정한 것이 있으니, 원본을 다시 설치하시는 것이 좋을 듯 합니다.  수정한 것은 MEncoder.c 이며, 델파이로 만든 관리툴과 통신하기 위해서 파라메터 앞에 ID를 추가하고, 내부 변화를 SendMessage로 델파이 어플리케이션 쪽으로 전송하는 부분이 추가되었습니다.  



MP4에 한글 자막 넣기 등 몇 가지 추가 요소 때문에 고생해서 완성한 작업환경입니다.  저처럼 삽질에 시간을 빼앗기지 않는 데 조금이나마 도움이 됐으면 좋겠습니다.


대량의 미디어 파일을 인코딩하면서 관리하는 프로젝트를 위해 작업한 것들입니다.  언젠가 정리해서 올려야지 하면서도 바쁘게 살다보니 정리는 하지 못하고 그냥 스냅샷만 올려드립니다 ^^*



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

Posted by 류종택
  • 서버: 델파이
  • 클라이언트: "안드로이드 + ffmpeg" or "MS-Windows + ffmpeg"
     
어제 1차 개발일정을 마치고 프로젝트를 간략하게 정리해 봅니다.  모든 프로젝트를 정리해야지 하면서도 잘 안되는 군요 ^^;

이미 상용 미디어 서버가 시장을 장악한 상황에서 미디어 서버를 직접 개발하게 된 이유는 다음과 같습니다.
  • 실시간 방송 중 광고 송출
  • VOD 방송 중 배속 재생 등을 지원하는 미디어 서버 및 클라이언트 개발
  • VOD 방송 중 광고 송출
  • 통신사에서 RTSP를 막아버리고 있는 가 봅니다.  이것도 하나의 개발 이유

제 다른 포스트에서도 썼던 기억이 있지만, 현재 미디어 서버에서 제공하는 배속은 제약사항 때문에 고객의 니즈를 만족시키지 못하여, 직접 제작을 의뢰 받아서 제작 중 입니다.

아래는 실시간 방송 모듈 테스트 화면입니다.  원본 영상의 해상도는 640*480 입니다. 




서버의 Class Diagram

[그림 1]
  • FFServer: 미디어 서버 클래스
  • FFConnection: 사용자의 컨넥션을 관리
  • MediaSourceList: 미디어서버를 통해 배포할 동영상의 소스
  • PackageBuffer: 동영상의 프레임 정보를 묶어서 관리
  • Package: 프레임의 묶음
  • 기타 클래스는 도면에서 생략하였음


클라이언트의 Class Diagram

[그림 2]
  • FFClient: 미디어 서버에 접속하여 동영상을 재상하는 클래스
  • State관련 클래스들: 클라이언트의 State Diagram 참고
  • StreamPlayer: 서버로부터 전송 받은 동영상 정보를 재생하는 클래스
  • 기타 클래스는 도면에서 생략하였음


클라이언트의 State Diagram

[그림 3]
  • 스마트폰의 특성상 네트워크가 불안정해질 수 있기 때문에 의도하지 않게 접속이 끊어졌을 경우에는 재접속하여 재생을 계속 이어가도록 했습니다.
 


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

Posted by 류종택
만들기는 6-8 개월 전에 만들었는데, 프로젝트에 쫓기면서 살다보니 이제서야 올립니다.  sws_scale() 함수 및 rtsp 등의 프로토콜을 사용하는데 필요한 모든 코드가 포함되어 있습니다.  배속 재생 및 rtsp 버퍼링 등을 지원하는 플레이어를 만들면서 만들었던 것입니다.  FFMPEG의 소스 및 빌드 방법은 http://ryulib.tistory.com/123 를 참고하세요. (http://goo.gl/gTyQ8 에 더 쉽고 자세한 강좌가 있으니 참고하세요)

libs.zip


jni로 한 번 래핑해서 사용하셔야 합니다.
jstring
Java_ryulib_ffmpeg_FFMpeg_getStreamInformation(JNIEnv* env, jclass clazz, jint handle)
{
	FFmpegHandle *pHandle = (FFmpegHandle *) handle;

	char videoInformation[512];
	avcodec_string(videoInformation, sizeof(videoInformation), pHandle->pVideoCtx, 0);

	char audioInformation[512];
	avcodec_string(audioInformation, sizeof(audioInformation), pHandle->pAudioCtx, 0);

	char result[1024 * 4];

	sprintf(result,
		"%s\n%s",
		videoInformation, audioInformation
	);

    return (*env)->NewStringUTF(env, result);
}

래핑을 하시게 되면, 자신이 만든 jni로 컴파일한 so 파일과 함께 로딩해서 사용하시면 됩니다.  아래는 제가 libryumpeg.so 라는 이름으로 동적 링크 라이브러리를 만들어서 사용하는 경우의 예 입니다.  
package ryulib.ffmpeg;

import android.graphics.Bitmap;

public class FFMpeg {
	
	static {
		System.loadLibrary("ffmpeg");	
		System.loadLibrary("ryumpeg");	
	}
	
	public static final int Error_General = -1;
	public static final int Error_Can_Not_Open_File = -2;
	public static final int Error_Can_Not_Find_StreamInfo = -3;
	public static final int Error_Can_Not_Find_VidoeStream = -4;
	public static final int Error_Can_Not_Find_AudioStream = -5;
	public static final int Error_Can_Not_Open_VideoCodec = -6;
	public static final int Error_Can_Not_Open_AudioCodec = -7;
	
	public static final int UnknownPacket = 0;
	public static final int VideoPacket = 1;
	public static final int AudioPacket = 2;
	
	public static native String getDebugString();		
	
	// openFile(), closeFile(), start(), stop(): Main Thread에서 실행합니다.
	// start(), stop(): Thread-safe 합니다.
	
	// TODO : 파일이 없을 경우 어플리케이션이 죽음
	public static native int openFile(String fileName);
	public static native void closeHandle(int handle);
	
	public static native String getStreamInformation(int handle);	
	 
	// openFile() 호출 시, 내부에서 start()를 호출한 상태가 된다.
	public static native void start(int handle);
	public static native void stop(int handle);
	
	public static native int readFrameToBuffer(int handle);
	
	public static native byte[] getAudioData(int handle);
	public static native int getVideoData(int handle, Bitmap bitmap);

	public static native int getAudioPacketCount(int handle);
	public static native int getVideoPacketCount(int handle);
	
	// seekByTime(), rewindByTime(), forwardByTime(), readAudioPacket(): 동일한 쓰레드에서 사용되야 합니다. 
	
	public static native boolean seekByTime(int handle, int ms);
	public static native boolean rewindByTime(int handle, int ms);
	public static native boolean forwardByTime(int handle, int ms);

	public static native int getDuration(int handle);
	public static native int getPosition(int handle);	
	public static native int getVideoWidth(int handle);
	public static native int getVideoHeight(int handle);
	public static native int getSampleRate(int handle);
	public static native int getChannels(int handle);

}

 jni에 대해서는 아래 첨부 파일을 참고 하시기 바랍니다.

jni.pdf








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

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

ffmpeg 빌드 환경이 포함된 MinGW  (0) 2012.07.25
미디어 서버 구축 프로젝트  (2) 2012.02.29
libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15

Posted by 류종택
처음에 주로 ffplayer.c 또는 ffmpeg.c 소스를 보고 공부하거나, fa player 소스 등을 살펴보곤 했었는데, 이게 분량이 너무 많아서 애로점이 많습니다.

그러다가 검색을 통해서 찾은 링크
  http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/api-example_8c-source.html

결국 libavcodec 폴더 밑에 api-example.c 라는 파일에 간단한 함수들로 구성된 예제가 있었습니다.  ㅠ.ㅠ

오늘 다시 찾아보려다가 어디에 있는 지 기억이 가물거려서 블로그에 메모를 겸한 정리를 ^^;
저작자 표시 비영리 변경 금지
신고

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

미디어 서버 구축 프로젝트  (2) 2012.02.29
libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15
FFmpeg for Android 설치 및 컴파일  (12) 2011.03.17

Posted by 류종택
FFMpeg을 이용하여 만든 Android 용 동영상 플레이어 두 번째 업데이트입니다.  지난 번에는 너무 느려서 음성 싱크가 맞지 않았던, 640*480 해상도까지 음성 싱크가 맞도록 퍼포먼스를 개선한 상태입니다.  더 높은 해상도에 대해서는 프레임 수를 낮춰서 싱크를 맞추도록 할 예정입니다.

지난 번과 마찬 가지로 테스트 장비는 옵티머스 마하 입니다.

아래 녹화 이후 음성 처리 부분을 개선하여 좀더 부드럽게 업그레이드했습니다.  그런데도, 720*480 크기부터는 화면 표시가 어렵더군요, RockPlayer를 다운받아서 테스트 해보니, 역시나 마찬가지로 화면이 음성과 싱크가 깨지면서 밀립니다.  

코덱의 종류의 따라서도 밀리는 현상이 심각해지는 경우가 있습니다.

프레임 수를 낮추는 방식을 적용해보았지만, 좀 더 퍼포먼스 개선이 필요할 것 같습니다.  아니면, 현재의 싱글 코어에서는 640*480 정도가 한계일 수도 있을 듯 합니다. 




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

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

libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15
FFmpeg for Android 설치 및 컴파일  (12) 2011.03.17
FFmpeg 기초 예제  (2) 2011.02.24

Posted by 류종택
개발 PC가 맛이 가는 바람에 몇 일 고생하고, 어제 새벽 겨우 튜닝을 맞췄습니다.  아직도 성능 개선을 더해야 할 거 같지만, 그런데로 잘 동작하네요.  역시 소프트웨어 방식으로 동영상 재생하는 것은 현재 스마트 폰으로는 좀 버거운 것 같습니다.  듀얼 코어에서는 어떨지 테스트해야 하는데 아직 테스트 장비를 구하지 못해서 미루고 있습니다.

코어 쪽에 성능 개선을 하면 그런대로 쓸만하긴 하겠지만, 제가 원하는 퍼포먼스와는 상당히 거리가 머네요.  아래는 테스트 동영상 입니다. 

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

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

libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15
FFmpeg for Android 설치 및 컴파일  (12) 2011.03.17
FFmpeg 기초 예제  (2) 2011.02.24

Posted by 류종택

어제 새벽 작업 이후 내용을 추가합니다!!

컴파일된 libffmpeg.so 파일의 크기를 확인 못했었는데, 1KB로 표시되네요.  그리고, 원글을 제작한 개발자의 블로그에도 사용이 안된다고 나와 있습니다.  static 라이브러리로 사용하라는데, 일단 저는 다른 개발자가 만들어 놓은 libffmpeg.so를 이용해서 테스트 중 입니다.  직접 컴파일하는 것은 일단 다른 것들부터 진행하고 나서 천천히 해보려고 합니다.  

libffmpeg.so를 구할 수 있는 사이트는 아래와 같습니다.  밑에 download라고 되어 있는 링크를 사용하시기 바랍니다.  첨부 파일을 다운 받으셔도 됩니다.

http://odroid.foros-phpbb.com/t338-ffmpeg-compiled-with-android-ndk


libffmpeg.zip


참고로 위의 첨부에서는 img_convert(), sws_scale()의 함수는 포함되지 않은 것 같습니다.  이미지를 RGB로 변환하는 것은 따로 작성하셔야 합니다.

아래는 그동안 제가 고생한 내용을 정리합니다.  혹시나 도움이 되실 분들을 위해서..
  • Cygwin에서 작업하는 것보다는 우분투에서 작업하는 것이 더 쉽더군요. Cygwin에서 작업하다가 몇 일 더 까먹었습니다.
  • 우분투에 Z Lib를 설치하고 나서 재부팅하면 우분투가 부팅이 안되는 에러가 발생하였습니다.
     http://ryulib.tistory.com/119 를 참고하시기 바랍니다.
  • 윈도우 환경에서도 작업하기 위해서 제가 지원받은 PC가 내문서 등이 E: 드라이브로 설정되어 있었습니다.  이렇게 되면 Android 에뮬레이터가 실행되지 않는 에러가 발생합니다.  이클립스 및 안드로이드 SDK 문제인가 하고 계속 재 설치하느라, 몇 일 고생했습니다.  (일본 지진의 영향인지, 구글이 너무 느려서 다운로드 중 파일이 손상된 것인가 의심하느라)
    해당 에러 메시지를 구글에서 검색하시면 몇 가지 해결책이 나옵니다.  
    (저는 윈도우를 다시 설치하는 쪽으로..)  

 -- 아래는 위 링크의 사이트 내용입니다.

Create a new project, make jni folder, then download and extract ffmpeg, rename ffmpeg folder to ffmpeg.

 

Make a new config.sh in ffmpeg, notice a bout PREBUILT path and PLATFORM:

 

#!/bin/bash

PREBUILT=/home/abitno/Android/android-ndk-r4/build/prebuilt/linux-x86/arm-eabi-4.4.0
PLATFORM=/home/abitno/Android/android-ndk-r4/build/platforms/android-8/arch-arm

./configure --target-os=linux \
	--arch=arm \
	--enable-version3 \
	--enable-gpl \
	--enable-nonfree \
	--disable-stripping \
	--disable-ffmpeg \
	--disable-ffplay \
	--disable-ffserver \
	--disable-ffprobe \
	--disable-encoders \
	--disable-muxers \
	--disable-devices \
	--disable-protocols \
	--enable-protocol=file \
	--enable-avfilter \
	--disable-network \
	--disable-mpegaudio-hp \
	--disable-avdevice \
	--enable-cross-compile \
	--cc=$PREBUILT/bin/arm-eabi-gcc \
	--cross-prefix=$PREBUILT/bin/arm-eabi- \
	--nm=$PREBUILT/bin/arm-eabi-nm \
	--extra-cflags="-fPIC -DANDROID" \
	--disable-asm \
	--enable-neon \
	--enable-armv5te \
	--extra-ldflags="-Wl,-T,$PREBUILT/arm-eabi/lib/ldscripts/armelf.x -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtbegin.o $PREBUILT/lib/gcc/arm-eabi/4.4.0/crtend.o -lc -lm -ldl"

 

Then change mode config.sh and run

 

chmod +x config.sh
./config.sh

 

 

When config is completed, open config.h, find:

#define restrict restrict

 

replace by

#define restrict

 

 

Open libavutil/libm.h, remove static keyword in all function declaration.

Open Makefile in libavcodec, libavfilter, libavformat, libavutil, libpostproc and libswscale and remove two lines:

 

include $(SUBDIR)../subdir.mak
include $(SUBDIR)../config.mak

 

 

add new av.mk file in ffmpeg folder:

 

# LOCAL_PATH is one of libavutil, libavcodec, libavformat, or libswscale

#include $(LOCAL_PATH)/../config-$(TARGET_ARCH).mak
include $(LOCAL_PATH)/../config.mak

OBJS :=
OBJS-yes :=
MMX-OBJS-yes :=
include $(LOCAL_PATH)/Makefile

# collect objects
OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes)
OBJS += $(OBJS-yes)

FFNAME := lib$(NAME)
FFLIBS := $(foreach,NAME,$(FFLIBS),lib$(NAME))
FFCFLAGS  = -DHAVE_AV_CONFIG_H -Wno-sign-compare -Wno-switch -Wno-pointer-sign
FFCFLAGS += -DTARGET_CONFIG=\"config-$(TARGET_ARCH).h\"

ALL_S_FILES := $(wildcard $(LOCAL_PATH)/$(TARGET_ARCH)/*.S)
ALL_S_FILES := $(addprefix $(TARGET_ARCH)/, $(notdir $(ALL_S_FILES)))

ifneq ($(ALL_S_FILES),)
ALL_S_OBJS := $(patsubst %.S,%.o,$(ALL_S_FILES))
C_OBJS := $(filter-out $(ALL_S_OBJS),$(OBJS))
S_OBJS := $(filter $(ALL_S_OBJS),$(OBJS))
else
C_OBJS := $(OBJS)
S_OBJS :=
endif

C_FILES := $(patsubst %.o,%.c,$(C_OBJS))
S_FILES := $(patsubst %.o,%.S,$(S_OBJS))

FFFILES := $(sort $(S_FILES)) $(sort $(C_FILES))

 

 

Create Android.mk in jni folder:

include $(all-subdir-makefiles)

 

Create Android.mk in ffmpeg folder:

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_LIBRARIES := libavformat libavcodec libavutil libpostproc libswscale
LOCAL_MODULE := ffmpeg
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))

 

 

libavformat/Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES :=		\
	$(LOCAL_PATH)		\
	$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_CFLAGS += -include "string.h" -Dipv6mr_interface=ipv6mr_ifindex
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)

 

 

libavcodec/Android.mk

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES :=		\
	$(LOCAL_PATH)		\
	$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_LDLIBS := -lz
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)

 

 

libavfilter, libavutil, libpostproc and libswscale / Android.mk

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/../av.mk
LOCAL_SRC_FILES := $(FFFILES)
LOCAL_C_INCLUDES :=		\
	$(LOCAL_PATH)		\
	$(LOCAL_PATH)/..
LOCAL_CFLAGS += $(FFCFLAGS)
LOCAL_STATIC_LIBRARIES := $(FFLIBS)
LOCAL_MODULE := $(FFNAME)
include $(BUILD_STATIC_LIBRARY)

 

 

now, just go to jni folder and type ndk-build, then you will have ffmpeg.so

 

Source: http://abitno.me/compile-ffmpeg-android-ndk

 

Edit: if you need a reference:

http://rockplayer.freecoder.org/download/rockplayer_ffmpeg.zip

 

If you have some error messages about assembler, try to add this line to Android.mk LOCAL_ARM_MODE := arm 
저작자 표시 비영리 변경 금지
신고

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

libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15
FFmpeg for Android 설치 및 컴파일  (12) 2011.03.17
FFmpeg 기초 예제  (2) 2011.02.24

Posted by 류종택
갑자기 리눅스에서 FFmpeg을 사용 할 일이 생겨서 인터넷을 죄다 뒤져가며 작업을 했지만, 서로 버전이 다른 문제로 고생하다가 해결된 내용을 올립니다.  이것도 시간이 지나면 다시 버전 문제로 이어지겠지만, 혹시나 저와 같은 고생을 하실 분들을 위해서 수정한 소스를  올립니다.  같이 사용한 라이브러리를 올리고 싶지만, 용량이 너무 커서 포기했습니다.



저의 개발환경은 
  • Cygwin + MinGW + Eclipse 입니다.  참고로 Cygwin은 작업 할 때마다 부족한 것이 생겨서 시간을 잡아 먹길래, 모든 패키지를 설치하였습니다.  
  • FFmpeg은 git://git.ffmpeg.org/ffmpeg.git 을 통해서 다운받았습니다. (last change Wed, 23 Feb 2011)  FFmpeg은 Cygwin에서 설치하였습니다.
  • x264 역시 Cygwin에서 설치하였습니다.  이넘은 no accelerated colorspace 경고를 피하고 싶을 때 사용하면 된다고 합니다. (yuv420p to rgb24 변환 시)
  • SDL은 1.2 버전을 MinGW에서 설치하였습니다.  Cygwin에서 설치하는데 에러가 나기도 하고, 인터넷 검색을 통해서 찾은 방법으로 해결이 안되었기 때문입니다.  저는 추후 SDL을 제거하고 사용할 예정이라서 이렇게 해도 크게 문제가 없는 지는 확인해보지 않았습니다.  일단 컴파일 및 실행은 잘 됩니다.  우분트와 같이 아예 리눅스 OS에서 작업한다면 문제 없을 거라는 이야기도 있었으나, 아직 확인해보지 않았습니다.

우분투에서 설치해보니 모두 문제없이 쉽게 설치가됩니다.  참고하시기 바랍니다.



  • http://dranger.com/ffmpeg/ 에 있는 예제를 제가 받을 때 당시의 최신 버전의 FFmpeg에 맞춰서 조금 수정한 것 입니다.



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

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

libffmpeg.so for Android  (5) 2011.12.14
간단하고 명료한 FFMPEG 샘플 코드  (0) 2011.09.23
FFMpeg for Android #2  (28) 2011.04.19
FFMpeg for Android #1  (0) 2011.04.15
FFmpeg for Android 설치 및 컴파일  (12) 2011.03.17
FFmpeg 기초 예제  (2) 2011.02.24

Posted by 류종택


티스토리 툴바