`

利用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系统下编译就没问题,已可以播放,只是还需要增加控制效果,继续研究......

相关推荐

    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