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

利用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
分享到:
评论
6 楼 auyang410 2013-06-13  
楼主:直接下载你的附件android-project.tar.gz在cygwin下编译,会提示很多变量未声明呢?例如:src/render/opengles/SDL_render_gles.c:594行的GL_COLOR_ATTACHMENT0_OES提示未声明,在此.c文件中查找此变量,确实未先定义,是怎回事呢?还请帮忙解答下,感激不尽,谢谢!

注:在http://www.libsdl.org/tmp/目录下已找不到1.3这个版本了,楼主能否分享一个给我,谢谢!邮箱:14767504@qq.com
5 楼 a6217534 2013-04-06  
运行成功,非常感谢楼主
4 楼 makeyouown 2013-01-28  
楼主用的是ubuntu吗?
运行模拟器速度比windows快吗?
3 楼 helloandroid 2013-01-11  
zzxiaoqian 写道
楼主,我按照你的方式改的,编译好开始运行之后为什么是黑屏呢,找不到视频文件呢。。。

我找了下工程,还在,上传了上来,进入根目录,ndk-build就可以了
2 楼 helloandroid 2013-01-10  
要在
zzxiaoqian 写道
楼主,我按照你的方式改的,编译好开始运行之后为什么是黑屏呢,找不到视频文件呢。。。

你的sdcard根目录放视频文件没有,java代码的路径也要改正确
1 楼 zzxiaoqian 2013-01-09  
楼主,我按照你的方式改的,编译好开始运行之后为什么是黑屏呢,找不到视频文件呢。。。

