热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu10.10下(交叉编译)编译安装libvpx和ffmpeg——webm的编译安装

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

首先在google的网站下载ffmpeg-0.6.1_libvpx-v0.9.5-135-gc28b10a.diff.gz和libvpx-v0.9.5.tar.bz2

http://code.google.com/p/webm/downloads/list

在下载ffmpeg-0.6.1

把补丁文件mv到ffmpeg-0.6.1目录下

打补丁

patch -p1

首先编译安装libvpx

配置文件为 ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp8

交叉编译配置

 ./configure --target=armv6-linux-gcc --prefix=/usr/local/libvpx-arm --enable-shared --enable-vp8

提示错误yasm

解决方法:sudo apt-get install yasm

make

sudo make install

然后编译安装ffmpeg

配置文件为

./configure --prefix=/usr/local/ffmpeg-vp8-x86 --enable-libvpx --enable-shared --cc=gcc --extra-cflags=-I/usr/local/libvpx/include --extra-ldflags=-L/usr/local/libvpx/lib

提示错误

libavcodec/libvpxenc.c:111: error: ‘VP8E_SET_CQ_LEVEL’ undeclared here (not in a function)
libavcodec/libvpxenc.c:111: error: array index in initializer not of integer type
libavcodec/libvpxenc.c:111: error: (near initialization for ‘ctlidstr’)
libavcodec/libvpxenc.c: In function ‘vp8_init’:
libavcodec/libvpxenc.c:284: error: ‘VPX_CQ’ undeclared (first use in this function)
libavcodec/libvpxenc.c:284: error: (Each undeclared identifier is reported only once
libavcodec/libvpxenc.c:284: error: for each function it appears in.)
libavcodec/libvpxenc.c: At top level:
libavcodec/libvpxenc.c:567: warning: initialization discards qualifiers from pointer target type

解决方法 打开/usr/local/libvpx/include/vp8cx.h

 enum vp8e_enc_control_id
{
VP8E_UPD_ENTROPY = 5, /**VP8E_UPD_REFERENCE, /**VP8E_USE_REFERENCE, /**VP8E_SET_ROI_MAP, /**VP8E_SET_ACTIVEMAP, /**VP8E_SET_SCALEMODE = 11, /**VP8E_SET_CPUUSED = 13, /**VP8E_SET_ENABLEAUTOALTREF, /**VP8E_SET_NOISE_SENSITIVITY, /**VP8E_SET_SHARPNESS, /**VP8E_SET_STATIC_THRESHOLD, /**VP8E_SET_TOKEN_PARTITIONS, /**VP8E_GET_LAST_QUANTIZER, /**encoder for the last frame using the internal
scale */
VP8E_GET_LAST_QUANTIZER_64, /**encoder for the last frame, using the 0..63
scale as used by the rc_*_quantizer config
parameters */
VP8E_SET_ARNR_MAXFRAMES, /**VP8E_SET_ARNR_STRENGTH , /**VP8E_SET_ARNR_TYPE , /**VP8E_SET_CQ_LEVEL ,
} ;

VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_ENTROPY, int)
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_UPD_REFERENCE, int)
VPX_CTRL_USE_TYPE_DEPRECATED(VP8E_USE_REFERENCE, int)

VPX_CTRL_USE_TYPE(VP8E_SET_ROI_MAP, vpx_roi_map_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_ACTIVEMAP, vpx_active_map_t *)
VPX_CTRL_USE_TYPE(VP8E_SET_SCALEMODE, vpx_scaling_mode_t *)

VPX_CTRL_USE_TYPE(VP8E_SET_CPUUSED, int)
VPX_CTRL_USE_TYPE(VP8E_SET_ENABLEAUTOALTREF, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_SHARPNESS, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_STATIC_THRESHOLD, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_TOKEN_PARTITIONS, vp8e_token_partitions)

VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_MAXFRAMES, unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_STRENGTH , unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_ARNR_TYPE , unsigned int)
VPX_CTRL_USE_TYPE(VP8E_SET_CQ_LEVEL , unsigned int)

VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *)
VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *)

的代码加两条红色部分

编辑 libavcodec/libvpxenc.c:284

将 VPX_CQ 改成VPX_VBR


推荐阅读
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
author-avatar
手机用户2502927203
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有