• 基于ffmpeg的Android播放器开源代码[转]


    转自: http://blog.sina.com.cn/s/blog_51396f890102e0as.html

    http://www.cnblogs.com/mcodec/articles/1780598.html



    基于ffmpeg的Android播放器开源代码
    Posted on 2011-07-23 11:40 mcodec 阅读(1964) 评论(68)  编辑 收藏
     
    本开源Android播放器基于ffmpeg开发,音视频在jni层直接输出,不使用java层的bmp和audiotrack输出,支持arm汇编加速,超级精简。

     

    本开源代码播放器使用的音视频解码代码来源于ffmpeg-0.6.3(http://www.ffmpeg.org),
    jni衔接代码和java层代码来源于havlenapetr(https://github.com/havlenapetr/FFMpeg)。

    移植ffmpeg到android的常规关键点网上有很多的帖子可以参考,也可以用文件夹比较工具比较一下,看看添加修改删除了那些文件。

    本开源代码的编译环境
    1: Android SDK 2.2版,
    2: NDK r4版,注意要导出NDK宏,

    3: IDE开发环境是 eclips 3.5 版

    4: libffplay.so是在Android 2.2版源码目录树中编译出来的,使用Ubuntu10.04和VMware7.1.1版,目前源码不公开
    5: libffmpeg.so编译步骤,cd /cygwin/c/ffplay, ./config_r4.sh, $NDK/ndk-build
    6: PC主机开发环境是windows xp。

     

    特别注意,此demo只能在 Android SDK 2.2版上使用,其他版本有修改源码,重新编译才行。

     

    此开源代码解决了几个特别关键点,达到实用水平。几个关键点如下:
    1:arm汇编代码编译支持,主要是在几个.mk文件中添加LOCAL_ARM_MODE := arm语句,
         在config_r4.sh文件中添加--arch=armv5te和--enable-asm 等开关。
    2:在ffmpeg config_r4.sh配置文件中关闭了一些不用的选项后,连接时总是报一些莫名其妙的连接错误,
        本开源代码给出终极解决方案(在/jni/jni/Android.mk文件中添加 LOCAL_LDLIBS += C:/ffplay/bin/ndk/local/armeabi/libavcodec.a等语句)。
    3:修改havlenapetr中的视频显示错误bug,经测试havlenapetr原始代码在模拟器设置为320x480时显示正确,在更大的分辨率下显示错误,
        本开源代码已修改好此bug,现在无论什么分辨率都可以正确显示。

     

    此开源代码其他注意事项:

    1:jni衔接代码相比havlenapetr精简了几个数量级,更方便网友们研习。
    2:此开源代码不包括play,pause,stop,seek和视音频同步等功能实现代码,这部分代码不开源。

    3:Android jni层直接输出音频示例,Android jni层直接输出视频示例,基于ffmpeg的Android播放器开源代码,三个工程使用相同的库,相同的方法和技巧,可相互参考。
     

     

    在moto defy me525上测试通过。

     

     欢迎下载研习: https://files.cnblogs.com/mcodec/ffplay1.7z

      apk包下载:   https://files.cnblogs.com/mcodec/ffplay1.apk.7z
    分类: Android
    标签: ffmpeg NDK android
  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/afly/p/2546074.html
Copyright © 2020-2023  润新知