batchdelivery 0.4.1 EXR → MOV Nuke transcode writes one MOV per frame

EXR seq → MOV in batchdelivery 0.4.1, three bugs in extract_offloaded_transcode.py (transcoder backend, not template):

  • Line 285-286 adds #### to the Write node file regardless of output extension. nuke_template_processor.py around in line 319-325 already has the right VIDEO_EXTENSIONS check (it's already imported at the top).

  • nuke_transcoder.py doesn't set job["output_extension"] like nuke_template_processor.py in line 338 does, so the downstream representation collapse at lines 921-966 never runs for the transcoder backend. Result: ext=mov but files keeps the 34 EXR names → IntegrateDeliveryProduct FileNotFoundError trying to copy nonexistent EXRs.

  • After setting output_extension, the collapse at lines 947-950 calls clique.assemble without checking length. A single-file list raises IndexError. We used a len(files) > 1 guard.

We tested and patched locally and EXR seq → ProRes 4444 XQ now lands as a single MOV in publish.

Lines 282-291, replacing the original if file_type and (is_sequence or is_video): block:

        is_video_output = (
            bool(file_type) and f".{file_type}" in VIDEO_EXTENSIONS
        )

        if file_type and (is_sequence or is_video) and not is_video_output:
            write_node_file_name = (
                f"{file_head}{'#' * padding}.{file_type}"
            )
        elif is_video_output:
            write_node_file_name = f"{file_head.rstrip('.')}.{file_type}"

        if "#" in write_node_file_name:
            new_repre_files = convert_hashed_filename(
                write_node_file_name, frame_start, frame_end)

Added just before self.log.info(f"Nuke job data: ...") near the end of _prepare_job_data:

        if is_video_output:
            job_data["output_extension"] = f".{file_type}"
            new_repre_files = [write_node_file_name]

Line ~947, adding len(files) > 1 to the downstream collapse condition:

                    if (
                        isinstance(files, list)
                        and len(files) > 1
                        and output_extension in VIDEO_EXTENSIONS
                    ):

Please authenticate to join the conversation.

Upvoters
Status

In Review

Board
🐛

Bugs

Author

Matti Kaihola

Subscribe to post

Get notified by email when there are changes.