Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从服务器检测iPhone视频的方向_Php_Video_Orientation - Fatal编程技术网

Php 从服务器检测iPhone视频的方向

Php 从服务器检测iPhone视频的方向,php,video,orientation,Php,Video,Orientation,我试图通过PHP表单检测上传的iPhone视频文件.mov的方向,这样我就可以使用FFMPEG来纠正它。上传的很多视频都显示在他们的一侧。我似乎找不到访问服务器上上传文件方向的方法。有什么想法吗?使用mediainfo $ mediainfo test.mp4 | grep Rotation Rotation : 90° 您可以使用exec捕获此系统调用的输出,并顺时针应用方向固定90度: $ ffmpeg -i test.mp4 -vf "tr

我试图通过PHP表单检测上传的iPhone视频文件.mov的方向,这样我就可以使用FFMPEG来纠正它。上传的很多视频都显示在他们的一侧。我似乎找不到访问服务器上上传文件方向的方法。有什么想法吗?

使用mediainfo

$ mediainfo test.mp4 | grep Rotation
Rotation                         : 90°
您可以使用exec捕获此系统调用的输出,并顺时针应用方向固定90度:

$ ffmpeg -i test.mp4 -vf "transpose=1" testRotated.mp4
如果您有-启用过滤器

$ ffmpeg -vfilters "rotate=90" -i test.mp4 testRotated.mp4
使用mediainfo

$ mediainfo test.mp4 | grep Rotation
Rotation                         : 90°
您可以使用exec捕获此系统调用的输出,并顺时针应用方向固定90度:

$ ffmpeg -i test.mp4 -vf "transpose=1" testRotated.mp4
如果您有-启用过滤器

$ ffmpeg -vfilters "rotate=90" -i test.mp4 testRotated.mp4

我对正则表达式不是最好的,但我会这样做

exec(ffmpeg -i uploaded.mov,$output)
一旦有了输出,就对其进行预匹配,如下所示

preg_match('/(\d+)x(\d+)/', $output, $dims);
然后检查$dims[1]是否大于$dims[2],如果大于,则为横向,如果小于纵向


我不能完全测试它,但沿着这些思路的一些东西应该适合你

我在正则表达式方面不是最好的,但下面是我将如何做的

exec(ffmpeg -i uploaded.mov,$output)
一旦有了输出,就对其进行预匹配,如下所示

preg_match('/(\d+)x(\d+)/', $output, $dims);
然后检查$dims[1]是否大于$dims[2],如果大于,则为横向,如果小于纵向


我不能完全测试它,但沿着这些思路的一些东西应该适合你

@craig1231,嗯?那么,既然浏览器是客户端,就不应该允许它与运行PHP的服务器交互?iPhone当然可以。抱歉,刚才澄清了这个问题,用户通过html/php表单从pc上传文件。您需要检测客户端iPhone上的方向,然后将其发送到服务器并与php对话ffmpeg@CharlesSprayberryPHP本身不是一个webserver@craig1231嗯?那么,既然浏览器是客户端,就不应该允许它与运行PHP的服务器交互?iPhone当然可以。对不起,刚才澄清了这个问题,用户通过html/php表单从pc上传文件。您需要在客户端iPhone上检测方向,然后将其发送到服务器并与php对话ffmpeg@CharlesSprayberryPHP本身不是一个Web服务器,但这是假设它被记录在肖像上,但这是假设它被记录在肖像上没有关于方向的问题。在某些情况下可能会起作用,但如果您将相机倒置或相机正常使用纵向,则不会起作用。尺寸不会告诉您方向。在某些情况下,它可能会工作,但如果您将相机倒置或相机正常使用肖像,则不会工作。