写了一个hiero检查任务渲染结果的脚本
基本思路是写了一个时间判断函数(postSequence_check)来对比transcode任务提交时间和目标文件夹内文件的修改时间来确定渲染是否成功执行,然后通过Hiero提供的postSequence钩子函数将时间判断函数(postSequence_check)注入进Hiero。
import sys
import os,datetime
import time
#GLOBAL_NAMELIST=[]
def updateItem_new (self, originalItem, localtime):
#print sys._getframe().f_code.co_name
global GLOBAL_LOCALTIME,GLOBAL_CLASS_TYPE
GLOBAL_LOCALTIME = time.mktime(localtime)
GLOBAL_CLASS_TYPE = self
"""updateItem - This is called by the processor prior to taskStart, crucially on the main thread.\n
This gives the task an opportunity to modify the original item on the main thread, rather than the clone."""
#if isinstance(self._item, (Sequence,TrackItem)):
#if isinstance(self._item, Clip):
timestamp = self.timeStampString(localtime)
tag = hiero.core.Tag("Transcode " + timestamp, "icons:Nuke.png")
tag.metadata().setValue("tag.path", self.resolvedExportPath())
tag.metadata().setValue("tag.localtime", str(localtime))
# Right now dont add the time to the metadata
# We would rather store the integer time than the stringified time stamp
#tag.setValue("time", timestamp)
# No point in adding script path if we're not planning on keeping the script
if self._preset.properties()["keepNukeScript"]:
tag.metadata().setValue("tag.script", self._scriptfile)
start, end = self.outputRange()
tag.metadata().setValue("tag.startframe", str(start))
tag.metadata().setValue("tag.duration", str(end-start+1))
frameoffset = self._startFrame if self._startFrame else 0
if hiero.core.isVideoFileExtension(os.path.splitext(self.resolvedExportPath())[1].lower()):
frameoffset = 0
tag.metadata().setValue("tag.frameoffset", str(frameoffset))
if self._cutHandles:
tag.metadata().setValue("tag.handles", str(self._cutHandles))
self._tag_guid = tag.guid()
originalItem.addTag(tag)
# The guid of the tag attached to the trackItem is different from the tag instace we created
# Get the last tag in the list and store its guid
self._tag_guid = originalItem.tags()[-1].guid()
hiero.exporters.FnTranscodeExporter.TranscodeExporter.updateItem = updateItem_new
######################################################################################################
######################################################################################################
######################################################################################################
def postSequence_check(self):
#print sys._getframe().f_code.co_name
#print self.__class__
#print self._filebase
if isinstance(self,hiero.exporters.FnTranscodeExporter.TranscodeExporter):
#print "yeah!"
#print self._root
#print self._shotPath
#print self._filebase
#print self._version
#print self._track
#print self.outputRange()
#print self.properties()
#print initDictionary
#GLOBAL_NAMELIST.append(self._filebase)
base_dir = self._root
base_dir = "/".join(base_dir.split('/')[0:-1])
print self._filebase
list = []
timestamplist = []
list = os.listdir(base_dir)
if len(list) > 0:
for i in range(0, len(list)):
path = os.path.join(base_dir,list[i])
if os.path.isfile(path):
path = os.path.join(base_dir, list[i])
if os.path.isdir(path):
continue
timestamp = os.path.getmtime(path)
timestamplist.append(timestamp)
#print GLOBAL_LOCALTIME,min(timestamplist)
if GLOBAL_LOCALTIME > min(timestamplist):
print "(VHQ) This transcode task has some problem:" + self._filebase
else:
print '(VHQ) This transcode task is OK!'
else:
print "(VHQ) This transcode task has some problem:" + self._filebase
else:
base_dir = self._filebase
#base_dir = "/".join(base_dir.split('/')[0:-1])
print base_dir
print str(self.__class__).strip('<').strip('>').strip("'").split('.')[-1] + ' is not transcode render task!'
hiero.core.FnExporterBase.TaskBase.postSequence = postSequence_check
写了一个hiero检查任务渲染结果的脚本的更多相关文章
- 初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助
初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: var fs = require('f ...
- 写了一个hiero中添加自定义Token的脚本
Hiero自带Token往往不够用,shotname中自带版本号的情况下要升级版本会很麻烦,比如Shot_0001_v001这样一个序列名,要升级为Shot_0001_v002就必须把_v001之前的 ...
- 随手写的一个检测php连接mysql的小脚本
最近偶然接触到一点点的php开发,要用到mysql数据库,由于mysql和php版本的关系,php5里面连接函数有mysql_connect(),mysqli_connect()两种,php7中又使用 ...
- python 拼写检查代码(怎样写一个拼写检查器)
原文:http://norvig.com/spell-correct.html 翻译:http://blog.youxu.info/spell-correct.html 怎样写一个拼写检查器 Pete ...
- 如何写一个拼写检查器-by Peter Norvig
本文原著:Peter Norvig 中文翻译:徐宥 上个星期, 我的两个朋友 Dean 和 Bill 分别告诉我说他们对 Google 的快速高质量的拼写检查工具感到惊奇. 比如说在搜索的时候键入 ...
- 闲来无事,用Java的软引用写了一个山寨的缓存
闲来无事,用Java的软引用写了一个山寨的缓存 博客分类: java基础 众所周知java中的引用分为 StrongReference.SoftReference.WeakReference.Phan ...
- Pluto - iOS 上一个高性能的排版渲染引擎
WeTest 导读 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证.pluto.oa.com 上有更多详 ...
- 自己写的一个Vue
下面这里是我自己写的一个小型的vue,原理就是proxy: //Proxy天生没有prototype,因此要加上,不然extends会报错 Proxy.prototype = Proxy.protot ...
- 自己写的一个Solr搜索实例,增删改查+高亮+分页
今天个人coding的模块测试,所以闲暇之余继续研究solr,然后顺带写了一个实例,随便搞的,solr真心不熟,期待认识热爱搜索的朋友,共同进步. 1.配置schema.xml文件[solr\coll ...
随机推荐
- maven修改本地仓库,远程仓库与中央仓库
什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如 log4j.jar,junit. ...
- Kaggle:Home Credit Default Risk 特征工程构建及可视化(2)
博主在之前的博客 Kaggle:Home Credit Default Risk 数据探索及可视化(1) 中介绍了 Home Credit Default Risk 竞赛中一个优秀 kernel 关于 ...
- Ubuntu下设置开机后自动运行命令
从道理上来讲,ubuntu开机应该是能够设置执行一些脚本的,事实上确实如此,网上给出了很多解决的方案,基本上是分为两种, 第一种是编辑/etc/下的rc.local脚本,
- Arcgis API for JS——打印控件乱码
在通过Arcgis API for JS编写打印控件进行地图下载时,总发现地图字体乱码,如下图: 解决方法: 在装有ArcGIS Server,要调用服务的电脑或服务器上找到下图文件夹
- RNN-LSTM-GRU-BIRNN
https://blog.csdn.net/wangyangzhizhou/article/details/76651116 共三篇 RNN的模型展开后多个时刻隐层互相连接,而所有循环神经网络都有一个 ...
- HPU第四次积分赛-K :方框(水题,打印图形)
方框 描述 用'*'打印出一个nxn的字符图形(1<=n<=100). 输入 多组输入.每行输入一个n,输入EOF结束文件. 输出 输出一个满足题意的图形. 输入样例 1 1 2 5 6 ...
- Windows 10下使用WMware 12 安装Ubuntu16.04,安装过程(附全过程图)
序言:菜鸡的我又开始瞎搞Ubuntu了 首先在网下下载VMware 12 正常安装即可 关于产品密匙问题:5A02H-AU243-TZJ49-GTC7K-3C61N (这是我在网上找的密匙,反正自己是 ...
- Js判断字符的种类
Js判断字符的种类:unicode范围: 48-57:0-9 数字字符 65-90:A-Z 大写字母 97-122: a-z 小写字母 19968-40869:汉字 其他字符 实例:输出 ...
- day 05JVM和深入理解java虚拟机
-----------------Java 虚拟机发展史 PS: Sun公司有 HotSpot, BEA公司有JRockit,IBM有 J9 这三个是高性能VM 在Oracle收购Sun和BEA这两 ...
- VM安装系统时提示硬件不支持(unsupported hardware detected)
修改一下虚拟机配置,把CD/DVD中使用的autoinst.iso替换成需要安装的系统镜像文件 然而,后面发现还是会报这个错,不过,却可以正常安装下去.但是如果不修改这里的话,安装系统时会出错