`
helloandroid
  • 浏览: 272251 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
107f8db3-b009-3b79-938a-dafddb49ea79
Android腾讯微博客户...
浏览量:94459
社区版块
存档分类
最新评论

利用ffmpeg和SDL实现一个跨android版本的音视频播放器

阅读更多
1:从http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz )
2:从https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本。
3:把你下载的SDL for android版本解压到本地目录,解压到本地.
4:解压后的根目录下面有一个android-project工程,在jni目录下面新建一个SDL目录,把根目录下面的src目录,include目录和Android.mk拷贝到新建里的SDL目录下面
5:把ffmpeg for android 工程下jni目录的libffmpeg拷贝到android-project的jni目录下
6:http://dranger.com/ffmpeg/下载tutorial08代码并把文件放在jni的src目录下
8:编写tutorial08的mk文件
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

SDL_PATH := ../SDL

LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SDL_PATH)/include \
		    $(LOCAL_PATH)/../libffmpeg \

# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
	tutorial08.c

LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES
LOCAL_SHARED_LIBRARIES := SDL
LOCAL_STATIC_LIBRARIES := libavformat libavcodec libavutil libpostproc libswscale

LOCAL_LDLIBS := -ldl -lGLESv2 -llog

include $(BUILD_SHARED_LIBRARY)

9:SDLActivity中load so
 // Load the .so
    static {
        System.loadLibrary("SDL");
        //System.loadLibrary("SDL_image");
        //System.loadLibrary("SDL_mixer");
        //System.loadLibrary("SDL_ttf");
        System.loadLibrary("main");
    }

10:改写nativeInit方法
  // Runs SDL_main()
    	String avPath = Environment.getExternalStorageDirectory()+File.separator+"DancingQueen.mp4";
        SDLActivity.nativeInit(avPath);

        //Log.v("SDL", "SDL thread terminated");


11:进入到android-project项目根目录,ndk-build 耐心等待一会就可以编译出两个库libSDL.so和libmain.so



运行你的android-project项目播放你的视频吧.

下面是我播放视频的截图





  • 大小: 256.1 KB
  • 大小: 396.1 KB
4
0
分享到:
评论
26 楼 bn922 2016-12-22  
wxw1111wang 写道
楼主黑屏怎么解决啊?急求


你看看是不是没有读sd卡的权限
25 楼 wxw1111wang 2016-05-03  
楼主黑屏怎么解决啊?急求
24 楼 lwbao28 2015-07-07  
为什么下载下来解压后没有后缀名,都不知道怎么打开。
23 楼 yasinEmb 2014-12-23  
Elieend 写道
zzxiaoqian 写道
楼主,我按照你的方式改的,编译好开始运行之后为什么是黑屏呢,找不到视频文件呢。。。

你黑屏后来解决了吗?我也遇到这个问题


各位黑黑屏的问题解决了吗?我也遇到了这个问题,还没解,是不是视频文件的问题呢?
22 楼 u013266076 2014-11-06  
下载了 ,不是项目 。。楼主是否 重新上传?
21 楼 xiaoyuecsdn 2014-11-04  
楼主 这个 可以改进 播放 rtmp吗
20 楼 xiaoyuecsdn 2014-11-04  
这个 如何播放 rtmp 格式,求交流 大神
19 楼 weacee 2014-09-27  
jni/src/tutorial08.c:18:42: fatal error: libffmpeg/libavcodec/avcodec.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/main/tutorial08.o] Error 1
找不到头文件,但是明明有啊???!
18 楼 wdwhai198532 2014-09-02  
11111111111111111111
17 楼 nageshui1 2014-08-27  
竖屏播放的窗口有问题:画面不能完全显示并且有两个画面;横屏播放没有问题这个怎么解决啊?
16 楼 wang_shaner 2014-08-17  
也没有调用tutorial08的位置啊
15 楼 wang_shaner 2014-08-17  
String avPath = Environment.getExternalStorageDirectory()+File.separator+"DancingQueen.mp4"; 
      SDLActivity.nativeInit(avPath);  这个直接加了个参数?
14 楼 zhoujie277 2014-06-05  
您好,楼主。我编译运行成功了,但是好像不能播放在线http视频噢···请问有什么方向可以解决么,播放http在线视频后,还要解决rtmp协议的在线flv··  请楼主明示啊···
13 楼 Elieend 2013-12-04  
zzxiaoqian 写道
楼主,我按照你的方式改的,编译好开始运行之后为什么是黑屏呢,找不到视频文件呢。。。

你黑屏后来解决了吗?我也遇到这个问题
12 楼 zjf1222 2013-12-03  
想播放h.264文件怎么改?可以交流Q:1049568282
11 楼 半飞蝶 2013-11-30  
这个只是SDL的使用,还没加入ffmpeg吧
10 楼 bulreed 2013-09-04  
楼主,这个应该是软解的吧?如果硬解需要如何设置?谢谢
9 楼 fangext520 2013-08-26  
露珠。。为啥demo里面没有调用C文件呢。。。难道是JNI的其他用法?菜鸟。。求指导
8 楼 panlongbao_918 2013-06-14  
make: *** No rule to make target `jni/src/YourSourceHere.c', needed by `obj/local/armeabi/objs/main/YourSourceHere.o'.  Stop.

楼主,我在window下按照你的步骤,在eclipse中使用ndk编译,出现了以上警告,这是为什么啊,希望得到提示,谢谢
7 楼 auyang410 2013-06-13  
编译跟环境有关,在纯linux系统下编译就没问题,已可以播放,只是还需要增加控制效果,继续研究......

相关推荐

Global site tag (gtag.js) - Google Analytics