记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.上传视频
致辞视频加文字水印就完成了,有不懂得小伙伴可以参考哦!!!