windows下PHP获取视频第一帧图片作为背景图

版权声明:希望不要抄袭,可以借鉴。 https://blog.csdn.net/weixin_37616043/article/details/83339914

我在网上找了很多这方面的资料,总结如下:一般用ffmpeg获取视频第一帧图片作为背景图; ffmpeg的下载链接  http://ffmpeg.org/download.html ; 下载好包,包里面在bin目录下找到ffmpeg.exe文件,将ffmpeg.exe文件随意放;但必须知道ffmpeg.exe文件绝对路径:网上有说安装ffmpeg或者放置在C:\Windows\System32;还有的修改环境变量,用命令测试是否装成功;看的人眼花缭乱;其实很简单,目的都是找到ffmpeg.exe文件路径而已;因此我用最简单的方法来实现;

我的代码如下:

$name = md5(date('YmdHis')).".png"; // 图片保存的名称
$ffmpeg="E:/zs/second/ffmpeg.exe"; // 文件绝对路径
$video_route="E:/zs/second/Public/Uploads/".$date . "/".$saveName; // 视频的文件路径
$storage_route="E:/zs/second/Public/Uploads/".$date. "/".$name;  //  图片保存路径
system($ffmpeg." -i ".$video_route." -y -f image2 -t 0.001 -s 200x200 ".$storage_route); // 运行命名

system如果换成exec来执行那么,文件路路径“/”变为“//”就好了 , 200x200是生成图片的大小 ,0.001是视频的这个时间

但是还有一个很重要的问题那就是,如果视频是横着拍摄的那么图片的内容也是横着的,图片要正得,我想能否获得视频的转了多少度,然后将截得图片也转回来,可惜没找到好的办法;看了微信,qq等软件都没解决;网上有方法解决,那就是ffmpeg-php扩展;但是此扩展只有PHP5.4的版本,没有PHP5.5以上的,目前很多人用的都是PHP5,5以上的版本,所以没法使用,但是Linux有个别资料有PHP5.5以上的,可惜我的服务器是Windows的没法尝试;如果你是,那么可以尝试。

如果有大神解决了这个问题,希望留言指导一下;谢谢;

猜你喜欢

转载自blog.csdn.net/weixin_37616043/article/details/83339914