如何使用 ffmpeg 将 svg 转换为 png?

如何使用 ffmpeg 将 svg 转换为 png?

有没有办法转换SVG文件到png在 Windows 10 64 位上使用 ffmpeg?

我显然尝试了 ffmpeg -i“file.svg”“file.png”,但它默认不起作用。

也许有什么办法可以让它工作?找不到任何适用于 win10 的东西。

用户可以使用什么工具--enable-librsvg来做?有命令吗?还是必须下载某些东西?

编辑:

如果没有 ffmpeg,任何可以在 win10 上运行的东西都受到欢迎,只要我可以一次转换大量 svg 文件。

答案1

最好的选择是使用 Inkscape 的命令行模式:

"C:\Program Files\Inkscape\bin\inkscape.exe" -o compass.png -w 1440 compass.svg

完整手册页在这里:

https://inkscape.org/doc/inkscape-man.html

据我所知,要一次处理多张图片,需要将其包装在批处理文件中的循环中。可能是这样的:

FOR %%I in (*.svg) DO "C:\Program Files\Inkscape\bin\inkscape.exe" -o %%~nI.png -w 1440 %%I

编辑:

您还可以使用 Inkscape 的 --shell 模式:

输入文件(我们称之为 input.txt)应该看起来像这样:

file-open:0001.svg;export-filename:0001.png;export-do;file-close;
file-open:0002.svg;export-filename:0002.png;export-do;file-close;
file-open:0003.svg;export-filename:0003.png;export-do;file-close;
file-open:0004.svg;export-filename:0004.png;export-do;file-close;
quit-inkscape;

把您想要的输入和输出文件放入其中(虽然我发现一次最多只能放入 300 个文件,因为有时它会挂起)。SVG 文件必须已经存在,并且会创建 PNG 文件。

你可以像这样运行它:

cd /path/to/folder/with/svgs
cat input.txt | inkscape --shell

或者,对于 Windows:

cd C:\path\to\folder\with\svgs
type input.txt | inkscape.exe --shell

我最终将其放入 Python 模块中。单线程版本:

https://github.com/clawsoon/chromosome_movie/blob/master/chromosome_movie/svg2png_basic.py

多线程版本并行运行多个 Inkscape 实例,以便利用多个核心,因为 Inkscape 本身似乎仅限于单个核心:

https://github.com/clawsoon/chromosome_movie/blob/master/chromosome_movie/svg2png.py

我使用这个 Python 模块为这个视频系列处理了近一百万个 SVG:

https://www.youtube.com/watch?v=YbYzvS45vYI&list=PL0elTBjXjW_7oDLwWQCaDxKPSzCus5fAB

相关内容