10000 regression when writing m4v via ffmpeg/avconv (convert: delegate failed `'avconv' -nostdin ...) · Issue #2720 · ImageMagick/ImageMagick · GitHub
[go: up one dir, main page]

Skip to content
regression when writing m4v via ffmpeg/avconv (convert: delegate failed `'avconv' -nostdin ...) #2720
@tacaswell

Description

@tacaswell

Prerequisites

  • I have written a descriptive issue title
  • I have verified that I am using the latest version of ImageMagick
  • I have searched open and closed issues to ensure it has not already been reported

Description

We found this regression via the Matplotlib test suite so apologies for the Matplotlib/python components of this bug report.

We use subprocess to call convert (which in turns ffmeg/avconv) and then pipe rgba formatted buffers to the process to save animations.

This worked with 7.0.10-31 and fails with 7.0.10-34.

link to it faliing in our CI: https://dev.azure.com/matplotlib/matplotlib/_build/results?buildId=15079&view=logs&j=9878844f-86f0-56ff-f1e1-852bef74b1f7&t=545d203d-ae00-54f9-05d7-a7d9813d4088&l=203

Steps to Reproduce

✔ 13:02:38 $ convert -size 800x600 -depth 8 -delay 20.0 -loop 0 /tmp/test.png /tmp/temp.m4v                                                                                                                                                                                                            
convert: delegate failed `'avconv' -nostdin -v -1 -i '%M%%d.pam' -plays %I '%u.%m' 2> '%u'' @ error/delegate.c/InvokeDelegate/1898.

A simplified version of what Matplotlib does internally

This is a simpler version of what the test suite is doing:

In [1]: import subprocess

In [2]: import matplotlib.pyplot as plt

In [3]: import matplotlib

In [4]: matplotlib.use('agg')

In [5]: fig, ax = plt.subplots(figsize=(8, 6))

In [6]: cmd = ('convert', '-size', '800x600', '-depth', '8', '-delay', '20.0', '-loop', '0', 'rgba:-', '/tmp/temp2.m4v')

In [7]: PIPE = subprocess.PIPE

In [8]: proc = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)

In [9]: fig.savefig(proc.stdin, format='rgba')

In [10]: proc.communicate()
Out[10]: 
(b'',
 b"convert: delegate failed `'avconv' -nostdin -v -1 -i '%M%%d.pam' -plays %I '%u.%m' 2> '%u'' @ error/delegate.c/InvokeDelegate/1898.\n")

Can produce this on mac and linux (both py38).

System Configuration

  • ImageMagick version: 7.0.10-34
  • Environment (Operating system, version and so on): OSX (catalina), linux (arch)
  • Additional information: ffmpeg must also be installed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0