文档章节

CG软件调研 The Foundry旗下的HIERO

抢小孩糖吃
 抢小孩糖吃
发布于 2016/07/21 14:58
字数 1680
阅读 39
收藏 0

#HIERO介绍
The Foundry官网
HIERO官网
HIERO
HIERO将会给你一站式的镜头管理,正确性与审查的解决方案,以平滑方式支持协作并快速回退和传递。

#安装HIERO 略

#分析HIERO的导入导出 参考手册和自己测试,确定HIERO对外导入导出工程有三种方式:HIERO工程文件、EDL文件、Final Cut 7 Pro XML文件。

##Final Cut 7 Pro XML 编者载入了1个片段,并简单剪辑后,使用HIERO导出XML文件。如下是重要的代码片段。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="5">
  <sequence id="Sequence 2">
  ...
  </sequence>
</xmeml>

首先先确定了导出Sequence的XML文件能够满足当前开发需求,其后观察所导出的XML文件内容。
其次同时在查找Final Cut 7 Pro XML相关的库和代码。
通过搜索引擎,查找到Python具备Final Cut 7 Pro XML的代码库xmeml。GitHub xmeml地址

再次重新对比惊奇的发现HIERO导出的Final Cut 7 Pro XML文件的文件内容标识竟然含有xmeml标识,由于xmeml库本身已经6年未更新(最后一次更新为2010年),则有两种可能,一种是The Foundry公司导出Final Cut 7 Pro XML使用的就是GitHub上的代码,另外一种可能,是雇佣了xmeml项目的作者。

通过调试xmeml代码,对github上的测试进行输出,来确定xmeml的版本,测试代码如下:

from xmeml import VideoSequence

v2 = VideoSequence(file='examples/Mark P XML.xml')

clip2 = v2.clip(300, 500, units='seconds')

xmldom2,dumb_uuid = v2.clips2dom([clip2])

print xmldom2.toxml()

file = open('example_1.xml',mode='w')
file.write(xmldom2.toxml())
file.close()

发现输出的xmeml输出的xml文件版本为4,输出xml片段如下:

<?xml version="1.0" ?>
<xmeml version="4">
  <sequence>
  ...
  </sequence>
</xmeml>

~~则能够确定HIREO雇佣或者向xmeml作者购买了代码内容。~~由于查询了下面的内容,法线xmeml为苹果公司的规定,而不是某个人的规则
通过搜索查询到What is Final Cut Pro XML (Part Two): Compatibility作为参考

