PHP将视频指定的帧截取为。

PHP将视频指定的帧截取为。
视频截取指定的帧,和PHP FFMPEG扩展已经实现完美。
电影=新ffmpeg_movie美元(美元video_filepath);
ff_frame美元=美元getframe电影>(1);
gd_image美元=美元ff_frame -> togdimage();
$ IMG = , /测试。JPG;
imagejpeg(gd_image美元美元,IMG);
销毁一图像($ gd_image);
但这里的问题,智能手机视频的拍摄,拍摄方向不同,视频会被旋转,并与元旋转,相对时间,当你的视频捕捉帧图像,如果有一个旋转的视频信息,帧是旋转的,所以你将需要拦截相应的图像旋转。

然后PHP ffmpeg延伸并无法转动信息(PHP FFMPEG扩展名文档),但可以通过FFMPEG命令行得到:

/ usr /局部/ /斌/ ffprobe ffmpeg test.mp4 - show_streams grep旋转|

简单地封装在PHP中,如下所示:
功能get_video_orientation($ video_path){
CMD = 美元/ usr /局部/ /斌/ ffprobe ffmpeg。video_path美元。- show_streams 2 > / dev /空;
结果= shell_exec美元($ CMD);

$方向= 0;
如果(strpos(美元的结果,'tag:旋转的)!= false){
结果=爆炸(
foreach($结果达线){
如果(strpos(合线,'tag:旋转的)!= false){
stream_info美元=爆炸(=
方向=美元美元stream_info { 1 };
}
}
}
返回定向;
}
的imagerotate()函数可用于旋转截图
电影=新ffmpeg_movie美元(美元video_filepath);
美元美元getframe框架=电影>(1);
GD =美元美元框架-> togdimage();
如果($定位=美元-> get_video_orientation($ video_filepath)){
GD = imagerotate美元($ 360 - $取向,GD,0);
}
$ IMG = , /测试。JPG;
imagejpeg($美元GD,IMG);
销毁一图像($ gd_image);
最后,有麻烦了。不是所有的播放器和浏览器都能识别方向和自动旋转视频。如果你想旋转的视频,你可以通过FFMPEG命令解决它。

/ usr /局部/ /斌/ FFmpeg ffmpeg我input.mp4 - vf'transpose = 3 -元数据::V:0旋转= 0

以上是本文的全部内容,希望能帮助您学习php程序设计。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部