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

      为啥子会有这个玩意呢,因为发现直接上传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服务器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容