关于微信小程序观看视频,后台上传问题

2017-10-26  本文已影响0人  流年你奈我何_89f7

      为啥子会有这个玩意呢,因为发现直接上传MP4等格式的视频,在安卓机上可以完全没有问题的播放,但是在IOS上面就不能播放了,这是一个很严重的问题。

本次用到的软件为FFMPEG;这是一个强大的视频视频处理软件。

因为本公司是windows服务器,所以linux上没有测试过。

下面开始感觉很low的解决办法:

$v=$_FILES['video'];

$name=$v['name'];

//给视频取一个新名字

$new=$this->num();

//这是在取出上传视频的后缀名

$hou=explode('.',$name)[1];

//拼接新文件

$imgname=$new.'.'.$hou;

$tmp=$v['tmp_name'];

//选择保存的路径

$filepath='Public/ss/';

$url=$filepath.$imgname;

//保存文件

move_uploaded_file($tmp,$url);

//这一步是在干啥呢,因为我发现用FFMPEG这个软件他支持用绝对路径来写文件路径,所以咯--现在开始就low起来了

//获取当前执行文件的绝对路径

$a=__FILE__;

//根据自己的框架,把上面获取到的绝对路径返回上一层,一次dirname就是返回一次

$c=dirname(dirname(dirname(dirname($a))));

//然后你自己知道结果把你上传上来的视频的绝对路径获取到了

$bt="$c/Public/ss/".$imgname;

//判断是不是MP4格式的视频不是就先转换到MP4

if($hou!='mp4'){

//如果现在不是MP4格式的视频,那么就先把它转化成MP4格式

$old="$c/Public/vi/".$this->num().".mp4";

$cmd="FFMPEG  -i$bt-c:v libx264 -strict -2$old";

//这个是调用命令框来执行这个代码

exec($cmd,$i,$v);

//把转化成MP4格式的视频再进行m3u8切片,这样的文件才能让安卓跟苹果同时都能看到视频

$cmd="ffmpeg -i$old-profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls C:\Users\Administrator\Desktop/".$this->num().".m3u8";

exec($cmd,$i,$v);

}else{

//直接就把MP4格式的视频切片

$cmd="ffmpeg -i$bt-profile:v baseline -level 3.0 -s 640x360 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls C:\Users\Administrator\Desktop/".$this->num().".m3u8";

exec($cmd,$i,$v);

}

其实可以把$cmd打出来看,如果结果是int(0),那么就说明执行成功了。至于linux系统,你们就自己测试吧,还有就是ffmpeg的安装就百度吧。

切记把ffmpeg加入到环境变量中,windows服务器

上一篇 下一篇

猜你喜欢

热点阅读