美文网首页
关于微信小程序观看视频,后台上传问题

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

作者: 流年你奈我何_89f7 | 来源:发表于2017-10-26 16:23 被阅读0次

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/sjvijxtx.html