#调查结果 ##Final Cut 7 Pro XML 通过阅读What is Final Cut Pro XML (Part Two): Compatibility,查找到了Final Cut 7 Pro XML的定义文档。
Versions of XMEML and Final Cut是Final Cut 7 Pro的文档,而About Final Cut Pro X XML Version 1.5是当前使用的Final Cut X的XML文件解析。 #完整代码 ##HIERO导出的Final Cut 7 Pro XML文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="5">
  <sequence id="Sequence 2">
    <name>中文测试Sequence 2</name>
    <duration>3193</duration>
    <rate>
      <ntsc>FALSE</ntsc>
      <timebase>24</timebase>
    </rate>
    <timecode>
      <rate>
        <ntsc>FALSE</ntsc>
        <timebase>24</timebase>
      </rate>
      <frame>86400</frame>
      <displayformat>NDF</displayformat>
      <string>01:00:00:00</string>
    </timecode>
    <media>
      <video>
        <format>
          <samplecharacteristics>
            <width>1920</width>
            <height>1080</height>
            <rate>
              <ntsc>FALSE</ntsc>
              <timebase>24</timebase>
            </rate>
          </samplecharacteristics>
        </format>
        <track>
          <name>Video 4</name>
          <clipitem>
            <name>Source</name>
            <duration>2879</duration>
            <rate>
              <ntsc>FALSE</ntsc>
              <timebase>24</timebase>
            </rate>
            <enabled>TRUE</enabled>
            <in>0.0</in>
            <out>2879.0</out>
            <start>314</start>
            <end>3193</end>
            <file id="Source">
              <name>Source</name>
              <pathurl>file://localhost/D:/ZhanPeng/Source/20130827.mov</pathurl>
              <duration>2879</duration>
              <rate>
                <ntsc>FALSE</ntsc>
                <timebase>24</timebase>
              </rate>
              <width>1920</width>
              <height>1080</height>
              <media>
                <video>
                  <duration>2879</duration>
                  <samplecharacteristics>
                    <width>1920</width>
                    <height>1080</height>
                  </samplecharacteristics>
                </video>
                <audio>
                  <channelcount>2</channelcount>
                  <samplecharacteristics>
                    <depth>16</depth>
                    <samplerate>48000</samplerate>
                  </samplecharacteristics>
                </audio>
              </media>
              <timecode>
                <rate>
                  <ntsc>FALSE</ntsc>
                  <timebase>24</timebase>
                </rate>
                <frame>0</frame>
                <displayformat>NDF</displayformat>
                <string>00:00:00:00</string>
              </timecode>
            </file>
          </clipitem>
        </track>
        <track>
          <name>Video 1</name>
          <clipitem>
            <name>Source</name>
            <duration>2879</duration>
            <rate>
              <ntsc>FALSE</ntsc>
              <timebase>24</timebase>
            </rate>
            <enabled>TRUE</enabled>
            <in>0.0</in>
            <out>244.0</out>
            <start>70</start>
            <end>314</end>
            <file id="Source">
              <name>Source</name>
              <pathurl>file://localhost/D:/ZhanPeng/Source/20130827.mov</pathurl>
              <duration>2879</duration>
              <rate>
                <ntsc>FALSE</ntsc>
                <timebase>24</timebase>
              </rate>
              <width>1920</width>
              <height>1080</height>
              <media>
                <video>
                  <duration>2879</duration>
                  <samplecharacteristics>
                    <width>1920</width>
                    <height>1080</height>
                  </samplecharacteristics>
                </video>
                <audio>
                  <channelcount>2</channelcount>
                  <samplecharacteristics>
                    <depth>16</depth>
                    <samplerate>48000</samplerate>
                  </samplecharacteristics>
                </audio>
              </media>
              <timecode>
                <rate>
                  <ntsc>FALSE</ntsc>
                  <timebase>24</timebase>
                </rate>
                <frame>0</frame>
                <displayformat>NDF</displayformat>
                <string>00:00:00:00</string>
              </timecode>
            </file>
          </clipitem>
        </track>
      </video>
      <audio>
        <format>
          <samplecharacteristics>
            <depth>16</depth>
            <samplerate>48000</samplerate>
          </samplecharacteristics>
        </format>
        <track>
          <name>Audio 4</name>
          <clipitem>
            <name>Source</name>
            <duration>2879</duration>
            <rate>
              <ntsc>FALSE</ntsc>
              <timebase>24</timebase>
            </rate>
            <enabled>TRUE</enabled>
            <in>0.0</in>
            <out>2879.0</out>
            <start>314</start>
            <end>3193</end>
            <file id="Source">
              <name>Source</name>
              <pathurl>file://localhost/D:/ZhanPeng/Source/20130827.mov</pathurl>
              <duration>2879</duration>
              <rate>
                <ntsc>FALSE</ntsc>
                <timebase>24</timebase>
              </rate>
              <width>1920</width>
              <height>1080</height>
              <media>
                <video>
                  <duration>2879</duration>
                  <samplecharacteristics>
                    <width>1920</width>
                    <height>1080</height>
                  </samplecharacteristics>
                </video>
                <audio>
                  <channelcount>2</channelcount>
                  <samplecharacteristics>
                    <depth>16</depth>
                    <samplerate>48000</samplerate>
                  </samplecharacteristics>
                </audio>
              </media>
              <timecode>
                <rate>
                  <ntsc>FALSE</ntsc>
                  <timebase>24</timebase>
                </rate>
                <frame>0</frame>
                <displayformat>NDF</displayformat>
                <string>00:00:00:00</string>
              </timecode>
            </file>
          </clipitem>
        </track>
        <track>
          <name>Audio 1</name>
          <clipitem>
            <name>Source</name>
            <duration>2879</duration>
            <rate>
              <ntsc>FALSE</ntsc>
              <timebase>24</timebase>
            </rate>
            <enabled>TRUE</enabled>
            <in>0.0</in>
            <out>244.0</out>
            <start>70</start>
            <end>314</end>
            <file id="Source">
              <name>Source</name>
              <pathurl>file://localhost/D:/ZhanPeng/Source/20130827.mov</pathurl>
              <duration>2879</duration>
              <rate>
                <ntsc>FALSE</ntsc>
                <timebase>24</timebase>
              </rate>
              <width>1920</width>
              <height>1080</height>
              <media>
                <video>
                  <duration>2879</duration>
                  <samplecharacteristics>
                    <width>1920</width>
                    <height>1080</height>
                  </samplecharacteristics>
                </video>
                <audio>
                  <channelcount>2</channelcount>
                  <samplecharacteristics>
                    <depth>16</depth>
                    <samplerate>48000</samplerate>
                  </samplecharacteristics>
                </audio>
              </media>
              <timecode>
                <rate>
                  <ntsc>FALSE</ntsc>
                  <timebase>24</timebase>
                </rate>
                <frame>0</frame>
                <displayformat>NDF</displayformat>
                <string>00:00:00:00</string>
              </timecode>
            </file>
          </clipitem>
        </track>
      </audio>
    </media>
  </sequence>
