在上一篇文章 FFmpeg学习(四):FFmpeg API 介绍与通用 API 分析 中,我们简单的讲解了一下FFmpeg 的API基本概念,并分析了一下通用API,本文我们将分析 FFmpeg 在编解码时使用的API. 一.FFmpeg 解码 API 分析 1. avformat_open_input 分析 函数 avformat_open_input 会根据所提供的文件路径判断文件的格式,其实就是通过这一步来决定到底是使用哪个Demuxer. 举个例子:如果是flv,那么Demuxer就会使…
Windows下将ImageMagick移植到Android平台 原文链接  http://www.pedant.cn/2014/06/18/imagemagick-ported-android/ ImageMagick是一个用来创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.在移动平台做一些较复杂的图像处理时,难免会请出这尊大神.官方网站上也说明了它可以运行在多个平台之上,包括Android.不过官方的Releases版本只有Unix.Mac OS X.IOS.Windows…
一.版本迁移中的问题 1.游戏元素Sprite.Label.Action等等的创建函数名都改为create. 2.函数的回调callfunc_selectorcallfuncN_selectorcallfuncND_selectorcallfuncO_selectormenu_selector改为使用C++11的新特性std::bind和std::function配合使用:CC_CALLBACK_0CC_CALLBACK_1CC_CALLBACK_2CC_CALLBACK_3 MenuItemL…
很多J2ME项目如何移植到Android平台呢?Java虽然号称是跨平台应用但是目前的移植问题还是比较严重的,不知道未来Sun推出JavaFx或F3时会出现什么问题,如何从J2ME移植到Android平台上呢?下面Android手机网做简单的分析. 1.图形显示 J2ME平台虚拟机为Sun Midlet和Android Dalvik在显示方面有极大的不同,这给游戏带来了极大的困难,很多过去使用的精灵类等等在Android中不存在,同时Android中又出现了很多新的东西,在显示方面会有很大的出入…
首先需要去FFmpeg的官网http://www.ffmpeg.org/去下载FFmpeg的源码,目前的版本号为FFmpeg3.3(Hilbert). 下载的文件为压缩包,解压后得到ffmpeg-3.3目录. 修改ffmpeg-3.3的configure文件: # 原来的配置内容: SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'…
首先需要去FFmpeg的官网http://www.ffmpeg.org/去下载FFmpeg的源码,目前的版本号为FFmpeg3.3(Hilbert). 下载的文件为压缩包,解压后得到ffmpeg-3.3目录. 修改ffmpeg-3.3的configure文件: # 原来的配置内容: SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'…
一.FFmpeg 播放视频的基本流程整理 播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Frame -> 显示Frame. Container:在音视频中的容器,一般指的是一种特定的文件格式(如 AVI/QT ),里面指明了所包含的音视频,字幕等相关信息. Stream:媒体流,指时间轴上的一段连续数据,如一段声音.视频或字幕数据. Packet:Stream中的Raw数据,包含了可以被解码成方…
一.FFmpeg 介绍 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库. 二.FFmpeg 组成 libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能: libavcodec:用于各种类型声音/图像编解码: libavutil:包含一些公共的工具函数: libswscale:用于…
ffmpeg用来对音视频进行处理,那么在使用ffmpeg前就需要ffmpeg有一个大概的了解,这里使用雷神的ppt素材进行整理,以便于复习 音视频基础知识 视频播放器的原理 播放视频的流程大致如下: 常用播放器 跨平台 VLC,Mplayer,ffplay等 Windows平台 完美解码,终极解码,暴风影音 信息查看工具 综合信息查看:MediaInfo 二进制信息查看:UltraEdit 单项详细信息分析 封装格式:Elecard Format Analyzer 视频编码数据:Elecard…
接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的Java代码又需要重新编写对应的功能,这样开发效率会受到极大的影响,所以这里我们使用另外一种方式来移植,使Unity和Android方面的修改可以互不影响. Unity3D项目 我们新建一个Unity3D的项目,并为其添加两个按钮和一个文本框,同时将下面的脚本挂载到摄像机中即可: using Unit…
首先,我们需要一台已经配置好可以开发Android应用的计算机,这里我使用的是Windows系统+Eclipse+ADT的开发环境,当然也可以使用Android Studio或者使用Mac系统都可以. 导出到Eclipse 设置U3D工程 首先需要设置游戏的平台为Android: 在Player Settings...面板中记得设定一下: 这个名称需要设定. 导出Android工程 设定好Android的配置之后,我们需要对Android工程进行导出,我们仍然点击Builder Setting,…
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73253044 前言 安防互联网化的需求已经越来越强烈了,传统的安防摄像机都想进行一些互联网化的直播(网页或者微信直播),也就是RTMP和HLS直播,那么在技术实现上就是各种SDK/RTSP流拉取,再转成RTMP推流到RTMP服务器进行RTMP直播和HLS切片了,今天我们要讲的就是比较通用的RTSP拉流,然后再转推流RTMP的功能实现,在Git…
编译环境: windows xp Cygwin 1.1.3.1 NDK r9 1.提示各种command not found 比如 ./config.sh: line 6: $'--arch=arm\r': command not found 可以看到arm后面有个'\r'  unix文件换行和win下面不一样   需要用ultraedit 文件-转换-dos转unix 2.临时目录问题,各种提示.....temp\No such file or directory 更改ffmpeg自带的con…
一.FFmpeg 相关术语 1. 容器/文件(Container/File):即特定格式的多媒体文件,比如MP4,flv,mov等. 2. 媒体流(Stream):表示在时间轴上的一段连续的数据,比如一段声音数据.一段视频数据或者一段字母数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器. 3. 数据帧/数据包(Frame/Packet):通常一个媒体流是由大量的数据帧组成的,对于压缩数据,帧对应着编解码器的最小处理单元,分属于不同媒体流的数据帧交错存储与容器之中. 4. 编…
一.libavformat介绍 libavformat的主要组成与层次调用关系如下图: AVFromatContext是API层直接接触到的结构体,它会进行格式的封装和解封装,它的数据部分由底层提供,底层使用了AVIOContext,这个AVIOContext实际上就是为普通的I/O增加了一层Buffer缓冲区,再往底层就是URLContext,也就是达到了协议层,协议层的实现由很多,如rtmp.http.hls.file等,这个就是libavformat的内部封装结构了. 二.libavcod…
须要用到工具(依照顺序): 1.JDK 2.NDK 3.ANT 4.Adt-bundle-windows 将JDK文件夹下的bin文件夹路径加入到系统环境变量中. 解压NDK 解压Adt-bundle-windows 执行当中的eclipse.exe file->import 然后browse,找到project所在的文件夹 然后finish.. 会看到提示有错误,可是不要怕. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3hxX3d1eGluZ3…
第一步:安装配置安卓SDK,下载NDK并解压,下载cygwin并安装 第二步:导入platform文件夹下,android文件夹下java文件夹 在eclispe的windows--pereference中,配置C++的environment 将PATH设置为cygwin的安装路径 将NDK--ROOT设置为NDK安装路径 第三步:配置Android.mk文件,makefile非常容易出错,借一个空格也就错了 LOCAL_SRC_FILES := hellocpp/main.cpp \ ../.…
1.所需环境支持:Android SDK.NDK.Eclipse.Cygwin.(本人所用系统WIN7-64位) (1)Cygwin的下载安装: Cygwin是Windows下的Linux模拟环境,用于运行Android所需的编译工具. 下载页面http://cygwin.com/install.html,本人下载的是(http://cygwin.com/setup-x86_64.exe) 运行下载后的setup.exe->选择下载源(install from internet)->选择安装目…
本系列是阅读<Pro Android4>的读书笔记,也包括网络阅读资料的整理,以及个人心得. 由于智能手机引入AP(应用处理器),Android在某种意义上是个人计算机,具有桌面计算机的完整架构,采用Linux-based OS stack来管理设备.内存和进程.Android的Java库覆盖电话,视频.连接.图形.UI编程等多个方面.Android SDK支持几乎全部的J2SE,除去UI的AWT和Swing部分,而用Android UI framework取而代之. Android针对手持设…
摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: ubuntu-12.04.5 android-ndk64-r10-linux-x86_64.tar.tar ffmpeg-2.7.2_tmp.tar.bz2 adt-bundle-windows-x86_64-20131030.zip 第一步:源代码下载 到FFmpeg官方网站http://www.ffmpeg.org/上去下载源代码,这里下载的源代码是最权威的.进入官网之后,选择”Dow…
将Unity3D游戏移植到Android平台是一件很容易的事情,只需要在File->Build Settings中选择Android平台,然后点击Switch Platform并Build出apk即可.通常,我们的工作不仅限于此,一般还需要给手机游戏加入计费.广告等功能.这些功能一般没有提供Unity3D插件,我们需要将游戏导出为Android工程,然后添加这些功能:或者,我们根据这些计费sdk来做自己想要的Unity3D插件,然后直接在Unity3D中使用. 1.从Unity3D到Androi…
近期将PC机上的行人检測的C++项目移植到Android平台遇到非常多的问题.因此,记录一些重点. 1. 最好能够參照Opencv sample 里面的mix-processing. 2. 数据结构的问题:尤其是 将从java得到的Mat数据转化为IplImage*. 这个会有非常多的问题.网上大概的方法是: //第一种转换方式 error IplImage *imgIpl1 = cvCreateImage(cvSize(w, h), 8, 3); Mat temp = preMat.clone…
前人栽树,后人乘凉,这句话有点过了,只是想感谢一下为了移植cocos2d-x到android的"大婶"们所做出的贡献.          首先android环境需要配置好,需要的文件如下:                     貌似ant没用上,我是直接用eclipse打开项目编译生成apk的.          java的环境变量怎么配置,网上已经多的用锹搓,这里就不阐述了.          打开eclipse,配置sdk,ndk,怎么更新sdk也不阐述了,很蛋疼的事情.    …
当我写这篇文章的时候我是怀着激动的心情的,因为我又解决了一个技术问题.你可能对题目还一知半解,这是什么意思,我之所以要写这篇文章就是要解决当我们在cocos2dx中使用了第三方库的时候,移植到android平台的过程中是会报错的问题,典型的例子就是我在上几篇博客中使用了编码转换的库iconv,在我移植到android平台测试的时候就出现了错误,各种各样的错误,网上搜了一下,但是网上的方法感觉都很老了,有的也没说明白,今天通过摸索马上分享给大家,让大家也少走歪路. 如果你还不会移植android平…
Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题.在Android平台中文乱码并不是一个问题,或者说在Android平台是不应该出现中文乱码的.这个问题究其根本是因为我们在Windows下采用开发Android应用导致的问题.默认情况下Windows中文环境是采用GBK编码,源程序文件HelloWorldScene.cpp编码默认也是GBK,如果源程序代码中如果有中文输入,例…
NDK开发模块的时候,如果涉及到网络请求,类似json数据传递的时候,有现成的第三方json库可以移植,后台C++开发中使用的比较多的是jsoncpp,今天记录一下jsoncpp移植到Android平台的过程 cmake编译 此方法并非标准的NDK项目 采用的是cmake交叉编译生成 jsoncpp地址 https://github.com/open-source-parsers/jsoncpp 先将源码克隆下来 新建文件夹libjson 将jsoncpp源码中的include文件夹复制到该目录…
今天没事又尝试了下3.0正式版关于Android平台的移植,把新建的项目移植了下.过程仅用了十分钟左右,什么概念?! 好吧,事实上我想说,这个版本号真的移植非常轻松啊,只是还没加上其它东西,只是就眼下来说,真的非常方便.心理算是平衡些了,由于写代码总是想着要把CC去掉... 话不多说,来看看怎么移植到Android平台吧.体会下什么叫方便. 首先须要Android的NDK,SDK,Eclipse啥啥的就不提了.这些有过移植经验的就不多说了,关于NDK,最好去官网下载最新的版本号. 假设有自己新建…
转自:http://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2dx开发时,已经详细介绍了如何将win32的c++代码移植到Android平台,当再次回顾时,发现一些基础的东西理解并不是很彻底,今天使用Android NDK提供的一个例子做一个简单的移植.在进行该demo前,请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建Android项目 创建一个Android项目 ,…
准备工作:1.我只是将cocos2d-x移植到android平台,所以默认为大家已经将android平台搭建完成了(eclipse和android SDK已经配置好,java环境搭建好) 2.下载android DNK,我使用的是android-ndk-r9d-windows-x86_64,我的本是64位系统 3.cocos2d-x和android ndk解压到自己指定的路径 下载好需要的软件就可以尝试移植到android平台了,我们以Cocos2d-x目录中自带的项目工程作为例子,大致步骤如下…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangbin_jxust/article/details/37389383 之前在进行cocos2dx开发时.已经具体介绍了怎样将win32的c++代码移植到Android平台.当再次回想时,发现一些基础的东西理解并非非常彻底.今天使用Android NDK提供的一个样例做一个简单的移植. 在进行该demo前.请确认你已经配置了Android开发环境和安装了最新的Android NDK. 1.创建…