记录一下折腾webp 的过程
最近有客户想要处理webp 的动图,情况当然是我们并不能处理webp 格式的图片。这事就交给了我来折腾,一开始想着用瑞士军刀ffmpeg。结果是折腾了差不多一天,前前后后编译了几十次ffmpeg 源码后才发现,并不支持decode 带动画的webp....坑爹啊。 不过也算熟悉了一下源码编译的过程,大体上就是:
./configure
make
make install
在运行configure 的时候通常要根据需要带上一些参数,比如在折腾ffmpeg 的时候,因为需要enable webp 的一些选项而这些选项又有依赖的库文件
./configure --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
这里的--extra-cflags 是告诉编译器去哪里搜索头文件,--extra-ldflags 是告诉编译器去哪里找需要链接的库文件,believe me 这两参数很重要...
ffmpeg 没戏以后我又找到了谷歌自家的libwebp, 下载源码编译过程大同小异,值得一提的是如果想要编译出的工具支持多种输入输出格式和其他附加功能的话,必须要求系统上安装相应的库,比如如果想让dwep 工具把webp 图片转成jpg 和png 格式的话就要求机器上装了libpng。我刚好就有这种需求,于是再一次下载源码编译安装,一切看似顺利。但是在编译libwebp 本身的时候却发现dwep 的png 支持并没有开启,查看configure 打印的日志发现他在调用libpng-config 脚本的时候出错:
/bin/sh^M: bad interpreter:
一脸瞢逼的我去网上搜了一下,发现原因是此文件是在dos 模式下编辑的,所以换行是\r\n,所以在linux 环境下导致无法解析,还好解决方法很简单,只用vim 打开这个文件输入命令:
:set ff=unix
保存后重新运行configure,发现png 支持已经打开了,终于可以愉快的make 了。
记录一下折腾webp 的过程的更多相关文章
- 【Android实战】记录自学自己定义GifView过程,能同一时候支持gif和其它图片!【有用篇】
之前写了一篇博客.<[Android实战]记录自学自己定义GifView过程,具体解释属性那些事! [学习篇]> 关于自己定义GifView的,具体解说了学习过程及遇到的一些类的解释,然后 ...
- 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)
记录sqoop同步失败问题解决过程,过程真的是很崎岖.事发原因:最近突然出现sqoop export to mysql时频繁出错.看了下日志是卡在某条数据过不去了,看异常.看sqoop生成的mr并未发 ...
- step_by_step_记录deepin下curl安装过程
记录 deepin 下 curl 安装过程 wget https://curl.haxx.se/download/curl-7.55.1.tar.gz .tar.gz cd curl-/ ./conf ...
- 关于PHP批量图片格式转换的问题--本文转成webp, 其他过程格式一样
最近要把项目中的图片全部生成webp格式, 过程整理一下, (直接存在本地,或者图片链接存在数据库都可以看看) 首先,肯定是批量处理, 一个php处理不了这么多, 会爆内存的, 个人建议用aja ...
- 记录手动签名APK的过程
记录手动签名APK的过程 前两天更新了华为平台上的APK,被驳回,原因是新APK签名和老的APK不一致,老用户安装会失败,用命令行安装会报如下的错误: harlanc@harlancdeMacBook ...
- 记录一下安装hexo的过程
记录一下安装hexo的过程 首先你的电脑需要安装node.js和Git 安装好Git之后需要配置本机与Github之间的ssh方便更新同步博客到Github上,在一个地方新建一个文件夹作为我们博客的根 ...
- 记录ubuntu16.04版本安装过程中遇到的问题
记录ubuntu16.04版本安装和使用过程中遇到的些问题,方便以后查看,主要内容有: 1. ubuntu源替换 2. windows与vmware ubuntu文件夹共享 3. putty连接ubu ...
- 记录一次bug解决过程:else未补全导致数据泄露和代码优化
一.总结 快捷键ctrl + alt + 四个方向键 --> 倒置屏幕 未补全else逻辑,倒置查询数据泄露 空指针是最容易犯的错误,数据的空指针,可以普遍采用三目运算符来解决 SVN冲突解决关 ...
- 记录一次bug解决过程:velocity中获取url中的参数
一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-si ...
随机推荐
- eclipse maven项目错误
eclipse maven项目错误:Failure to transfer org.codehaus.plexus:plexus-interpolation:jar:1.15 from http:// ...
- SQL Server 2008在Windows 10上不支持
https://support.microsoft.com/en-us/kb/2681562 For SQL Server 2008 R2 SQL Server 2008 R2 is not supp ...
- 【学习笔记】Servlet的配置
为了让Servlet能响应用户的请求,需要将Servlet配置在Web应用中. 从Servlet3.0开始,配置Servlet有两种方式: l 在Servlet类中使用@WebServlet Anno ...
- PopupWindow 使用
昨天马失前蹄,为了做一个小键盘,耽误了两个小时,记录一下心路历程 1.关于需求与选择 需求: 点击一个按钮,弹出一个小键盘(类似于输入法键盘) 选择: (1)方案一:KeyboardView 这是百度 ...
- 对于C语言复杂指针类型的分析
转载自:http://www.slyar.com/blog/complicated-point-type.html int p; p是一个普通的整型变量. int *p; 1.p与*结合,说明p是一个 ...
- Virtualbox 上调整 Mac OS 分辨率 最简单方法
Mac OS 分辨率:VBoxManage setextradata "Mac OS X 10.10" VBoxInternal2/EfiGopMode 3 ----代 ...
- dex文件格式三
先来看看整体的结构,结构体定义在DexFile.h里面 在dexFileSetupBasicPointers中设置各个子结构体,当然是在解析DexHeader之后 源码在DexFile.c文件中 ...
- grep-2.26 sed-4.2.2 awk-4.1.4 wget-1.18 pcregrep-8.39 pcre2grep-10.22 for windows 最新版本静态编译
-------------------------------------------------------------------------------------------- grep (G ...
- shell 多行注释
:<<! 要注释的内容 要注释的内容 要注释的内容 !
- [转]Unicode utf8等编码类型的原理
FROM:http://www.cnblogs.com/daxiong2014/p/4768681.html 1.ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进 ...