命令行工具的三把瑞士军刀

前言

数字时代我们常会和文字,图片,视频打交道。
而作为一个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。