文档库 最新最全的文档下载
当前位置:文档库 › ffmpeg 编译安装系列问题终级手札

ffmpeg 编译安装系列问题终级手札

ffmpeg 编译安装系列问题终级手札
ffmpeg 编译安装系列问题终级手札

环境信息:

[root@centos1 ~]# cat /etc/redhat-release

CentOS release 6.10 (Final)

[root@centos1 ~]# uname -a

Linux centos1 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20:46:41 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

下载源码:

wget https://https://www.wendangku.net/doc/f3697188.html,/releases/ffmpeg-4.0.2.tar.bz2

编译:

./configure --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth

问题解决:

提示信息:

ERROR: gnutls not found using pkg-config

确认存在:/usr/local/lib64/pkgconfig

确认存在:/usr/lib64/pkgconfig

确认存在:/usr/lib/pkgconfig

PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig

GnuTLS 3.5.18

下载:https://https://www.wendangku.net/doc/f3697188.html,/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz

创建或解压tar.xz文件的方法

xz -d gnutls-3.5.19.tar.xz

tar xf gnutls-3.5.19.tar

cd gnutls-3.5.19

./configure --with-included-libtasn1 --with-included-unistring --without-p11-kit

make && make install

export

PKG_CONFIG_PATH=/usr/local/freetype/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pk gconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:/root/anaconda3/lib/pkgconfig

提示信息:

ERROR: aom >= 0.1.0 not found using pkg-config

linux下x264库ARM交叉编译

linux下x264库ARM交叉编译 一、准备工作 1、x264库源码下载地址:http://videolan/developers/x264l 作者目前的版本是x264-snapshot-20160511-2245 2、编译器arm-none-Linux-gnueabi-gcc 二、编译步骤 1、解压安装包 tar -xzvf last_x264.tar.bz2 cd x264-snapshot-20160511-2245 2、修改配置文件 ./configure --disbale-asm 注意:这里加了--disable-asm选项是因为arm-none-linux-gnuabi工具链是没有汇编器,所以禁止此选项 由于未指定--prefix,所以程序会默认安装/usr/local/bin目录下 3、修改config.mak 主要是将相关选项修改为arm-none-linux-gnuabi相关的配置,修改内容如下: SYS_ARCH=ARM CC=arm-none-linux-gnueabi-gcc CFLAGS=-Wno-maybe-uninitialized -Wshadow -O3 -ffast-math -Wall -I. -I$(SRCPATH) -std=gnu99 -D_GNU_SOURCE -fomit-frame-pointer -fno-tree-vectorize LD=arm-none-linux-gnueabi-gcc -o 4、make 5、make install 我的本意是想生成lib264.a静态库的,很奇怪,在x264-snapshot-20160511-2245目录下可以找到lib264.a和lib264.so及相关的头文件,但是没有在/usr/lib/local目录下找到libx264.a,但是有x264。 有点不太理解,而且很多过程基本上按照的网上提供的方式参考操作的,很纳闷哪里出

opencv移植到arm详细过程

Opencv-2.1.0 的arm移植 我的环境 Host:Ubuntu 14.04 Target:tq2410 with Linux 2.6.30.4 Crossing Compiler:arm-linux-gcc 4.3.2 一交叉编译链的安装 1# cd /usr/local 解压,即可得到arm-none-linux-gnueabi 目录 # tar xzvf arm-none-linux-gnueabi-4.3.2.tgz -C ./ 2 编辑/etc/bash.bashrc文件添加把编译器路径到环境变量PA TH中, 只要在这个文件中添加下面这2 个语句即可: PATH=/usr/local/arm/4.3.2/bin:$PA TH export PA TH 3 编辑完毕后使用source /etc/bash.bashrc 命令执行以下这个文件,让设置生效,之后再输入: # arm-none-linux-gnueabi-gcc -v 如果输出下面的信息则表面设置成功: Using built-in specs. Target: arm-none-linux-gnueabi Configured with:/scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu

如何用FFmpeg编写一个简单播放器详细步骤介绍

