使用 FFmpeg 截取视频中多个图片,然后拼成一张图
最近在做一个视频处理模块,需要在视频中截取几张图,然后拼成一张大图;
注意: 服务器需要安装ffmpeg,请参考官方文档
<?php
//获取文件路径
fwrite(STDOUT, "哪个视频文件:");
$video_path = trim(fgets(STDIN));
fwrite(STDOUT, "多少秒截取1张图:");
$s = trim(fgets(STDIN));
//设置输出路径
fwrite(STDOUT, "输出到哪里:");
$export_path = trim(fgets(STDIN));
$command = system('ffmpeg -y -i '.$video_path.' -vf "fps=1/'.$s.',scale=iw/4:-1,tile=2x2" -an '.$export_path.'_%d.png');
// fps = 1/2 每2秒截一张图,如果是每秒截一张 参数就是 fps=1
// scale 截图大小,上面的代码是设置宽为原始的1/4大小,高度自动,也可以设置成固定值如:120:80
// tile 网格化,自动将100张图合并成一张大图
推荐文章: