命令行工具的三把瑞士军刀
命令行工具的三把瑞士军刀
lingyun前言
数字时代我们常会和文字,图片,视频打交道。
而作为一个cg工作者,你可能时常会有下面的需求:
- 批量将一堆4k的材质贴图转成2k
- 将exr序列帧转换成更轻便的jpg进行预览
- 批量给序列帧更名
- 把mov视频转换成序列帧
- 将写好的doc文档转换为pdf格式
- 合并一堆mov视频
面对这样的需要,我们或许会打开Nuke等DCC软件进行转换输出,
或是@公司TD写一个批量工具,但其实对于以上需求,
使用命令行工具,输入一行命令即可达到上述的目的。
下面为大家安利和介绍三款命令行工具,
它们包含了对文字,图片,音频和视频的处理,
有着命令行界的瑞士军刀称号。
分别是:
- ffmpeg
- imagemagick
- pandoc
FFmpeg
一款处理音频和视频的命令行工具。
官网:https://ffmpeg.org/
Windows用户可以直接从官网下载安装包,双击安装即可。
Mac用户可以使用brew install ffmpeg
进行安装。
Linux用户…应该有自己动手安装的能力。
下面说几个常用的命令:
转码
这里是将mov格式转码为mp4格式。
1 | ffmpeg -i input.mov output.mp4 |
视频转序列帧
1 | ffmpeg -i video.mov frames.%04d.jpg |
序列帧转为视频
1 | ffmpeg -i /test/test.%04d.jpg -vcodec mpeg4 test.mov |
这里的vcodec参数是指定的视频编码器。
合并视频
这里是将三个视频 01.mp4,02.mp4,03.mp4合并成一个。
1 | ffmpeg -i "concat:01.mp4|02.mp4|03.mp4" -c copy out.mp4 |
给视频添加水印
将logo.png作为水印,添加到离左上角(顶部和左边)分别20个像素位置。
1 | ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=20:20" out.mp4 |
截取一部分视频作为gif动图
将视频的7.5秒到8.5秒截取,输出gif动图。
1 | ffmpeg -i in.mp4 -ss 7.5 -to 8.5 -s 640x320 out.gif |
关于这个工具包,它还包含了下面几个工具:
- ffmpeg: 转换,操作流媒体
- ffplay: 简单的流媒体播放器
- ffprobe: 媒体参数分析工具
ImageMagick
处理图片的命令行工具。
官网: https://imagemagick.org/script/index.php
安装方式同上,windows下载双击安装。
Mac的话brew install imagemagick
同样介绍几个常用的操作:
批量将图片尺寸缩至50%
这个操作可以将当前目录所有4k的贴图转换为2k
-format参数为jpg格式,可以替换成任意的图片格式。
1 | magick mogrify -format jpg -resize 50% *.jpg |
(注意:此方法会覆盖原本的图片)
如果不希望被覆盖,可以用下面命令指定一个新的文件夹,
存储缩放后的图片,这里的newdir是新文件夹的路径。
1 | magick mogrify -path newdir -resize 50% /inputFolder/*.jpg |
批量将图片转换格式
这里是将文件夹下所有jpg文件转换为png,并重命名为test2。
(所以这个操作也可以用作序列帧批量重命名)
1 | magick test/*.jpg test2/test2.%04d.png |
旋转图片
将input.png逆时针旋转90度,并输出新文件output.png。
1 | magick convert input.png -rotate -90 output.png |
它也可以进行批量旋转操作:
1 | magick mogrify -path newdir -rotate -90 *.png |
压缩图片质量
这里的quality参数表示,降低图片的质量为70%
1 | magick convert -quality 70 input.jpg output.jpg |
将图片打包成pdf
将当前目录下所有jpg图片,打包成一个pdf格式。
1 | magick *.jpg output.pdf |
ImageMagick的强大之处不止这些,套用官方的话,
它是一款创建、编辑、合成,转换图像的命令行工具。
支持格式超过 200 种,功能包括调整,翻转,镜像(mirror),旋转,扭曲,
修剪和变换图像,调整图像颜色,应用各种特殊效果,或绘制文本,
线条,多边形,椭圆和贝塞尔曲线等。
上述命令是我自己常用的一些,有兴趣的话也可以去搜索更多的用法。
Pandoc
是一款处理文本文档的工具。
官网:https://pandoc.org/index.html
它可以将文档在 Markdown、LaTeX、reStructuredText、HTML、Word docx 等多种标记格式之间相互转换,并支持输出 PDF、EPUB、HTML 幻灯片等多种格式。
安装方法和上述两款命令行工具一样。
对于Mac:brew install pandoc
关于它我最常用的是将markdown格式的文件转换成pdf,方便分享给朋友。
下面也列出几个基本命令:
将markdown文档转换为pdf格式
1 | pandoc input.md -o output.pdf |
pandoc在进行对pdf转换的时候,无法处理Unicode字符,
有需要的朋友参考这篇博客的解决方法:
https://jdhao.github.io/2017/12/10/pandoc-markdown-with-chinese/
将markdown转换为docx文档
1 | pandoc input.md -o output.docx |
关于pandoc的介绍基本就到这里,因为我自己用的也很少。
总结
希望这篇文章可以帮助大家提高工作效率,早点下班!
觉得文章还不错,可以关注这个公众号thx。