如何用FFmpeg编写一个简单播放器详细步骤介绍(转载) FFmpeg, 播放器, 编写 FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG 几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的,用C编写的,快速的并且能够解码几乎所有你能用到的格式,当然也包括编码多种格式。 唯一的问题是它的文档基本上是没有的。有一个单独的指导讲了它的基本原理另外还有一个使用doxygen生成的文档。这就是为什么当我决定研究 FFMPEG来弄清楚音视频应用程序是如何工作的过程中,我决定把这个过程用文档的形式记录并且发布出来作为初学指导的原因。 在FFMPEG工程中有一个示例的程序叫作ffplay。它是一个用C编写的利用ffmpeg来实现完整视频播放的简单播放器。这个指导将从原来Martin Bohme写的一个更新版本的指导开始(我借鉴了一些),基于Fabrice Bellard的ffplay,我将从那里开发一个可以使用的视频播放器。在每一个指导中,我将介绍一个或者两个新的思想并且讲解我们如何来实现它。每一个指导都会有一个C源文件,你可以下载,编译并沿着这条思路来自己做。源文件将向你展示一个真正的程序是如何运行,我们如何来调用所有的部件,也将告诉你在这个指导中技术实现的细节并不重要。当我们结束这个指导的时候,我们将有一个少于1000行代码的可以工作的视频播放器。 在写播放器的过程中,我们将使用SDL来输出音频和视频。SDL是一个优秀的跨平台的多媒体库,被用在MPEG播放、模拟器和很多视频游戏中。你将需要下载并安装SDL开发库到你的系统中,以便于编译这个指导中的程序。 这篇指导适用于具有相当编程背景的人。至少至少应该懂得C并且有队列和互斥量等概念。你应当了解基本的多媒体中的像波形一类的概念,但是你不必知道的太多,因为我将在这篇指导中介绍很多这样的概念。 更新:我修正了在指导7和8中的一些代码错误,也添加-lavutil参数。欢迎给我发邮件到dranger@https://www.wendangku.net/doc/f3697188.html,,讨论关于程序问题、疑问、注释、思路、特性等任何的问题 指导1:制作屏幕录像 源代码:tutorial01.c

视频解码中用到的ffmpeg交叉编译技巧

视频解码中用到的ffmpeg交叉编译技巧 一、简介 FFmpeg是一个集录制,转换,音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。 由于ffmpeg是基于linux开发的,源代码和windows下最常见的visual studio提供的c/c++编译器不兼容,因此不能直接使用msvc++编译,想要使用ffmpeg,需要在windows下配置一个类似Linux 的编译环境,并将ffmpeg编译为二进制库以后,再利用其进行进一步开发。 目前,windows下可直接使用的最新版本是由ffmpeg工程组,于2008年4月份发布的ffmpeg full sdk v3.2。该sdk尽可能的集成了更多的编解码器。 在应用中,使用该开发包存在2个缺陷,第一,该sdk编译基于ffmpeg r12790,编解码效率上,当前已经有了较大的提升;第二,该开发包包含了很多不需要的编解码器,需要尽可能减少开发包的体积及关联的库的个数。基于以上需求,需要自己编译出windows下可用动态库及静态库。 使用到的库文件有4个,libavcodec,libavformat,libavutil,libswscale,其中库 libavcodec,libavformat用于对媒体文件进行处理,如编解码;libavutil是一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等功能,libswscale主要用于图像格式转换及缩放。因效率的需要,我们选择了 ffmpeg-mt版本,同时通过配置编译尽量减少相关文件的体积。 网上类似编译过程说明较多,但实际编译过程中碰到一些问题,这些问题的解决花费了不少时间,本文档对这一过程进行记录,以便后续维护及学习。 二、编译环境搭建 windows下ffmpeg编译环境有多种可选择方案。这里我们使用MinGW+MSYS。 1.下载mingw+msys并安装 https://www.wendangku.net/doc/f3697188.html,/projects/mingw/ mingw,默认安装,在choose components时选择g++ compiler及MinGW Make Msys,默认安装, Do you wish to continue with the post install【yn】,y! Do you have mingw installed?【yn】,y Where is your mingw installation? C:/mingw

linux编译ffmpeg支持x264,x265

linux 编译ffmpeg 支持x264, x265 1. 前言 本教程涉及的ffmpeg, x264, x2652. 环境依赖 2.1 删除系统中安装的ffmpeg等库 [plain] view plain copy sudo apt-get --purge remove ffmpeg mplayer x264 x265 2.2 安装依赖库 [plain] view plain copy sudo apt-get update sudo apt-get -y --force-yes install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \ libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev 注: 服务器版本可忽略 libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev2.3 下载源代码 (1) ffmpeg [plain] view plain copy git clone git://https://www.wendangku.net/doc/f3697188.html,/ffmpeg.git ffmpeg

