Skip to content

Need PyAv minimum to be 14.2.0 to support remuxing #7869

@christian-byrne

Description

@christian-byrne

Expected Behavior

Install pyav from the requirements.txt and Video nodes can successfuly remux without decode and re-encode.

Actual Behavior

An error occurs because remuxing via copying codex context / stream attributes requires a change that didn't land until PyAv 14.2.0:

The requirements allows 14.1.0:

https://github.com/comfyanonymous/ComfyUI/blob/5c5457a4ef151f9f855020ff544b4362cdcf1201/requirements.txt#L25

Steps to Reproduce

  1. pip install av==14.1.0 (minimum allowed in requirements)
  2. Construct VideoFile using bytes as input
  3. Send to SaveVideo node
  4. Then install 14.2.0 and observe that it works correctly.

Debug Logs

Traceback (most recent call last):
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/execution.py", line 347, in execute
    output_data, output_ui, has_subgraph = get_output_data(obj, input_data_all, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/execution.py", line 222, in get_output_data
    return_values = _map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True, execution_block_cb=execution_block_cb, pre_execute_cb=pre_execute_cb)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/execution.py", line 194, in _map_node_over_list
    process_inputs(input_dict, i)
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/execution.py", line 183, in process_inputs
    results.append(getattr(obj, func)(**inputs))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/comfy_extras/nodes_video.py", line 131, in save_video
    video.save_to(
  File "/home/c_byrne/projects/comfy-testing-environment/ComfyUI-private/comfy_api/input_impl/video_types.py", line 137, in save_to
    out_stream = output_container.add_stream_from_template(template=stream, opaque=True)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "av/container/output.pyx", line 187, in av.container.output.OutputContainer.add_stream_from_template
  File "av/stream.pyx", line 127, in av.stream.Stream.__setattr__
AttributeError: 'av.video.codeccontext.VideoCodecContext' object has no attribute 'opaque'

Other

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Potential BugUser is reporting a bug. This should be tested.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions