播放预览查询压缩

Playblast query compression

我正在为 Maya 开发自定义播放预览工具,但我 运行 遇到了一个小问题,即如何查询每种格式的可用压缩以执行播放预览。

我可以使用:

import pymel.core as pm

availableFormats = pm.playblast(query = True, format = True)
print availableFormats 

我得到的结果是['qt','avi','image']。很好,但现在我需要压缩选项。

当我使用

import pymel.core as pm

availableCompressions = pm.playblast(query = True, compression= True)
print availableCompressions 

我得到:

[u'Codec IYUV', u'MS-RLE', u'MS-CRAM', u'MS-YUV', u'Toshiba YUV411', u'TSCC', u'TSC2', u'none']

哪些是 'avi' 格式的压缩选项。

所以,问题:

如何查询特定格式的压缩?

我试过了:

pm.playblast(query = True, format = 'qt', compression  = True)

但它不起作用,因为,当然,查询标志只允许布尔值...

这似乎是一个 python 绑定错误。 在梅尔做:

whatIs changePlayblastFormat;
// Result: Mel procedure found in: /path/mayaxxxx/scripts/others/performPlayblast.mel //

你可以发现他们是这样查询编码格式的:

string $selectedFormat = `optionMenuGrp -q -value playblastFormatWidget`;
string $lEncodings[]   = `playblast -format $selectedFormat -q -compression`;

所以我的建议是在这种情况下使用 mel eval :

pm.mel.eval('playblast -format "{0}" -q -compression;'.format('qt'))