td内容靠右_[TD的日常] Hiero导出的xml,导入达芬奇会崩

背景

公司的视效剪辑发来求救信息:

Hiero 导出的一个xml,导入达芬奇后,达芬奇直接崩了,其他的 xml 都没事。

那肯定是这个 xml 有问题呗,要来了出问题的 xml 和 没毛病的 xml。 

还原犯罪现场

在达芬奇里右键 import > xml ,指定有问题的 xml 文件,然后鼠标变圈圈,几秒后然后达芬奇就直接退出了。

然后导入那个没毛病的 xml,恩,果然没毛病。

这个过程我称之为还原犯罪现场,验证一下提问者描述的信息是不是准确,是不是在我的环境下也出现。

这并不是怀疑提问者骗我什么的,而是先排除最傻瓜情况的可能。

初步排查

打开问题 xml,大致浏览一下,是不是有一看就不对头的信息,比如乱码啦,xml 标签格式不匹配没关闭等。

并没有,那是不是有跟其他xml 很不一样的地方呢? 

我使用 beyond compare 软件,把两个 xml拽进来对比一下。

有问题的 xml 并没有特殊的标签块。 

抽丝剥茧

只要来最笨的一招,逐段排查。 

删掉绝大部分 clip,只保留 一个 track,其中里面只包含一个 clip,保存,导入,还是崩。

这时候就很开心啦,xml 文件由原来的 80kb,变成了 1kb,犯罪嫌疑人的范围大大缩小了。 

把一个正常 xml 的里面的一个 clip 复制,粘贴并替换掉出错文件中那个唯一的 clip 段,保存,导入,正常! 

也就是说犯罪嫌疑人窝藏在 clip 标签里面。 

然后对 clip 标签里面的内容进行逐一排查(方法还是上面说的),你可以二分法,可以黄金分割法。

总之,最后我定位到了 这一行中的 “piantou”。 

难道这里暗藏什么玄机?不能 u 结尾?不能 p 打头?(这是另一个故事,某个nuke文件提交渲染农场总是报错)  

但也没听说过 Final Cut Pro 7xml 有这种规定啊。

测试验证: 

  • 改成“hahaha” √  

  • 改成“iantou” √  

  • 改成“piantoa” √  

  • 改成“piantou1” √  

改成任何字符串都没问题,只是不能叫“piantou”。太神奇了!简直匪夷所思。 

于是先把出问题的 xml 查找 并全部替换为

导入成功,先发给那个视效剪辑应应急,她还在线等着.....  

小黄鸭调试法

燃眉之急解了后,就必须揪出凶手了。 但我已经没有思路了。

于是我叫来了张来吃,把上述摸索的过程描述了一遍,然后说:

这个 “piantou” 字符串出现在 xml 哪儿哪儿都是,media 文件名字是,clip 名字也是,文件名字也是,连(滚动文件到最上面)sequence 也叫“piantou”!

啊咧,等一下,这个 sequence 也有个 id,(), 直觉告诉我,id 嘛,肯定得独一无二啊,但一个是 file, 一个是 sequence,类型不一样,难道 id 也不能冲突吗?? 

试了一下,修改 sequenceid 为 "hahaha",保存,导入,正常! 

果了个然!破案了!Hiero 的锅!

好了,来吃你可以走了。

这里,来吃就充当了程序员口中的“小黄鸭”。 

小黄鸭调试法

031965a9db7b3ba5b607ac6eb99972c2.png

总结陈词

Hiero 在导出 xml 的时候,会将 sequence 的名字,直接作为 id 值,同样,clip file 的名字,直接作为 id 值,Hiero 并没有去判断它生成的 id 是否有撞车情况。 

但是达芬奇读取 xml 的过程使用了 id 信息。

证据如下

a7a0621ee98ec635440aaa99c36a2c0d.png

2bed9b06da5f6c0849911aaff89e77c6.png

我把这段话发给了视效剪辑,让她以后注意,并建议她 sequence 换个名字(代价最小)。 

什么?让我魔改 Hiero 导出 xml 的代码? 

告辞,我和 Hiero 何必互相伤害,你等它更新就行了......  

Hiero 是太年轻,但达芬奇您老人家也不够健壮啊,就不能给点提示,直接崩也是颜面扫地。

至于说类型不同的,为何 id 也必须唯一,没啥好纠结的,只是一种选择和约定而已,靠左行驶还是靠右行驶,Final Cut Pro 7规定是啥就是啥(我也不知道白皮书有没有规定)。

尾声

有些人好奇 TD 每天都干啥。 

视效剪辑问我怎么这么神奇,每次都能找到问题答案,而且还看起来还好简单的样子,只用记事本notepad++就能解决问题,能不能教两招。

招式学了也不能生搬硬套,我就如实记录一下日常工作和解决的思路。希望可以对碰到同样问题的读者,或者类似问题的读者有帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值