(2) x264[plain] view plain copy <pre name="code" class="plain"><pre name="code" class="plain">git clone git://https://www.wendangku.net/doc/f3697188.html,/x264.git (3) x265[plain] view plain copy hg clone https://https://www.wendangku.net/doc/f3697188.html,/multicoreware/x265 (4) yasm yasm 是x86平台的一个汇编优化器, 能够加快ffmpeg x264的编译 [plain] view plain copy wget https://www.wendangku.net/doc/f3697188.html,/projects/yasm/releases/yasm-1.3.0.ta r.gz tar xzvf yasm-1.3.0.tar.gz 3. 编译 3.1 配置编译输出目录 [plain] view plain copy export FFMPEG_PATH="YOUR_PATH" export PATH="$FFMPEG_PATH/bin:$PATH" 例如我输出目录为$HOME/ffmpeg_2.6.3/build_out 那么: [plain] view plain copy export

linphone语音版移植

Linphone在Linux X86下的编译 (一) Linphone依赖库准备: libogg-1.1.3.tar.gz(https://www.wendangku.net/doc/f3697188.html,/releases/ogg/libogg-1.1.3.tar.gz) speex-1.2beta3.tar.gz(依赖于libogg) libosip2-3.3.0.tar.gz(https://www.wendangku.net/doc/f3697188.html,/gnu/osip/libosip2-3.3.0.tar.gz) libeXosip2-3.3.0.tar.gz(https://www.wendangku.net/doc/f3697188.html,/Unix/NonGNU/exosip/libeXosip2-3.3.0.tar.gz) 依赖库打包下载地址:https://www.wendangku.net/doc/f3697188.html,/source/1743975 readline(optional) intltool-0.35.0.tar.gz(optional) ffmpeg(提供Linphone视频支持,如不需视频功能可不要) Linphone版本:linphone-3.2.0.tar.gz O S: Fedora9(VmWare下) (二) 在Linux的/home/cena/目录下新建目录linphone在其中建立sources、build、x86_target、arm_target ;注:这里cena为用户名,以下类同![root @BCD cena]# mkdir –p /home/cena/linphone/sources,/home/cena/linphone/build \ /home/cena/linphone/x86_target, /home/cena/linphone/arm_target 将相应的库与Linphone源码拷贝到sources目录下 |soureces --| libogg-1.1.3.tar.gz --| libosip2-3.3.0.tar.gz

linphone分析

目录 1 LINP HONE 的编译3 1.1 LINPHONE 在ARM 上的编译环境说明3 1.2 LINPHONE 依赖的库3 1.3 LINPHONE 编译脚本3 1.4 编译过程中的问题4 2 LINP HONE 代码分析4 2.1 LINPHONE 的初始化分析4 2.1.1 LINPHONEC 的初始化5 2.1.2 LINPHONE_CORE 的初始化5 2.1.3 ORTP 的初始化5 2.1.4 MEDIASTREAM2 的初始化6 2.1.5 EXOSIP 的初始化6 2.2 LINPHONE 的通话过程分析6 2.2.1 LINPHONE 的命令处理分析7 2.2.2 LINPHONE 的呼叫过程分析7 2.2.3 LINPHONE 的通话过程分析8 2.2.4 LINPHONE 的响应过程分析8 2.3 LINPHONE 中创建以及应用自定义过滤器9 2.3.1 过滤器的基本功能9 2.3.2 过滤器的通用接口10 2.3.3 自定义过滤器10 Linphone 的编译与代码分析 1 Linphone 的编译 1.1 Linphone 在arm 上的编译环境说明 Linphone 在arm 上编译的时候,时常会碰到一些问题,有时候想办法解决了相关的问题,但编译出来的Linphone 在板子上的运行仍然不稳定,或者不能通话。 如果条件允许的话,当碰到这些问题之后,可以换其它的工具链进行编译。我最初编译Linphone 的时候采用的是xscale270 板子自带的工具链,GCC3.4.3 以及uclibc。经过很痛苦 的一番折腾之后,所以的代码最终都编译通过,但是编译出来的linphonec 在板子上运行在通话开始之后总是崩溃。通过GDB 调试,发现是多线程的问题引起的,于是编译了一个线程结构相当的程序,但是测试没有发现问题。 最后,我改用GCC4.0.0 以及Glibc-2.3.5 基本上没有碰到什么问题,直接编译通过,并 且在板子上正常运行。 1.2 Linphone 依赖的库 除了上面所提到的Gcc,Glibc 以及系统的基本库外我主要编译了下面的程序包。 序号库名称说明 1 ReadLine 一个终端显示库,Linphone 会用到它时里面的事件循环机制来读取会话事件。 2 ffmpeg 音视频编解码库 3 Speex 专为通话过程设计的音频编码库 4 libtheora 视频压缩编码库 5 libfaac mpeg4 的音频编码器 6 libfaad2 AAC 音频解码器

ARM视频监控系统投标书

海思工作室 杭州汇文教育咨询有限公司 ——ARM监控系统投标书 海思工作室

目录 一、公司介绍及优势 (2) 1.1公司简介 (2) 1.2系统定位和意义 (2) 1.3公司在本项目中的优势 (3) 二、项目技术方案 (3) 2.1系统框架 (3) 2.2项目目标 (4) 2.3技术路线 (4) 2.3.1 构建基于S3C2440的Linux平台 (4) 2.3.2 视频监控终端软件的设计 (5) 2.3.3 视频监控服务器软件的设计 (6) 2.4使用与维护 (8) 2.4.1 维护简介 (8) 2.4.2 承诺与服务 (9) 三、项目管理及实施计划 (10) 3.1实施计划 (10) 3.2项目管理方案 (10) 3.2.1 整体管理 (10) 3.2.2 会议制度 (11) 3.2.3 临时工作调配 (12) 3.3质量控制管理 (12) 3.3.1 质量基本规划 (12) 3.3.2 质量保证 (12) 3.3.3 质量检查 (13) 3.3.4 风险控制 (13) 四、资源列表及项目报价 (13) 4.1所需资源列表 (13) 4.1.1 硬件资源 (13) 4.1.2 软件资源 (14) 4.1.3 人力资源 (14) 4.2项目报价 (14)

ARM嵌入式视频监控系统投标书首先,感谢杭州汇文教育咨询有限公司的关注,以及提供我们参与此次项目的机会,让我们工作室的学员们能够更好地积累实战经验,为踏上社会之路做充分的准备。冀望于此次接触机会及交流过程,能够成为中国计量学院和杭州汇文教育咨询有限公司打开双方合作之门的良好基石。 在调查和理解ARM视频监控系统的目标,以及对视频监控系统相关背景分析的基础上,我们撰写本文。旨在向杭州汇文教育咨询有限公司介绍我们对此项目的思路及相关建议,且展示海思工作室在此次项目上的计划与执行能力。 一、公司介绍及优势 1.1 公司简介 海思工作室(HSS)于2010年3月12日于成立于中国计量学院,本着“happy 快乐、strive奋斗、solidarity团结”的宗旨,致力于嵌入式软件项目开发和制作。目前公司有12名优秀成员。 虽然,本公司成立时间不长,但是公司成员从大一开始就已经学习掌握C语言知识,距今已近三年,因此底蕴深厚,对于C语言和嵌入式也是非常了解。部分成员在校期间曾获多次奖学金和各类奖项。我们竭尽所能把一切资源投在产品开发上,力求高效、质优、价廉、款佳。傲视同仁,迎合市场所需,满足客户所求。锐意进取,精益求精。面对任何机遇与挑战,我们正以饱满的热情,坚定不移的信心,在嵌入式的道路上阔步前进。未来的日子里,我们将继续以最实惠的价格,最优质的产品、最完善的服务,回报新老客户。以一流的人才,一流的管理,一流的的服务,立足中国,面向世界,与您携手并肩,共创美好的明天。 1.2 系统定位和意义 图像与视频监控系统是应用计算机与通讯技术实现对目标区域信息监控的系统,常用于交通,能源,公安,电信,军事等部门。随着计算机技术及网络技术的迅猛发展,视频监控系统的发展趋势必然是全面数字化、网络化,即采用嵌入式网络摄像机,利用网络进行传输,利用嵌入式监控设备体积小巧、性能稳定、

语音模块使用说明(tmp)

语音模块使用说明 一、软件包 gsm-1.0-pl12 GSM编解码库 alsa-lib-1.0.14 ALSA用户层控制函数库,内核语音模块需要支持ALSA alsa-utils-1.0.14 ALSA工具集,依赖于alsa-lib,该工具集提供amixer进行音量调节 libogg-1.1.4 通用开源语音编解码库 speex-1..2rc1 SPEEX开源语音编码协议库,编译linphone需要该库 live555-20100409 livemedia 多媒体支持库,vlc需要该库支持语音多播功能 ffmpeg-0.5 多媒体编码支持库,支持多种格式语音、视频编解码,本项目中使用到该库的a-law, u-law 语音编解码用于语音多播功能 libosip2-3.3.0 SIP协议库 libeXosip2-3.3.0 基于libosip2的SIP协议扩展库,支持更方便的SIP协议API,编译linphone需要该库 linphone-3.2.1 SIP软件电话,需要语音编解码库libogg,gsm,speex的支持,以及SIP协议库libosip2,libeXosip2的支持 vlc VLC流媒体软件,支持流媒体播放功能,需要语音编解码库ffmpeg,流媒体广播库live555的支持 net-control 网络控制功能软件包,提供与语音控制相关的网络接口

二、语音功能与软件包对照列表 点对点呼叫功能: 该功能使用linphone软件包提供的linphonec配合linphonecsh命令接口实现,默认情况下所有需要支持该功能的终端在启动时自动运行linphonec,需要呼叫时由网络模块调用linphonecsh命令接口控制linphonec完成相关功能。 点对多点广播功能: 该功能使用vlc软件包提供的vlc完成,默认情况下vlc不运行,在需要进行网络广播时,由网络控制模块调用vlc加入指定的多播组实现语音广播功能,广播完成后网络控制模块终止vlc的运行。 三、语音模块软件包的编译 前置条件: 安装交叉编译工具链 设置编译环境: 根据编译主机目录环境及交叉编译工具链的安装路径,设定sip-phone/目录下的env.sh.sample中的参数,设置完成后使用 $source ./env.sh.sample 导入编译设定参数 开始编译: 完成编译环境的设置后,运行自动编译脚本 $./make_world.sh 将自动编译生成根文件系统 四、编译环境各目录及文件说明 packages/目录中存放语音模块相关软件包的源代码 skeleton/目录中存放参考根文件系统的目录结构框架及基本配置文件 tools/目录中存放编译各软件包以及生成根文件系统的脚本 env.sh.example参考的编译环境设置文件

Opencv 交叉编译

目录 1所需要的库及其依赖关系3 2准备工作3 3各个平台配置4 3.1安装设置 (4) 3.1.1armv7-linux平台 (4) 3.1.2aarch64-linux平台 (4) 3.1.3armv7-android平台 (4) 3.1.4aarch64-android平台 (5) 3.2zlib安装 (5) 3.2.1armv7-linux平台 (5) 3.2.2aarch64-linux平台 (5) 3.2.3armv7-android平台 (6) 3.2.4aarch64-android平台 (6) 3.3libpng安装 (6) 3.3.1armv7-linux平台 (6) 3.3.2aarch64-linux平台 (7) 3.3.3armv7-android平台 (7) 3.3.4aarch64-android平台 (7) 3.4libjpeg安装 (8) 3.4.1armv7-linux平台 (8) 3.4.2aarch64-linux平台 (8) 3.4.3armv7-android平台 (8) 3.4.4aarch64-android平台 (9) 3.5yasm安装 (9) 3.5.1armv7-linux平台 (9)

3.5.2aarch64-linux平台 (9) 3.5.3armv7-android平台 (10) 3.5.4aarch64-android平台 (10) 3.6x264安装 (10) 3.6.1armv7-linux平台 (10) 3.6.2aarch64-linux平台 (11) 3.6.3armv7-android平台 (11) 3.6.4aarch64-android平台 (12) 3.7libv4l安装 (12) 3.7.1armv7-linux平台 (12) 3.8xvid安装 (12) 3.8.1armv7-linux平台 (12) 3.8.2aarch64-linux平台 (13) 3.8.3armv7-android平台 (13) 3.8.4aarch64-android平台 (13) 3.9ffmpeg安装 (13) 3.9.1armv7-linux平台 (13) 3.9.2aarch64-linux平台 (14) 3.9.3armv7-android平台 (15) 3.9.4aarch64-android平台 (15) 3.10opencv安装 (16) 3.10.1armv7-linux平台 (16) 3.10.2aarch64-linux平台 (16) 3.10.3armv7-android平台 (17) 3.10.4aarch64-android平台 (18)

windows下使用MinGW+msys编译ffmpeg

C++:windows下使用MinGW+msys编译ffmpeg FFmpeg是在Linux平台下开发的,但它同样也可以在其它操作系统环境中编译运行,本文介绍的就是在windowsXP下编译FFmpeg。 一准备环境: 1 下载mingw 和MSYS 去https://www.wendangku.net/doc/f3697188.html,/projects/mingw/ 下载 A 点击“DownLoad mingw-get-inst-...exe”; B 切换到页面:download? Check your browser's security bar, or try a direct link, or try another mirror. ; C 点击“direct link”下载类似:mingw-get-inst-20110802.exe 的文件。 提示:msys此处就不用下载了,mingw-get-inst-20110802.exe 中已经包含了msys1.0,后面安装的时候就可以看到该选项。 2 下载yasm ffmpeg编译里面的汇编代码需要yasm.exe 去官网:https://www.wendangku.net/doc/f3697188.html,/Download.html 下载 直接下载:Win32 .exe (for general use on 32-bit Windows) 文件名为:yasm-1.1.0-win32.exe 3 下载ffmpeg ffmpeg可以到https://www.wendangku.net/doc/f3697188.html,/releases/ 下载 本人选择的是最新版本:ffmpeg-0.8.5.tar.gz 文件名为:ffmpeg-0.8.5.tar.gz 4 下载SDL SDL下载可以到:https://www.wendangku.net/doc/f3697188.html,/download-1.2.php 选择:SDL-1.2.14.tar.gz - GPG signed 此版本需要自己编译,后面会解释为什么下载该版本,而不下载编译好的 SDL-devel-1.2.14-mingw32.tar.gz (Mingw32) 5 下载pthreadGC2.dll pthreadgc2.dll是功能强大的处理数字化影视作品编辑软件premiere6运行所需

Android 音视频编解码

Android 音视频编解码 ubuntu下ndk编译ffmpeg0.8.1 ffmpeg最新版本有些问题,比如jni/liblibavcodec/ac3enc_combined.c在最新的版本中已经没有了,但是又多了一个ac3enc_template.c的文件。虽然更新版本对于开发人员可以使用到更多的功能,但是如果这样乱改的话真的好无语,非常讨厌这种更新版本的不一致性,唉,只是抱怨一下 我使用的还是稍微老一点的版本ffmpeg 0.8.1的,至少老的版本能搜到更多的资料,也比较稳定。 ffmpeg版本:ffmpeg 0.8.1(最新版本是0.10,但是有很多问题) NDK版本:ndk r6(ndk r7编译的话会出现各种错误) 机器:32位 系统:ubuntu 注意:ndk r6+ffmpeg0.8.1+Android.mk+config.sh是经过测试过的,可以生成。如果你用的其他版本的 会出现各种问题 前提:需要你配置好NDK的环境,还是说说吧 一、下载并配置NDK环境变量(ubuntu下,windows下请使用cygwin) 1、到https://www.wendangku.net/doc/f3697188.html,/sdk/ndk/index.html下载NDK 这里,ndk r6版本的下载地址是: https://www.wendangku.net/doc/f3697188.html,/android/ndk/android-ndk-r6-linux-x86.tar.bz2 2、解压包到/home/loulijun/android/目录下 3、$vim ~/.bashrc 在里面添加如下信息 export NDK=/home/loulijun/android/android-ndk-r6107 export PATH=${PATH}:$NDK 4、$source ~/.bashrc 使其生效 注意:最新r7版本出现了一个关于awk问题,这个awk是64位的,所以如果你是32位机会遇到,具体解决办法见我的上篇博客: https://www.wendangku.net/doc/f3697188.html,/loulijun/archive/2012/02/26/2368787.html

ffmpeg、jrtp、SDL的交叉编译

ffmpeg、jrtp、SDL的交叉编译 https://www.wendangku.net/doc/f3697188.html,/weili8607/blog/item/b8c30a3c1ad80308baa16777.html 2009-05-26 10:33 因为需要,重新使用最新的交叉编译器arm-linux-gcc 4.3.2编译了所需要的SDL、ffmpeg、rtp库。其他交叉编译器过程类似,可能遇到不同的问题,视情况解决。 一、SDL的编译 SDL-1.2.13。 ./configure --prefix=/weili/SDL --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon make make install 看情况改变prefix目录和各种选项。make install之后便在prefix目录下生成所需的动态库和include头文件等等。 二、jrtp的编译 编译rtp库要先编译jthread库,然后在编译jrtp库。我使用的是jthread-1.2.1.tar.gz jrtplib-3.7.1.tar.gz。 1. 进入jthread-1. 2.1 ./configure -host=arm-linux -prefix=/weili/jthread/ make make install 这样jthread库就安装在了/weili/jthread/lib下面了 libjthread.so 2.进入jrtplib- 3.7.1 ./configure --host=arm-linux -prefix=/weili/jrtp/

Android自定义so文件调用ffmpeg.so详解

Android自定义so文件调用ffmpeg.so详解 在使用一下介绍内容时候,我认为所有读者都已具备一下水平: 1、会建立android项目工程 2、了解NDK编程入门知识 3、已成功编译或在网上已下载到ffmpeg.so动态库文件 我自己成功编译ffmpeg.so文件:使用vitamio提供的.sh脚本文件在linux环境下编译的,编译过程此处略去一万字… 1、在NDK的samples下建立android工程,此处我建立的是HelloFFmpeg,如下图: 2、编写本地函数声明,NDK的samples目录下有一个hello-jni的例子:

使用UltraEdit打开HelloJni.java文件: 将该文件的的一下内容拷贝到HelloFFmpeg工程的MainActivity.java的相应位置:(1)、拷贝onCreate中的内容:

(2)、拷贝本地函数声明: (3)、拷贝库文件加载: 打开拷贝完成的HelloFFmpeg工程下的MainActivity.java文件,如下:

新建立jni目录: 在jni目录下建立再建立jni目录

这里通过cmd进入第二个jni目录: 输入以下内容生成.h头文件:

此时会报错,因为咱们的本地函数和本地库的引用均在主类MainActivity中声明引用的,一般重新创建一个类进行声明引用的时候是不会出错的。但此时我给大家提供一个解决该错误的方法: 进入src目录中,使用下面的语句: 其中: -d:代表.h所在的目录,如果目录不存在,则自动创建一个 ../jni/jni:代表上级目录中的jni目录,.h文件将存放在此处

ffmpeg移植Android方法以及常见问题汇总

ffmpeg移植Android方法以及常见问题汇总: 1.在ffmpeg官网下载源码包,比如ffmpeg- 2.3。在ffmpeg目录下增加Android.mk 和av. mk config.sh三个文件。 2.config.sh用于配置ffmpeg环境脚本,可键入 #!/bin/sh PREBUILT=...android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/lin ux-x86 PLATFORM=...android-ndk-r7b/platforms/android-14/arch-arm export TMPDIR=.../ tmp ./configure --target-os=linux \ --arch=arm \ --enable-cross-compile \ --cc=$PREBUILT/bin/arm-linux-androideabi-gcc-4.4.3 \ --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \ --nm=$PREBUILT/bin/arm-linux-androideabi-nm \ --extra-cflags="-fPIC -DANDROID" \ --enable-static \ --disable-shared \ --disable-asm \ --disable-yasm \ --extra-ldflags="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_li nux_eabi.x -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib $PRE BUILT/lib/gcc/arm-linux-androideabi/4.4.3/crtbegin.o $PREBUILT/lib/gcc/arm-linu x-androideabi/4.4.3/crtend.o -lc -lm -ldl" PREBUILT、PLATFORM、TMPDIR是需要修改的,配置自己的ndk路径,通常这一步出错概率极高。TMPDIR路径一定要存在且可以访问。 常见错误: arm-linux-androideabi-gcc is unable to create an executable file,一般是tmp文件没有设置。 Unknown C compiler /toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin / arm-linux-androideabi-gcc,一般是NDK配置错误。 ./config.sh: line 8: --arch: command not found,./configure每一个参数后的转行符号\,注意后面不要有空格符,另外也有可能是字符格式错误,要转为unix,在vim里 :se t ff=unix保存退出。 --cc、--cross-prefix、--nm、--extra-ldflags注意配置路径要正确,否则脚本执行失败。

人脸识别操作步骤

人脸识别 1.OpenCV OpenCV(Open Source Computer Vision) 是英特尔公司制造的强大的视频处理库。目前,2.0 版本问世,利用 C 和C++ 语言创建,在 Linux,Windows,Mac OS X 等中运行。此外,OpenCV 是将重点放在实时图像处理上的库,通过函数实现了从初始视频处理到高水准的视频处理大量算法。 包含Binarization,Noise,Motion Detect,Edge Detect,Pattern Recognition,Hidden Markov Model 等,作为开放源码,只要少量符合,自身的算法也可以注册到库中。 在本次OpenCV 实习中,移植OpenCV-1.0.0 版本并创建HBE-EMPOSIII-SV210 设备的CIS Camera 视频的人脸识别程序。 实习环境 ?Host PC Linux : Ubuntu-8.04 交叉编译器: gcc 4.4.1 ?目标板(HBE-EMPOSIII-SV210) 引导加载程序: U-Boot 1.3.4 Linux 内核: linux-2.6.32-hanback 根文件系统: glibc-2.10.1,BusyBox v1.9.1 等 ?OpenCV 版本: 1.0.0 ?参考资料 OpenCV KOREA https://www.wendangku.net/doc/f3697188.html,/opencv.cafe 利用OpenCV 的计算机视觉实用编程 1.1OpenCV 移植 首先,为了OpenCV 1.0.0 移植下载源码。在OpenCV Release 网站上进行下载或者也可以复制使用提供CD 的源码。 最新OpenCV 被Release 的地方 https://www.wendangku.net/doc/f3697188.html,/projects/opencvlibrary/files/ 提供CD 中OpenCV 位置

ffmpeg开发指南(经典)

ffmpeg开发指南(使用 libavformat 和 libavcodec) Ffmpeg 中的Libavformat和 libavcodec库是访问大多数视频文件格式的一个很好的方法。不幸的是,在开发您自己的程序时,这套库基本上没有提供什么实际的文档可以用来作为参考(至少我没有找到任何文档),并且它的例程也并没有太多的帮助。 这种情况意味着,当我在最近某个项目中需要用到 libavformat/libavcodec 库时,需要作很多试验来搞清楚怎样使用它们。这里是我所学习的--希望我做的这些能够帮助一些人,以免他们重蹈我的覆辙,作同样的试验,遇到同样的错误。你还可以从这里下载一个demo程序。我将要公开的这部分代码需要0.4.8 版本的ffmpeg库中的 libavformat/libavcodec 的支持(我正在写最新版本)。如果您发现以后的版本与我写的程序不能兼容,请告知我。 在这个文档里,我仅仅涉及到如何从文件中读入视频流;音频流使用几乎同样的方法可以工作的很好,不过,我并没有实际使用过它们,所以,我没于办法提供任何示例代码。 或许您会觉得奇怪,为什么需要两个库文件 libavformat 和 libavcodec :许多视频文件格式(AVI就是一个最好的例子)实际上并没有明确指出应该使用哪种编码来解析音频和视频数据;它们只是定义了音频流和视频流(或者,有可能是多个音频视频流)如何被绑定在一个文件里面。这就是为什么有时候,当你打开了一个AVI文件时,你只能听到声音,却不能看到图象--因为你的系统没有安装合适的视频解码器。所以, libavformat 用来处理解析视频文件并将包含在其中的流分离出来,而libavcodec 则处理原始音频和视频流的解码。 1打开视频文件: 首先第一件事情--让我们来看看怎样打开一个视频文件并从中得到流。我们要做的第一件事情就是初始化libavformat/libavcodec: av_register_all(); 这一步注册库中含有的所有可用的文件格式和编码器,这样当打开一个文件时,它们才能够自动选择相应的文件格式和编码器。要注意你只需调用一次 av_register_all(),所以,尽可能的在你的初始代码中使用它。如果你愿意,你可以仅仅注册个人的文件格式和编码,不过,通常你不得不这么做却没有什么原因。 2下一步,打开文件: AVFormatContext *pFormatCtx; const char *filename="myvideo.mpg"; // 打开视频文件 if(av_open_input_file(&pFormatCtx, filename, NULL, 0, NULL)!=0) handle_error(); // 不能打开此文件

ffmpeg绝对编译指南

编译集成ffmpeg指南 ###环境配置(centos/msys2) yum install autoconf automake cmake freetype-devel openssl-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel ###参考地址 https://www.wendangku.net/doc/f3697188.html,/uid-23069658-id-4018842.html https://www.wendangku.net/doc/f3697188.html,/wanglx_/article/details/50786307 ###2.1 Yasm(git clone --depth 1 git://https://www.wendangku.net/doc/f3697188.html,/yasm/yasm.git) 汇编器,编译x264,ffmpeg会用到 autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" make make install make distclean ###libx264 (git clone --depth 1 git://https://www.wendangku.net/doc/f3697188.html,/x264) H264编码库,开启需要在FFmpeg的configure中指定:--enable-gpl 和--enable-libx264 ./configure --prefix="$HOME/ffmpeg_build" --enable-static --enable-shared make make install make distclean ###初始pkgconfig(必须) export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ###libx265(hg clone https://https://www.wendangku.net/doc/f3697188.html,/multicoreware/x265) H265编码库,开启需要在FFmpeg的configure中指定:--enable-gpl 和--enable-libx265 cd 到/x265/build/msys目录下执行对应.sh文件,稍后在cmake弹框中编辑安装目录 make make install ###libfdk_aac(git clone --depth 1 git://https://www.wendangku.net/doc/f3697188.html,/p/opencore-amr/fdk-aac) AAC编码库,开启需要在FFmpeg的configure中指定:--enable-libfdk-aac autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --enable-shared --enable-static SPEEXDSP_CFLAGS="$HOME/ffmpeg_build/include" SPEEXDSP_LIBS="$HOME/ffmpeg_build/lib" OGG_CFLAGS="$HOME/ffmpeg_build/include" OGG_LIBS="$HOME/ffmpeg_build/lib" make make install make distclean

相关文档