</xmeml>

#附录

##201161206多序列帧XML文件格式

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="5">
    <sequence>
        <name>Timeline 1 (Resolve)</name>
        <duration>137</duration>
        <rate>
            <timebase>24</timebase>
            <ntsc>false</ntsc>
        </rate>
        <in>-1</in>
        <out>-1</out>
        <timecode>
            <string>01:00:00:00</string>
            <frame>86400</frame>
            <displayformat>NDF</displayformat>
            <rate>
                <timebase>24</timebase>
                <ntsc>false</ntsc>
            </rate>
        </timecode>
        <media>
            <video>
                <track>
                    <clipitem id="未命名[00086414-00086550].dpx 0">
                        <name>未命名[00086414-00086550].dpx</name>
                        <duration>137</duration>
                        <rate>
                            <timebase>24</timebase>
                            <ntsc>false</ntsc>
                        </rate>
                        <start>0</start>
                        <end>137</end>
                        <enabled>true</enabled>
                        <in>0</in>
                        <out>137</out>
                        <file id="未命名[00086414-00086550].dpx 2">
                            <duration>137</duration>
                            <rate>
                                <timebase>24</timebase>
                                <ntsc>false</ntsc>
                            </rate>
                            <name>未命名[00086414-00086550].dpx</name>
                            <pathurl>file://localhost/D:/ZhanPeng/Render/%E6%9C%AA%E5%91%BD%E5%90%8D[00086414-00086550].dpx</pathurl>
                            <timecode>
                                <string>01:00:00:14</string>
                                <displayformat>NDF</displayformat>
                                <rate>
                                    <timebase>24</timebase>
                                    <ntsc>false</ntsc>
                                </rate>
                            </timecode>
                            <media>
                                <video>
                                    <duration>137</duration>
                                    <samplecharacteristics>
                                        <width>1920</width>
                                        <height>1080</height>
                                    </samplecharacteristics>
                                </video>
                            </media>
                        </file>
                        <compositemode>normal</compositemode>
                        <filter>
                            <enabled>true</enabled>
                            <start>0</start>
                            <end>137</end>
                            <effect>
                                <name>Opacity</name>
                                <effectid>opacity</effectid>
                                <effecttype>motion</effecttype>
                                <mediatype>video</mediatype>
                                <effectcategory>motion</effectcategory>
                                <parameter>
                                    <name>opacity</name>
                                    <parameterid>opacity</parameterid>
                                    <value>100</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>100</valuemax>
                                </parameter>
                            </effect>
                        </filter>
                        <filter>
                            <enabled>true</enabled>
                            <start>0</start>
                            <end>137</end>
                            <effect>
                                <name>Basic Motion</name>
                                <effectid>basic</effectid>
                                <effecttype>motion</effecttype>
                                <mediatype>video</mediatype>
                                <effectcategory>motion</effectcategory>
                                <parameter>
                                    <name>Scale</name>
                                    <parameterid>scale</parameterid>
                                    <value>100</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>10000</valuemax>
                                </parameter>
                                <parameter>
                                    <name>Center</name>
                                    <parameterid>center</parameterid>
                                    <value>
                                        <horiz>0</horiz>
                                        <vert>0</vert>
                                    </value>
                                </parameter>
                                <parameter>
                                    <name>Rotation</name>
                                    <parameterid>rotation</parameterid>
                                    <value>0</value>
                                    <valuemin>-100000</valuemin>
                                    <valuemax>100000</valuemax>
                                </parameter>
                                <parameter>
                                    <name>Anchor Point</name>
                                    <parameterid>centerOffset</parameterid>
                                    <value>
                                        <horiz>0</horiz>
                                        <vert>0</vert>
                                    </value>
                                </parameter>
                            </effect>
                        </filter>
                        <filter>
                            <enabled>true</enabled>
                            <start>0</start>
                            <end>137</end>
                            <effect>
                                <name>Crop</name>
                                <effectid>crop</effectid>
                                <effecttype>motion</effecttype>
                                <mediatype>video</mediatype>
                                <effectcategory>motion</effectcategory>
                                <parameter>
                                    <name>left</name>
                                    <parameterid>left</parameterid>
                                    <value>0</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>100</valuemax>
                                </parameter>
                                <parameter>
                                    <name>right</name>
                                    <parameterid>right</parameterid>
                                    <value>0</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>100</valuemax>
                                </parameter>
                                <parameter>
                                    <name>top</name>
                                    <parameterid>top</parameterid>
                                    <value>0</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>100</valuemax>
                                </parameter>
                                <parameter>
                                    <name>bottom</name>
                                    <parameterid>bottom</parameterid>
                                    <value>0</value>
                                    <valuemin>0</valuemin>
                                    <valuemax>100</valuemax>
                                </parameter>
                            </effect>
                        </filter>
                    </clipitem>
                    <enabled>true</enabled>
                    <locked>false</locked>
                </track>
                <format>
                    <samplecharacteristics>
                        <width>1920</width>
                        <height>1080</height>
                        <pixelaspectratio>square</pixelaspectratio>
                        <rate>
                            <timebase>24</timebase>
                            <ntsc>false</ntsc>
                        </rate>
                        <codec>
                            <appspecificdata>
                                <appname>Final Cut Pro</appname>
                                <appmanufacturer>Apple Inc.</appmanufacturer>
                                <data>
                                    <qtcodec/>
                                </data>
                            </appspecificdata>
                        </codec>
                    </samplecharacteristics>
                </format>
            </video>
            <audio>
                <track>
                    <enabled>true</enabled>
                    <locked>false</locked>
                </track>
            </audio>
        </media>
    </sequence>
