如何在Python Foundry Nuke中读写带音频的视频并合并音视频?
Nuke Python 合并音视频无输出问题修复
核心原因
Nuke 的视频与音频采用独立处理管线,Merge 节点仅负责图像数据合并,不会自动同步处理音频流,原代码未配置音频处理节点、也未开启 Write 节点的音频输出参数,因此最终输出只有视频内容。
修复后代码
import nuke # 读取两个源素材 content = nuke.createNode("Read") content["file"].fromUserText("/content.mp4") bg = nuke.createNode("Read") bg["file"].fromUserText("/bg.mov") # 合并视频流 merged_video = nuke.nodes.Merge(inputs=[bg, content]) # 合并音频流:使用AudioMix节点合并两路音频 merged_audio = nuke.nodes.AudioMix(inputs=[bg, content]) # 如需自定义声道映射可调整以下参数,例:两路音频分别映射到左右声道 # merged_audio["mapping"].setValue([0, 1, 2, 3]) # 按需调整索引 # 配置Write节点,同时指定视频和音频输入,开启音频输出 output = nuke.nodes.Write( file="/output.mov", inputs=[merged_video], audio_input=merged_audio, enable_audio=True, audio_codec="aac", # 匹配mov容器的常用音频编码 audio_bitrate=192000 ) nuke.render(output)
注意事项
- 请确保两个输入素材的音频采样率、位深一致,避免合并时出现音频异常
- 若输出为其他容器格式(如mp4),可按需调整
audio_codec参数匹配容器规范 - 如果需要单独调整某一路音频的音量,可在AudioMix节点前添加AudioGain节点分别控制
内容的提问来源于stack exchange,提问作者shpindler
相关产品推荐
相关产品推荐

