尝试使用ImageMagick将200个jpg文件转换为mp4,但一直收到相同的错误提示。

9

我正在尝试将200个.ppm文件转换为一个.mp4文件。

在与.jpg文件相同的目录下,我运行了以下代码:

convert -delay 6 -quality 95 test*ppm movie.mp4

我收到了以下错误信息:

convert: no images defined `movie.mp4' @ error/convert.c/ConvertImageCommand/3210.

这个错误是什么原因引起的?

在运行命令的目录中,图片的文件扩展名是 .jpg 吗? - Bryan Reilly
1
您的ImageMagick安装中是否有ffmpeg作为委托库?MPEG格式要求ImageMagick具有ffmpeg作为委托库。您应该在convert -version的委托部分中看到mpeg。请参阅http://www.imagemagick.org/script/formats.php#supported中MPEG部分的注释。 - fmw42
5个回答

14

没事了,我最终用了 ffmpeg。这是我使用的代码:

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4

1
glob 在 POSIX 标准中定义,但在 Windows 上默认情况下不可用。 - Franck Dernoncourt
“-pattern_type glob” 和 “-c:v” 是什么意思? - tommy.carstensen

3

根据我所读的,您正在运行命令的图像具有 .jpg 后缀。

尝试:

convert -delay 6 -quality 95 *.jpg movie.mp4

5
很遗憾,我收到了这个错误信息:convert: delegate failed \"avconv" -v -1 -i "%M%%d.jpg" "%u.%m" 2> "%Z"' @ error/delegate.c/InvokeDelegate/1310.` - fmartin
convert -delay 600 *.png movie.mp4 在我的电脑上运行成功了(600 表示 6 秒)。 - Franck Dernoncourt

2

sudo apt install ffmpeg


ImageMagick可以委托处理视频。我花了超过5个小时才明白为什么会出现NotIdentifiedByImageMagickError这样的错误。


0

简而言之

使用 \lsls --color=never 来获取无颜色的文件列表

命令执行失败...

for f in $( ls *.JPG ); do convert -resize 1920x $f re_$f ; done

转换为

for f in $( ls --color=never *.JPG ); do convert -resize 1920x $f re_$f ; done

细节

我遇到了同样的错误,是由于ls命令的彩色输出:

我得到的错误信息(用法语):

$ for f in $( ls *.JPG ); do convert -resize 1920x $f re_$f ; done
convert: pas de délégué pour décoder ce format d'image `JPG' @ error/constitute.c/ReadImage/501.
convert: pas d'images définies `IMG_5235.JPG' @ error/convert.c/ConvertImageCommand/3210.
convert: impossible d'ouvrir l'image `IMG_5236.JPG': Aucun fichier ou dossier de ce type @ error/blob.c/OpenBlob/2712.

文件名的颜色与此屏幕截图相似:

enter image description here

我的 ls 命令别名为 ls --color=auto,这会导致文件参数包含颜色序列。

使用 \ls 命令来禁用带颜色的 ls 输出:

for f in $( \ls *.JPG ); do convert -resize 1920x $f re_$f ; done

或者:

for f in $( ls --color=never *.JPG ); do convert -resize 1920x $f re_$f ; done

那么转换可能不会显示之前的错误。 希望这可以帮到你。


0

正确的语法是:

convert src_file [options] dst_file

所以在你的情况下,应该是这样的:

convert movie.mp4 -delay 6 -quality 95 test*ppm movie_converted.mp4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接