利用php怎么对视频进行截取

  介绍

这期内容当中小编将会给大家带来有关利用php怎么对视频进行截取,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

截取视频指定帧为图片,php ffmpeg扩展已经完美实现:

movie 美元;=,new  ffmpeg_movie ($ video_filePath);   美元$ ff_frame =,电影→getFrame (1);   美元$ gd_image =, ff_frame→toGDImage ();   img=懊涝?test.jpg";   imagejpeg (gd_image美元,,img);   imagedestroy ($ gd_image);

然而问题来了,智能手机拍摄的视频,由于拍摄方向不同,视频会被旋转,并带上元信息旋转,当你相对视频截取帧图片的时候,如果有旋转信息的视频,框架也是旋转的,因此你需要将截取的图片相应的旋转。

然后php ffmpeg扩展并无法获知旋转信息(php ffmpeg扩展文档),但可以通过ffmpeg命令行获取:

/usr/地方/ffmpeg/bin/ffprobe测试。mp4 -show_streams | grep旋转
用php简单封装下如下:

function  get_video_orientation (video_path美元),{   时间=美元才能cmd “/usr/地方/ffmpeg/bin/ffprobe “,只video_path 美元;只“,-show_streams  2在/dev/null";   时间=美元才能result  shell_exec ($ cmd);   ,   时间=美元才能orientation  0;   如果才能(大小写敏感(因此,美元,& # 39;标签:旋转# 39;),!==,FALSE), {   ,,,result 美元;=,爆炸(“\ n",,结果美元);   ,,,foreach (result 美元;as  $线),{   ,,,,,如果(大小写敏感(线,美元,& # 39;标签:旋转# 39;),!==,FALSE), {   ,,,,,,,stream_info 美元;=,爆炸(“=?,,美元线);   ,,,,,,,orientation 美元;=,stream_info美元[1];   ,,,,,}   ,,,}   ,,}   return 才能;美元取向;   }

使用imagerotate()函数就可以旋转截图:

movie 美元;=,new  ffmpeg_movie ($ video_filePath);   美元$ frame =,电影→getFrame (1);   美元$ gd =,框架→toGDImage ();   if  (orientation 美元;=,$ this→get_video_orientation (video_filePath美元)),{=美元才能gd  imagerotate (gd美元,360美元取向,,0);   }   img=懊涝?test.jpg";   imagejpeg (gd美元,,img);   imagedestroy ($ gd_image);

最后还有一个麻烦事,不是所有的播放器和浏览器都可对视频识别取向并自动旋转,如果你想对视频进行旋转,可通过ffmpeg命令解决:

<强>/usr/地方/ffmpeg/bin/ffmpeg我输入。mp4 vf & # 39;转置=3 & # 39;元数据:年代:v: 0旋转=0

利用php怎么对视频进行截取