linux suse安装ffmpeg及php使用

一、获取ffmpeg

1
wget https://www.ffmpeg.org/releases/ffmpeg-4..tar.bz2

二、解压并编译安装

1
2
3
4
5
6
7
8
tar -xjvf ffmpeg-4.0.tar.bz2
cd ffmpeg-4.0
执行配置:./configure,此时或出现如下报错
nasm/yasm not found or too old

三、参数值传输接收不到的情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
第一次传递的参数,在服务端接收参数正常,修改参数名后,给参数赋值,在服务端出现接收不到参数值的现象
调试1:安装soapui,发起调用 -> 调用正常 判断:排除服务器端问题
调试2:将参数值修改为固定字符串值,再发起调用 -> 依然接收不到 判断:排除参数赋值失效
调试3:改变参数位置,再发起调用 -> 依然接收不到 判断:排除参数位置影响
调试4:删除runtime缓存文件,再发起调用 -> 依然接收不到 判断:排除程序缓存文件影响
调试5:重启apache或php-fpm,再发起调用 -> 依然接收不到 判断:排除web服务器环境问题
调试6:本地wamp环境,发起调用 -> 接收正常 判断:soap环境差异问题导致,查找到是soap缓存的问题
修改代码
$soap = new \SoapClient('http://www.whatever.com/WebService.asmx?wsdl');
$soap = new \SoapClient('http://www.whatever.com/WebService.asmx?wsdl', array('cache_wsdl' => 0));
发起调用 -> 接收正常

五、总结

1
2
参数名接收到,但参数值接收不到,这很怪异,一开始没有怀疑缓存原因,归根到底是对soap的基础理解得不够深刻。使用排除法定位问题的
速度还是比较局限。透过现象去了解程序的本质,设计思想,对于分析、解决问题有很大的帮助