如何在 Python Foundry Nuke 中读写带音频的视频?
How to read and write video with audio in Python Foundry Nuke?
我需要在 Python Nuke 中合并 2 个视频,但我也想合并它们的音频通道。但是 Nuke 在 运行 下面的代码之后只读取和写入他们的视频而根本没有音频:
import nuke
content = nuke.createNode("Read")
content["file"].fromUserText("/content.mp4")
bg = nuke.createNode("Read")
bg["file"].fromUserText("/bg.mov")
merged = nuke.nodes.Merge(inputs=[bg, content])
output = nuke.nodes.Write(file="/output.mov", inputs=[merged])
nuke.render(output)
Foundry NUKE 不是视频编辑器,它是一个合成包。因此,如果您需要将音频组件与视频组件合并,请使用具有相应路径的 Audio File
选项(您可以读取相同的 .mov
文件或选择单独的音频文件)。
您的代码应该是这样的(我使用 .mov
文件和 Apple ProRes 4x4 编解码器):
import nuke
nuke.nodes.Read(file="/Users/swift/Desktop/TESTED.mov", last=1800)
output = nuke.nodes.Write(file="/Users/swift/Desktop/nuke1920.mov",
file_type="mov",
mov64_audiofile="/Users/swift/Desktop/TESTED.mov")
nuke.render(output)
脚本编辑器的输出面板没有错误:
或者,如果您需要使用音频工具,请使用 NUKE Studio。
P.S.
考虑到非商业版 NUKE 支持的输出分辨率不超过 1920x1080。 Non-Commercial NUKE 不支持 mp4
编解码器,以及处理超过 10 个节点的 Python 脚本。
还有一件事 – 您正在尝试渲染 2 个视频,但您只输出 3 个通道 – RGB。确保为 A 流和 B 流设置了合适的频道!我不知道你想要完成什么,但你可以使用 Copy
节点而不是 Merge
节点来渲染 2 组 RGB。
我需要在 Python Nuke 中合并 2 个视频,但我也想合并它们的音频通道。但是 Nuke 在 运行 下面的代码之后只读取和写入他们的视频而根本没有音频:
import nuke
content = nuke.createNode("Read")
content["file"].fromUserText("/content.mp4")
bg = nuke.createNode("Read")
bg["file"].fromUserText("/bg.mov")
merged = nuke.nodes.Merge(inputs=[bg, content])
output = nuke.nodes.Write(file="/output.mov", inputs=[merged])
nuke.render(output)
Foundry NUKE 不是视频编辑器,它是一个合成包。因此,如果您需要将音频组件与视频组件合并,请使用具有相应路径的 Audio File
选项(您可以读取相同的 .mov
文件或选择单独的音频文件)。
您的代码应该是这样的(我使用 .mov
文件和 Apple ProRes 4x4 编解码器):
import nuke
nuke.nodes.Read(file="/Users/swift/Desktop/TESTED.mov", last=1800)
output = nuke.nodes.Write(file="/Users/swift/Desktop/nuke1920.mov",
file_type="mov",
mov64_audiofile="/Users/swift/Desktop/TESTED.mov")
nuke.render(output)
脚本编辑器的输出面板没有错误:
或者,如果您需要使用音频工具,请使用 NUKE Studio。
P.S.
考虑到非商业版 NUKE 支持的输出分辨率不超过 1920x1080。 Non-Commercial NUKE 不支持
mp4
编解码器,以及处理超过 10 个节点的 Python 脚本。还有一件事 – 您正在尝试渲染 2 个视频,但您只输出 3 个通道 – RGB。确保为 A 流和 B 流设置了合适的频道!我不知道你想要完成什么,但你可以使用
Copy
节点而不是Merge
节点来渲染 2 组 RGB。