记php调用系统命令实现ffmpeg视频加水印

因项目需求需要在视频上传后给视频增加文字水印,这里使用ffmpeg实现

1.下载FFmpeg(for Windows):http://ffmpeg.zeranoe.com/builds/  (其他版本可上官网上搜:http://ffmpeg.org/)。

这里下载选择版本需要注意一下,我的服务器是windows 64位的(之前用的是Linux的,似乎Linux上不能使用这个命令,所以才换成windows的了,或许可以只是我没做出来吧),

我就下载了windows64的版本,可是安装上就出现了无法启动该程序的错误提示

弄了好久都没弄好,然后我去下载了windows32位的版本。结果安装上可以运行了。

2.安装好后要配置环境变量,使其无论在那个文件下的可以执行命令。找到ffmpeg安装目录并进入bin目录下,复制改路径,到系统->高级系统设置->环境变量。找到系统环境变量中的path,将路径放在最后,记得要用分号隔开

3.上述操作完成后可以在PHP中调用命令给视频增加水印了,这是该项目中所用到的

//判断文件是否为MP4

if ($filetype == '.mp4') {//给视频加水印
        //获得视频地址
        $dir = 'C:/wwwroot/www.suxiangtop.com/d/file/p/'.$r[filepath].'/'.$r[filename];
        $n = $r[filename];
        $ar = explode('.',$n);
        $newsname = $ar[0].'s.'.$ar[1];
        //水印视频储存地址
        $newpath = 'C:/wwwroot/www.suxiangtop.com/d/file/p/'.$r[filepath].'/'.$newsname;
        $cmd="ffmpeg -i ".$dir." -vf \"drawtext=fontfile=Arial.ttf: text='suxiangtop.com':y=h-line_h-20:x=(w-text_w)/2:fontsize=25 0:fontcolor=red:shadowy=2\" -b:v 3000k ".$newpath."";
        //执行命令
        exec($cmd);
        //在执行成功后删除原视频
        // $cmds = 'rm -f /www/wwwroot/www.suxiangtop.com/d/file/p/2020/08-07/22a776f12654e243650e96fcfae1f86e.mp4';
        // shell_exec($cmds);
    }

4.上传视频

致辞视频加文字水印就完成了,有不懂得小伙伴可以参考哦!!!

未经允许不得转载:作者:小平平, 转载或复制请以 超链接形式 并注明出处 小平平。
小平平 » 记php调用系统命令实现ffmpeg视频加水印

发表评论

提供最优质的资源集合

软件分享 美工设计