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

标签: 利用 ffmpeg sdl | 发表时间:2012-12-24 18:59 | 作者:
出处:http://www.iteye.com
绝对原创:转载请注明出处

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项目播放你的视频吧.

下面是我播放视频的截图







已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [利用 ffmpeg sdl] 推荐:

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

- - ITeye博客
绝对原创:转载请注明出处. 1:从 http://www.libsdl.org/tmp/下载SDL for android 版本(我下载的是 SDL-1.3.tar.gz ). 2:从 https://github.com/havlenapetr/FFMpeg下载 havlenapetr 的ffmpeg for android版本.

ffmpeg轉檔

- - SSORC.twSSORC.tw
ffmpeg 是一個命令列工具,用來對視訊檔案轉換格式. -i = 來源影片 (後面的參數先不接的話可以查看來源影片的詳細資訊,可供想要轉成什麼品質的參考). -vcodec = video code (如果要保留原格式就用 -vcodec copy). -acoder = audio code  (如果要保留原格式就用 -vcodec copy).

ffmpeg裁剪合并视频

- - inJava
这里裁剪是指时间轴裁剪,不是空间裁剪. 比如说,你想把视频的从一分20秒开始,30秒的视频裁剪出来,保存成一个视频. ffmpeg提供简单的命令参数:. -ss 开始时间,如: 00:00:20,表示从20秒开始;. -t 时长,如: 00:00:10,表示截取10秒长的视频;. -i 输入,后面是空格,紧跟着就是输入视频文件;.

玩转 FFmpeg 的 7 个小技巧

- mk - OSMSG
FFmpeg堪称音频和视频应用程序的瑞士军刀,提供了丰富的选项和灵活性.很多时候用户为了看视频和听音乐都安装了ffmeg.更多关于ffmeg的详细介绍:here,可以通过ffmpeg -formats查看FFmpeg支持的视音频格式,左侧若是E表明可以编码,D表明可以解码. 本文着重介绍命令行下ffmeg的7个技巧:.

Nginx+ffmpeg搭建Apple Http Live Streaming笔记

- - 移动开发 - ITeye博客
起始Nginx来搭建HLS步骤非常少. 安装好Nginx,然后跑起来. 把切片好的视频和m3u8文件放到部署目录,直接访问就可以了. 网上国内国外的找了好多博客. 这里一定注意一点,不要用VLC播放器来测试,最好用iPad或者iPhone,再么用Safari 开发模式下模拟iPad、iPhone的浏览器模式播放.

CentOS 下通过 JavaCPP 调用 FFMPEG

- - CSDN博客综合推荐文章
   FFMPEG 是一个广泛用于媒体处理的库,在Java的世界里,处理视频的能力相当弱,于是有很大需求需要Java 调用 FFMPEG.   Java 调用C 的方式有很多,可以用最原始的JNI方式,也可以JNA方式,还可以是命令行.    采用命令行的方式比较简单,不过有很大局限性,尤其是涉及到 视频的处理和分析的时候,比如要取出某个packet,然后进行处理.

FFmpeg和一千多次bug修正

- - Solidot
Google透露,它在两年多时间内帮助开源跨平台多媒体编解码器库FFmpeg发现和修复了1000多个bug. Google称,它不仅仅重视自家产品的安全,它的安全团队和Google雇员还经常评估外部软件,并将结果报告给软件供应商或维护者. FFmpeg和它的衍生版本Libav被许多项目广泛使用,其中包括Google Chrome、MPlayer、VLC和xine,Google认为帮助FFmpeg发现bug将会让数以百万计的用户受益.

ffmpeg 视频转码例子集合

- - 开源软件 - ITeye博客
-muxrate 复用码率,设置之后整体码率模式才是CBR. -c:v mpeg2video MPEG2视频编码. -flags ildct+ilme 隔行扫描. -top 隔行扫描前场/后场优先模式 ,1是前场(顶场),0是后场(底场). -streamid 设置视频、音频PID,0视频,1音频.

如何用FFMpeg生成视频

- - 掘金 后端
FFMpeg读做“FF Mpeg”, “FF”指的是 “Fast Forward”,而“Mpeg”指的是 Moving Picture Experts Group(动态图像专家组). 根据官方介绍,FFMpeg是一个完整的、跨平台的音频和视频录制、转换和流媒体解决方案. 简单来说,只要涉及 音视频开发,基本绕不开这个工具.

Ubuntu安装FFmpeg编码出MP4文件的方法

- - 开源软件 - ITeye博客
Ubuntu安装FFmpeg编码出MP4文件的方法. 2011-09-06 16:42 佚名 linux公社 字号:. FFmpeg是Ubuntu下强大的视频、音频编解码工具. x264可以编码出高质量的h.264视频,iPad必须要h.264编码或mpeg-4编码的视频才能正常播放. Ubuntu官方源默认是不提供h.264编码的,这就需要我们手工编译安装FFmpeg的h.264支持,使之能够编码出MP4文件.