标签: exiftool

获取shell输出的最后一行作为变量

我正在使用exiftool的shell脚本自动更改某个文件夹中包含的图片上的一些exif标签,我想在作业完成时使用输出在我的NAS(QNAP)上获取通知.

一切正常,但是 - 当通知系统截断消息时 - 我希望只收到我需要的信息,即shell输出的最后一行,例如以下内容:

Warning: [minor] Entries in IFD0 were out of sequence. Fixed. - 2015-07-12 15.41.06.jpg                                                                             
 4512 files failed condition                                                      
  177 image files updated
Run Code Online (Sandbox Code Playgroud)

问题是目前我只收到以下通知:

在相机上完成Exiftool cronjob:4512文件失败

我想要的是:

在相机上完成Exiftool cronjob:更新了177个图像文件

该脚本如下:

#!/bin/sh
# exiftool script for 2002 problem
dir="/share/Multimedia/Camera"
cd "$dir"
FOLDER="$(printf '%s\n' "${PWD##*/}")"
OUTPUT="$(exiftool -overwrite_original -r '-CreateDate<DateTimeOriginal' -if '$CreateDate eq "2002:12:08 12:00:00"' -if '$DateTimeOriginal ne $CreateDate' *.[Jj][Pp][Gg])"
/sbin/notice_log_tool -a "Exiftool cronjob completed on ${FOLDER}: ${OUTPUT}" --severity=5
exit 0
Run Code Online (Sandbox Code Playgroud)

为此,我使用|使用$ OUTPUT变量 尾巴-1,但可能我犯了一些基本错误,我得到的结果如下:

在相机上完成Exiftool cronjob:4512文件条件失败| 尾巴-1

如何以正确的方式做到这一点?谢谢

shell tail exiftool qnap

16
推荐指数
2
解决办法
4万
查看次数

在Ember中保存预订时,使用关系更新已存在的事件

我有两个型号:

Event.js:

export default Model.extend({
  checked       : attr({ defaultValue: false }),
  isActive      : attr(),
  createdAt     : attr(),
  updatedAt     : attr(),
  start         : attr(),
  end           : attr(),
  menPrice      : attr(),
  womenPrice    : attr(),
  information   : attr(),
  meetingPoint  : attr(),
  title         : attr(),
  hiw           : attr(),
  tip           : attr(),
  bookings      : hasMany('booking', { async: true})
});
Run Code Online (Sandbox Code Playgroud)

和Booking.js:

export default Model.extend({
  checked       : attr({ defaultValue: false }),
  isActive      : attr(),
  createdAt     : attr(),
  updatedAt     : attr(),
  participants  : attr(),
  email         : attr(),
  locale …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js exiftool ember.js

15
推荐指数
1
解决办法
284
查看次数

ExifTool - 如何从文件夹及其所有子文件夹内可能的所有文件中删除所有元数据?

如何从文件夹及其子文件夹内的所有文件中删除所有元数据?

我已经尝试了几个命令但没有成功。所有这些都与特定的文件扩展名相关联和/或没有遍历其中的所有子文件夹。

exif metadata exiftool

13
推荐指数
1
解决办法
2万
查看次数

Python:从图像中删除Exif信息

为了减少网站中使用的图像尺寸,我将质量降低到80-85%.这在很大程度上减小了图像尺寸.

为了在不影响质量的情况下进一步缩小尺寸,我的朋友指出,来自相机的原始图像有很多称为Exif信息的元数据.由于无需为网站中的图像保留此Exif信息,我们可以将其删除.这将进一步减小3-10 kB的大小.

但我无法在我的Python代码中找到合适的库来执行此操作.我浏览了相关问题并尝试了一些方法:

原始图片:http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg

  1. Mogrify

    /usr/local/bin/mogrify -strip filename
    
    Run Code Online (Sandbox Code Playgroud)

    结果:http://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg 此方法将大小从105 kB缩小到99.6 kB,但也改变了颜色质量.

  2. EXIF工具

    exiftool -all= filename
    
    Run Code Online (Sandbox Code Playgroud)

    结果:http://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg 此方法将大小从105 kB减小到72.7 kB,但也改变了颜色质量.

  3. 这个答案详细解释了如何操作Exif信息,但我如何使用它来删除信息?

任何人都可以帮我删除所有额外的元数据,而无需更改图像的颜色,尺寸和其他属性?

python exif image-processing python-imaging-library exiftool

12
推荐指数
4
解决办法
1万
查看次数

Exiftool在PNG图像中创建OSX可见XMP元数据

在我的图像处理软件周围,我使用exiftool成功地从Cr2,TIFF,JPG文件中删除exif信息.添加的标签,例如"关键字",在OSX(山狮)Finder,预览中都可见,并且被Spotlight很好地编入索引.

对于PNG,我需要回退到XMP,因为这是PNG的元数据容器.但是,预览和SpotLight似乎都没有选择使用exiftool的标签.相反,如果我首先在预览中添加标签并使用exiftool稍后添加新标签,则此IS已编入索引.我在这里看到的差异在XMP原始数据中,exiftool新创建了一个标题,而Preview没有.

例如,请查看PNG上维基百科页面中的以下PNG,无需元数据https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png:

示例PNG没有元数据

使用exiftool添加关键字,然后转储XMP数据块:

exiftool -xmp-dc:subject=ViaExifSubject ./PNG_transparency_demonstration_1.png
exiftool -xmp -b ./PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)

提供以下XMP数据:

<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 9.02'>
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
 <rdf:Description rdf:about=''
  xmlns:dc='http://purl.org/dc/elements/1.1/'>
  <dc:subject>
   <rdf:Bag>
    <rdf:li>ViaExifSubject</rdf:li>
   </rdf:Bag>
  </dc:subject>
 </rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>
Run Code Online (Sandbox Code Playgroud)

但是,在"预览"或"查找器"信息面板中,未找到"ViaExifSubject".

或者,使用OSX预览添加注释(在预览中打开,显示检查器,转到关键字选项卡,单击'+'添加关键字).XMP再次通过exiftool转储:

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.1.2">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:subject>
            <rdf:Bag>
               <rdf:li>viaPreview</rdf:li>
            </rdf:Bag>
         </dc:subject>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
Run Code Online (Sandbox Code Playgroud)

xpacket报头中不存在预览生成的关键词,并且XMP工具包是不同的.现在可以看到"viaPreview"标签,例如mdls在CLI上使用.

将原始XMP信息推送到干净文件中也不会产生预期结果:

exiftool "-xmp<=viaexif.xmp" PNG_transparency_demonstration_1.png
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,如果我首先使用预览创建一个标签,那么执行上面的命令,反映新标签我怀疑我正在监督需要"激活"的外部数据解析器,拾取标签并将它们放在不同的位置商店(例如.DS_store).我还没有看到任何添加的xattr.

这些是我的问题:

  • exiftool是XMP/PNG组合的正确工具,我错过了一个特定的功能
  • OSX是否违反了XMP标准?编辑:显然,默认情况下OSX不会遵守XMP
  • 我应该用另一种工具来研究剥离容器吗?

我在我的磁盘上挖出了我的xmp_sdk并尝试了提供的示例:

ModifyXMP可以将"纯"XMP信息写入到OSG Finder中显示的PNG中 - …

macos xmp exif spotlight exiftool

9
推荐指数
1
解决办法
3037
查看次数

如何合并 JSON 和 Google Takeout Photos 以获取正确的日期?

我刚刚从 Google 外卖中获取了数千张照片,但我似乎无法按正确的时间顺序将它们导入到其他地方。我还找到了一些使用 exiftool 的教程,但我无法正确获取不同的时区?知道如何检索正确时区的时间吗?时区也不在 JSON 中。

exiftool

9
推荐指数
2
解决办法
2万
查看次数

如何提取MVIMG的照片/视频组件?

Google Pixel 2以及其他手机可能具有覆盖“动态照片”的功能。这些被保存为MVIGM并且相对较大。

我正在寻找一种删除/提取视频的方法。

到目前为止,我发现了一个很有前途的exif标签

$ exiftool -xmp:all MVIMG_123.jpg
XMP Toolkit                     : Adobe XMP Core 5.1.0-jc003
Micro Video                     : 1
Micro Video Version             : 1
Micro Video Offset              : 4032524
Run Code Online (Sandbox Code Playgroud)

我以为视频可能以指定的偏移量出现,但这不起作用:

$ dd if=MVIMG_123.jpg of=video.mp4 bs=4032524 skip=1
$ file video.mp4
video.mp4: data
Run Code Online (Sandbox Code Playgroud)

是否有任何资源可以证明嵌入?甚至还有删除/提取视频的工具吗?

exif image exiftool

8
推荐指数
3
解决办法
2341
查看次数

从python脚本调用exiftool?

我希望使用exiftool扫描我的照片和视频中的EXIF标签.这是一个perl可执行文件.用这个来表达最好的方法是什么?有没有Python库可以做到这一点?或者我应该直接调用可执行文件并解析输出?(后者看起来很脏.)谢谢.

我问的原因是因为我目前正在使用pyexiv2,它不支持视频.Perl的exiftool对图像和视频有非常广泛的支持,我想使用它.

python exiftool

7
推荐指数
1
解决办法
1万
查看次数

Java api到exiftool

我很有兴趣用java api或类似的东西解析exiftool结果.

我一直在研究,但我没有找到任何例子.例如,我怎样才能在我的java项目中获得这些结果?

ExifTool版本号:8.22

文件名:ExifTool.jpg

目录:t/images文件

大小:24 kB文件修改日期/时间

等等......我正在寻找'如何'或类似的东西.

java exiftool

6
推荐指数
1
解决办法
6444
查看次数

使用 Exiftool 更新 mov 文件中的旋转值

Phil Harvey 在https://exiftool.org/exiftool_pod.html#WRITING-EXAMPLES上提供了一些使用 Exiftool 编写照片元数据的优秀示例。

按照 Phil 的例子,我在更新 JPG 的现有元数据字段时没有问题。但是,我现在尝试将相同的逻辑应用于视频元数据(MOV 包装的 H.264),但没有任何成功。我有一个根据 iPhone 5 (iOS 7.1) 拍摄的视频是颠倒的 - 旋转值为 180 而不是 0。所以我正在执行“exiftool -Rotation=0 [文件名]”但是我得到的结果是:

0 图像文件已更新

1个图像文件不变

视频元数据有什么根本不同吗?这可能是权限问题吗?我的执行语句不正确吗?也许有更好的方法?

谢谢!

7 月 10 日更新:根据 Exiftool 网站再次在https://exiftool.org/TagNames/Composite.html,我发现无法编辑旋转字段:

标签名称:旋转

可写:N

派生自:QuickTime:MatrixStructure、QuickTime:HandlerType

不幸的是,当我尝试通过 Exiftool 更新 MatrixStructure(也显示为“Matrix Structure”)时,它也失败了,并显示此消息 - “警告:抱歉,MatrixStructure 不可写。”

So it's looking like it's not possible to edit the relevant metadata here. However, while both VLC and the video transcoder I'm using work with the iPhone file upside down, …

ios exiftool

6
推荐指数
2
解决办法
3248
查看次数