</xmeml>

© 著作权归作者所有

抢小孩糖吃

抢小孩糖吃

粉丝 70
博文 244
码字总数 235322
作品 0
东城
程序员
私信 提问
Nuke 11 for Mac(电影CG特效合成软件)附nuke破解补丁和破解教程

NUKE 11 for Mac破解版是一款专业的基于节点的电影CG特效合成软件,通过使用NUKE,可以让用户轻松执行多个合成任务,NUKE还具有内置的线性色彩管道和专为CG合成而设计的多通道工作流程,而且...

_己念
2018/07/23
0
0
CG软件调研 SAM旗下的Pablo

Quantel Pablo介绍 在一段时间以前,Pablo是属于Quantel公司旗下的专业级视频软件,支持2-4k的视频的实时处理。之后Quantel公司与其他公司进行了合并,形成了S-A-M公司。 Pablo 对高清、2K、...

抢小孩糖吃
2016/08/02
7
0
疯狂ios之cocos2d中的文本

在游戏当中,经常需要添加标签和文本,对此cocos2d提供了强大的文本渲染功能。cocos2d支持所有内置的iOS字体以及一些TrueType字体。 在cocos2d中,文本渲染功能通常由两个类实现:CCLabelTT...

博文视点
2014/04/16
255
0
疯狂ios之cocos2d中的文本

在游戏当中经常需要添加标签和文本对此cocos2d提供了强大的文本渲染功能。cocos2d支持所有内置的iOS字体以及一些TrueType字体。 在cocos2d中文本渲染功能通常由两个类实现CCLabelTTF和CCLab...

fkJava李刚
2018/06/26
0
0
适用于Hiero软件的XML控制多轨排列与视频排列

编者注: 这个测试用于确定,hiero软件是否符合自动化生成测试序列的功能排序 概念 xmeml:Final Cut 定义的xml文件格式,5版本用于Final Cut Pro 7 sequence:完整序列,用于表示整条时间线...

抢小孩糖吃
2016/08/01
12
0

没有更多内容

加载失败,请刷新页面

加载更多

《生活的难题》的读后感3600字范文

《生活的难题》的读后感3600字范文: 假如我们对丑的事物也能够像对待美的事物那般抱持一种开放、接纳的心态,拥有相同的感受力,那么我们便会发现它们都是充满意义的,而这种认识会使生活变...

原创小博客
12分钟前
1
0
Linux learn(四)

7. Linux磁盘与文件系统管理 文件系统通常会将数据放在不同的区块,权限与属性放置到inode中,至于实际数据则放到datab lock区块中,另外,还有一个超级区块(superblock)会记录整个文件系统...

lazy~
20分钟前
1
0
微信公众号开发(四)

微信公众号开发时常需要一个用户授权绑定的过程。关于微信公众号的用户绑定,一般有如下两种实现方式: (1)通过发送短信验证码的方式; (2)使用用户登录时,向后端传递openid的方式。 使...

织梦之魂
今天
3
0
设计模式-工厂模式

工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端...

HOT_POT
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部