相关推荐

    FFMPEG和SDL播放视频(Android)

    总的来说,通过FFmpeg和SDL在Android上播放视频涉及到多媒体处理、跨语言编程、图形渲染等多个技术领域,是一个综合性的工程挑战。开发者需要对这些基础知识有深入理解,并不断实践以优化性能和用户体验。通过本文的...

    ffmpeg +sdl 2.0 实现android 播放器 (eclipse 工具)

    在Android上,SDL 2.0 可以提供一个窗口系统、事件处理和硬件访问接口,帮助开发者构建多媒体应用,包括游戏和媒体播放器。 在“ffmpeg + sdl 2.0 实现android 播放器”这个项目中,你需要首先确保已经为Eclipse...

    Android版本的ffmpeg+SDL2.0的demo

    这篇内容将深入探讨如何在Android上构建一个基于FFmpeg和SDL2.0的视频播放器Demo,以及可能遇到的问题及其解决方案。 首先,让我们了解FFmpeg的核心功能。FFmpeg支持多种音视频编码格式,如H.264、AAC等,并且具备...

    ffmpeg+sdl基础入门资料(android)

    FFmpeg和SDL是两个在Android平台上进行音视频处理和图形渲染的重要库。FFmpeg是一个强大的开源工具套件,主要用于音频和视频的编码、解码、转换以及流处理。而Simple DirectMedia Layer (SDL) 是一个跨平台的多媒体...

    SDL2.0.8版本-跨平台的播放音视频工具

    SDL 2.0.8是SDL库的一个稳定版本,它支持多种操作系统,包括Windows、Linux、Mac OS X、Android和iOS等。这个版本带来了许多新特性、性能优化以及对旧有功能的修复,旨在提供更加稳定和高效的多媒体开发环境。 **二...

    sdl+ffmpeg视频播放器

    在IT领域,构建一个视频播放器是常见的任务之一,尤其当涉及到跨平台的解决方案时,SDL(Simple DirectMedia Layer)和FFmpeg库的结合成为了一个高效的选择。标题"SDL+ffmpeg视频播放器"指的是利用这两个强大的开源...

    Android 基于SDL、FFmpeg的android播放器源码-IT计算机-毕业设计.zip

    首先,SDL是一个跨平台的开发库,主要用来处理音频、视频和输入设备。它提供了底层硬件访问的能力,使得开发者可以编写跨平台的游戏和其他多媒体应用程序。在Android平台上,SDL通过JNI(Java Native Interface)与...

    基于SDL、FFmpeg的android播放器源码.zip

    FFmpeg是一个开源的多媒体处理框架,支持多种音视频编码解码器,包括常见的H.264、AAC等。它还包含了文件格式解析、网络流处理、视频过滤等功能,是实现视频播放器的关键组件。FFmpeg的libavcodec库负责解码,...

    ffmpeg SDL 测试音视屏的Demo

    将FFmpeg与SDL结合,可以利用FFmpeg的强大解码能力,配合SDL的图形和音频输出功能,创建一个简单的音视频播放器。`audio.c`可能是这个Demo中的音频部分源代码,它可能包含了如何使用SDL来播放由FFmpeg解码后的音频...

    ffmpeg+SDL of Linux

    另一方面,"SDL+ffmpeg.tar.gz"可能包含的是整合了FFmpeg和SDL的示例项目,或者是一些库文件和配置脚本,以便开发者在Linux环境下构建一个基于SDL的多媒体播放器。通过结合这两个库,开发者可以创建一个功能齐全、...

    安卓Android源码——基于SDL、FFmpeg的android播放器源码.rar

    在本资源中,我们主要关注的是一个针对安卓(Android)平台的播放器应用程序,它基于两个关键组件:Simple DirectMedia Layer (SDL) 和 FFmpeg。这两个组件在多媒体处理和播放领域具有广泛的应用,使得开发者能够...

    (FFMpeg)002_SDL或OpenGL在FFMpeg中的使用-01.rar )

    2. **FFmpeg与SDL的集成**:讲解如何配置和使用FFmpeg的SDL模块来创建一个视频播放器,展示如何在SDL窗口上显示视频流。 3. **OpenGL ES 2.0的基础知识**:介绍着色器语言GLSL,以及如何编写顶点和片段着色器来实现...

    安卓Android源码——基于SDL、FFmpeg的播放器源码.zip

    这个压缩包“安卓Android源码——基于SDL、FFmpeg的播放器源码.zip”包含了一个使用这两个库实现的视频播放器的源代码。以下是对这些知识点的详细说明: 1. **SDL (Simple DirectMedia Layer)**: SDL是一个跨平台的...

    Android高级应用源码-基于SDL、FFmpeg的android播放器源码.rar

    在这个项目中,我们将深入探讨一个基于SDL(Simple DirectMedia Layer)和FFmpeg的Android视频播放器源码,了解其工作原理和实现细节。 1. SDL简介: SDL是一个跨平台的开发库,主要用于处理图形、音频和输入设备...

    Android高级应用源码-基于SDL、FFmpeg的android播放器源码.zip

    本篇文章将围绕“Android高级应用源码-基于SDL、FFmpeg的android播放器源码.zip”这一主题,对源码进行深入剖析,探讨如何利用SDL(Simple DirectMedia Layer)和FFmpeg库构建一个高效的Android视频播放器。...

    安卓开发-基于SDL、FFmpeg的android播放器源码.zip.zip

    在Android平台上,开发一款视频播放器是一个常见的任务,而基于SDL(Simple DirectMedia Layer)和FFmpeg的解决方案因其高效和灵活性而备受青睐。本项目是一个详细的教程,将介绍如何使用这两种技术来创建一个完整的...

    Android应用源码之基于SDL、FFmpeg的android播放器源码.zip

    这个压缩包提供的是一个基于SDL(Simple DirectMedia Layer)和FFmpeg的Android播放器源码,这两个库是多媒体开发的重要工具,让我们深入探讨它们在Android应用中的运用。 **SDL(Simple DirectMedia Layer)** SDL...

    安卓Android源码——基于SDL、FFmpeg的android播放器源码.zip

    本项目中的“安卓Android源码——基于SDL、FFmpeg的android播放器源码.zip”是一个示例,它展示了如何利用这两个库在Android设备上实现音视频播放功能。 **SDL(Simple DirectMedia Layer)** 是一个跨平台的开发库...

    Android应用源码之基于SDL、FFmpeg的android播放器源码.rar

    该压缩包文件“Android应用源码之基于SDL、FFmpeg的android播放器源码.rar”包含了一个使用Android平台开发的视频播放器应用的源代码。这个播放器利用了两个关键的技术:Simple DirectMedia Layer (SDL) 和 FFmpeg,...

    FFMPEG_SDL

    在 Android 平台上,FFmpeg 和 SDL 的结合可以实现高效的音视频播放、编辑和流媒体功能。 配置 FFmpeg 与 SDL 的过程涉及到几个关键步骤: 1. **下载与安装 SDK 和 NDK**: 首先,你需要下载并安装 Android SDK ...

Global site tag (gtag.js) - Google Analytics