Yot*_*tam 109 graphics imagemagick conversion
是否有gif
从一组png
文件创建动画的工具?
我尝试了ImageMagick套件中的convert
命令,但这并不总是成功。另外,我对此有几个问题:
-delay
标志都不会改变 gif 动画的帧速率。convert
根据文件名的字母顺序确定帧顺序。这意味着name500.png
将name50.png
在name450.png
我可以通过添加 0 解决此问题之后而不是之后放置,但这很烦人。Rob*_*inJ 107
convert
是一个方便的命令行工具来做到这一点。
cd
到包含png文件的文件夹并运行以下命令:
convert -delay 10 -loop 0 *.png animation.gif
Run Code Online (Sandbox Code Playgroud)
来源:http : //ubuntuforums.org/showthread.php?t=1132058
小智 60
较新版本的 ffmpeg 没有 -sameq(请参阅 faq),但有 GIF 支持。
Run Code Online (Sandbox Code Playgroud)ffmpeg -i %03d.png output.gif
其中 %03d 是 3 位数的帧 ID。
您也可以尝试使用ffmpeg
从一系列图像中创建电影,然后将电影转换为 GIF 动画(再次使用ffmpeg
)。
# cf. http://pages.uoregon.edu/noeckel/MakeMovie.html
# first convert an image sequence to a movie
ffmpeg -sameq -i %03d.jpg output.mp4
# ... and then convert the movie to a GIF animation
ffmpeg -i output.mp4 -pix_fmt rgb24 -s qcif -loop_output 0 output.gif
Run Code Online (Sandbox Code Playgroud)
Bat*_*hyX 22
该convert
的--delay
选项仅适用于在命令行下一个图像。所以convert -delay 10 *
只会将第一帧的延迟设置为 0.1 秒。该选项需要重复:
convert $(for a in *; do printf -- "-delay 10 %s " $a; done; ) result.gif
Run Code Online (Sandbox Code Playgroud)
对于您的排序需要, convert 不会对帧进行排序,而 shell globing*
会排序。如果你知道你的帧编号从 0 到 700,你可以自己计算这些数字:
convert $(for ((a=0; a<700; a++)); do printf -- "-delay 10 name%s.png " $a; done;) result.gif
Run Code Online (Sandbox Code Playgroud)
Cir*_*郝海东 11
ffmeg 重要的 GIF 选项 + 测试数据
为了补充这个答案:
wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
ffmpeg \
-framerate 60 \
-pattern_type glob \
-i 'tmp.*.png' \
-r 15 \
-vf scale=512:-1 \
out.gif \
;
Run Code Online (Sandbox Code Playgroud)
测试数据是通过以下方式生成的:https : //stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
ffmpeg
我想强调的重要选项是:
-patter_type glob
:选择图像的便捷方式-framerate 60
和-r 15
:假设输入图像为 60 FPS(ffmpeg
因为在视频格式中没有图像中的 FPS 数据,因此无法知道其他情况),每 4 个图像选择一个以减小尺寸 ( 4 == 60 / 15
)-vf scale=512:-1
:按比例设置宽度、缩放高度,通常是为了缩小尺寸和节省空间也可以看看:
在 Ubuntu 18.10、ffmpeg 4.0.2 中测试。
归档时间: |
|
查看次数: |
170452 次 |
最近记录: |