ffmpeg截取视频指定帧为图片,获取rotation信息并旋转
对ffmpeg命令和参数不熟悉的可参考如下文档:
}foreach($result as $line) {
然后php ffmpeg扩展并无法获知rotation信息(php ffmpeg扩展文档),但可以通过ffmpeg命令行获取:
用php简单封装下如下:
/usr/local/ffmpeg/bin/ffprobe test.mp4 -show_streams | grep rotate
imagedestroy($gd_image);
ffmpeg对于php开发者来讲肯定都多少会听过吧,我信下面来看ffmpeg截取视频的功能,这个是直接使用php来实现的,具体的例子如下所示.
然而问题来了,智能手机拍摄的视频,由于拍摄方向不同,视频会被旋转,并带上meta信息rotate,当你相对视频截取frame图片的时候,如果有rotate信息的视频,frame也是旋转的,因此你需要将截取的图片相应的旋转。
使用imagerotate()函数就可以旋转截图:
$movie = new ffmpeg_movie($video_filePath);
$orientation = 0;
if(strpos($line, 'TAG:rotate') !== FALSE) {
if(strpos($result, 'TAG:rotate') !== FALSE) {
$cmd = "/usr/local/ffmpeg/bin/ffprobe " . $video_path . " -show_streams 2>/dev/null";
$result = shell_exec($cmd);
$result = explode("\n", $result);
$gd = $frame->toGDImage();
$frame = $movie->getFrame(1);
return $orientation;
}
截取视频指定帧为图片,php ffmpeg扩展已经完美实现:
/usr/local/ffmpeg/bin/ffmpeg -i input.mp4 -vf 'transpose=3' -metadata:s:v:0 rotate=0 -codec:v libx264 -strict -2 -y output.mp4 $gd_image = $ff_frame->toGDImage();$movie = new ffmpeg_movie($video_filePath);
}
$img="./test.jpg";
$gd = imagerotate($gd, 360-$orientation, 0);
if ($orientation = $this->get_video_orientation($video_filePath)) {
imagejpeg($gd, $img);
最后还有一个麻烦事,不是所有的播放器和浏览器都可对video识别orientation并自动rotate,如果你想对视频进行旋转,可通过ffmpeg命令解决:
imagejpeg($gd_image, $img);
$ff_frame = $movie->getFrame(1);
$img="./test.jpg";
$orientation = $stream_info[1];
imagedestroy($gd_image);
}
}
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jq/jc/6612.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
PHP识别相片是否是颠倒的
时间:2020-12-28
-
python编程有哪些ide
时间:2020-12-28
-
python开发工程师是做什么
时间:2020-12-28
-
php构造函数的作用
时间:2020-12-28
-
php怎么跟数据库连接
时间:2020-12-28
-
php实现顺序线性表
时间:2020-12-28
-
Python多重继承中的菱形继
时间:2020-12-28
-
php中break的作用
时间:2020-12-28
热门文章
-
php中常用的正则表达式使用方法
时间:2020-12-25
-
asp与php区别是什么?
时间:2020-12-27
-
PHP识别相片是否是颠倒的,并且重新摆正
时间:2020-12-28
-
Yii授权之基于角色的存取控制 (RBAC)
时间:2020-12-23
-
php的一键安装包有哪些 php环境搭建
时间:2020-12-19
-
php实现对图片对称加解密(适用身份证加
时间:2020-12-25
-
php如何理解面向对象
时间:2020-12-28
-
超详细分析php docker的原理及作用
时间:2020-12-27
-
Python控制Excel实现自动化办公
时间:2020-12-23
-
session的作用是什么
时间:2020-12-25
