视频截取指定的帧,和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
程序设计。