Php exif_读取_数据vs exec(exiftool…)
我有以下问题: 我在一个新继承的项目中从事维护工作。在本项目中,开发人员通过以下方式处理图像和视频的元数据:Php exif_读取_数据vs exec(exiftool…),php,exec,exiftool,Php,Exec,Exiftool,我有以下问题: 我在一个新继承的项目中从事维护工作。在本项目中,开发人员通过以下方式处理图像和视频的元数据: function getRotationFromFile($realPath) { $retVal = Array(); $cmd = variable_get("exiftool",null) . "\"$realPath\"" . " | grep -E 'Rotation|Camera Identifier'"; exec($cmd, $output);
function getRotationFromFile($realPath) {
$retVal = Array();
$cmd = variable_get("exiftool",null) . "\"$realPath\"" . " | grep -E 'Rotation|Camera Identifier'";
exec($cmd, $output);
foreach ($output as $row){
$key = trim(strstr($row, ':', true));
$value = trim(str_replace(": ", "", strstr($row, ': ')));
$retVal[$key] = $value;
}
return $retVal;
}
如您所知,此函数调用exec(exiftool..)并检索一些元数据。
我知道在php中也存在这样的情况
我的问题是:
提前谢谢你 我创建了一个PHP脚本,允许通过exiftool快速读写。 我们将它与gearman一起使用,因此它作为后台服务运行,exiftool最慢的部分是启动它,然后通过将作业传递给gearman从PHP脚本调用它。 我们运行了这个脚本的大约5个实例,因此它可以快速地提供服务。 单个进程应该能够在大约1-2秒内处理大约100个文件,这当然取决于文件大小和存储速度,但它确实可以很好地扩展。 过去5个月,我们在数字资产管理平台上已将其用于生产
我创建了一个PHP脚本,允许通过exiftool快速读写。 我们将它与gearman一起使用,因此它作为后台服务运行,exiftool最慢的部分是启动它,然后通过将作业传递给gearman从PHP脚本调用它。 我们运行了这个脚本的大约5个实例,因此它可以快速地提供服务。 单个进程应该能够在大约1-2秒内处理大约100个文件,这当然取决于文件大小和存储速度,但它确实可以很好地扩展。 过去5个月,我们在数字资产管理平台上已将其用于生产
PHP函数
exif\u read\u data
仅支持JPEG和TIFF文件类型。命令行实用程序exiftool
-更多信息。PHP函数exif\u read\u data
仅支持JPEG和TIFF文件类型。命令行实用程序exiftool
-更多。据我所知,exif\u read\u数据将只读取exif数据,而不会读取任何其他类型的元数据,并且仅限于Tiff和Jpg文件。EXIF块很少出现在视频文件中。此外,您在该代码位中查找的两个标记,摄像机标识符
和旋转
,不是标记,而是EXIF规范的一部分<代码>摄像机标识符似乎是Quicktime标签,而旋转
似乎是尼康和佳能makernotes标签
可以做的一件事是告诉Exiftool只显示您想要的标签,而不是通过grep进行管道传输。这可以通过在命令行中添加-CameraIdentifier-Rotation
来完成。安静选项-q
也可能对此有用
您可能还需要查看Orientation
标记,因为这是保存图像文件方向的标准标记
@tsmgeek可能有最好的解决方案,因为他们对启动开销的看法是正确的 据我所知,exif_read_数据将只读取exif数据,而不会读取任何其他类型的元数据,并且仅限于Tiff和Jpg文件。EXIF块很少出现在视频文件中。此外,您在该代码位中查找的两个标记,
摄像机标识符
和旋转
,不是标记,而是EXIF规范的一部分<代码>摄像机标识符似乎是Quicktime标签,而旋转
似乎是尼康和佳能makernotes标签
可以做的一件事是告诉Exiftool只显示您想要的标签,而不是通过grep进行管道传输。这可以通过在命令行中添加-CameraIdentifier-Rotation
来完成。安静选项-q
也可能对此有用
您可能还需要查看Orientation
标记,因为这是保存图像文件方向的标准标记
@tsmgeek可能有最好的解决方案,因为他们对启动开销的看法是正确的 谢谢你花时间在这篇老帖子上,这是一个更完整的答案,接近我的要求。嘿,我甚至没赶上日期。它刚刚出现在我的ExifTool过滤器的顶部,所以我认为它是新的。谢谢你花时间阅读这篇旧文章,这是接近我所问的更完整的答案。嘿,我甚至没有赶上日期。它只是弹出到我的ExifTool过滤器的顶部,所以我认为它是新的。