一行命令,搞定常见图片、音频、视频、文本格式转换 - 少数派

标签: | 发表时间:2020-06-20 08:30 | 作者:
出处:https://sspai.com



工作时我常常需要把一个图片、视频或文本文件转换成其他格式,或者需要把一大堆同样后缀名的文件转换成其他格式,这时,再打开一个软件要么有点得不偿失,要么一个个点按非常繁琐。几番寻找,我发现了下面这些全平台命令行工具,安装后,只要一行命令,就能搞定简单的文件格式转换。

图片:ImageMagick

ImageMagick是一款几乎全能的图片处理套件,它能完成图片的创建、编辑、对比工作,当然,转换格式也不在话下。软件开源、免费,并且全平台覆盖,在官方网站下载安装对应版本后,在终端输入 magick有返回值说明安装成功。推荐使用软件包管理器安装:

# macOS 需要安装 Ghostscript fonts 
$ brew install ghostscript 
$ brew install imagemagick 
# Windows 两条命令二选一,需要安装对应的包管理器 
$ scoop install imagemagick 
$ choco install imagemagick

该工具可以转换所有常用图片格式,例如 PNG、JPG、ICO、SVG。命令行使用非常简单,格式是 magick 待转换图片路径 输出图片路径.后缀名,举例来说,将 A.png,转换成后缀为 jpg 的文件,在文件所在目录打开终端,命令为:

$ magick A.png A.jpg

FormatConvert1

对于 Windows 用户,可以使用 clipboard:变量表示剪贴版,下面这个命令表示将剪贴板中的图片输出为 B.jpg:

$ magick clipboard: B.jpg #执行此命令请确认剪贴板首位是图片

你也可以使用一些参数对图片进行处理,例如,-resize 表示缩放,-quality 表示输出质量,下面这行命令将 A.jpg 缩小 50%,并以 50% 的质量输出,对图片进行了压缩;

$ magick A.jpg -resize 50% -quality 50 B.jpg

音频、视频:FFmpeg

鼎鼎大名的 FFmpeg 是许多视频播放、剪辑软件的基石。软件本身也能完成视频的录制、转换、串流等一系列工作,你可以从  官方网站 下载安装包,但同样推荐使用软件包管理器安装,只需要把前文 install 后面的参数改成 ffmpeg 即可。

下面这行命令把 A.mkv 转换成为了 A.mp4,这样才能拖进某些剪辑软件的媒体库进行剪辑:

$ ffmpeg -i A.mkv A.mp4

「-i」后面输入待转换文件,最后填上输出文件名称、格式即可。除了视频格式以及音频格式的的转换,你还可以将视频文件转换为音频文件,这样就可以不用在剪辑软件中「分离音频轨」然后单独保存了,在处理一些 MV 或者语言类节目时非常实用:

$ ffmpeg -i .\Revenge.webm demo.mp3 #将 Revenge.webm 这个 MV 转换成了 mp3 歌曲

FormatConvert2

文本:Pandoc

想必你可能在其他文本处理软件中看到过它的身影,这是一款专门转换文本格式的命令行工具。支持的格式非常之多,常用的有 txt、docx、html、pdf、md、pptx,官方还画了一个 巨大网状图详细展示了其所有支持的格式。下载地址 在这里

转换命令为 pandoc 待转换文件 -o 输出文件.后缀名,下面两行命令,将 sspai.md 转换成了 word 文档,又把 word 文档转换成了网页文件:

$ pandoc sspai.md -o sspai.docx $ pandoc sspai.docx -o sspai.html

FormatConvert3

转换效果如下,右边是转换后的 Word 文档:

Formatconvert4

软件还支持读取网页并转换成其他格式,例如,将 少数派编辑器使用指南这篇文章转换为本地的 sspai.md,会保留页眉页脚等信息,对于下载一些结构简单的博客十分有用:

$ pandoc https://sspai.com/post/37790 -o author.md

PDF 格式处理需要 LaTeX 辅助,可以按需求下载。但不建议使用 Pandoc 进行 PDF 转换,体验不太好。简单需求使用电脑自带的打印功能即可。

结语

此外,这些工具都支持批量文件处理,可以使用一些通配符(*,%d 等)表示待转换文件,这样就能快速完成一些重复的工作。

文本介绍的是这些软件初级的用法,对于轻量使用已经足够了,复杂需求依靠有 UI 的专业软件会更好,他们可调试,可实时预览效果,体验更佳。如果想要学习进阶内容,可以翻看官方文档:

  1. imagemagick: https://imagemagick.org/script/command-line-processing.php
  2. ffmpeg: https://ffmpeg.org/ffmpeg.html
  3. Pandoc: https://pandoc.org/MANUAL.html

(文章头图: https://imagemagick.org/image/wizard.png


相关 [命令 常见 图片] 推荐:

一行命令,搞定常见图片、音频、视频、文本格式转换 - 少数派

- -
工作时我常常需要把一个图片、视频或文本文件转换成其他格式,或者需要把一大堆同样后缀名的文件转换成其他格式,这时,再打开一个软件要么有点得不偿失,要么一个个点按非常繁琐. 几番寻找,我发现了下面这些全平台命令行工具,安装后,只要一行命令,就能搞定简单的文件格式转换. ImageMagick是一款几乎全能的图片处理套件,它能完成图片的创建、编辑、对比工作,当然,转换格式也不在话下.

feh: 命令行图片查看器

- Grotteschi - LinuxTOY
看到有人询问命令行下图片查看器,特将自己使用的 feh 分享一下. 支持多图幻灯片浏览,可以读取文件夹以及播放列表. 全屏模式支持,并且可以像数码相框一样定时更换. 在指定浏览某路径时,会自动忽略非图片文件,并且只将当前打开的图片加载入内存. 当然,经过简单的配置,feh 也可以和图形化的文件管理器如 Nautilus 和 Dolphin 协作,做为默认图片查看器.

处理网页图片最常见的10个错误及其解决方案

- - 极客521 | 极客521
对于任何一个现代网站来说图片都是最重要的部分. 当前,据统计图片已经占到网站总带宽的60%. 在一个图像丰富的社交网站上使用类图钉的布局,这个数字能高达85%. 对于高流量的网站,带宽很可能要为你的IT花费负主责,轻松超越虚拟主机和存储花费. 另外,如此大量的流量需要花时间,所以在浏览你的网站时,访问者很可能要花很长时间来等待图片的载入.

一些QQ群常见的gif图片集锦,很X很暴力,部分血腥。慎入!

- 小郭 - 河蟹娱乐
我就是看这个好,电影记得好像看过. 原文链接: http://hxyl.net/2011/06/22/gif/. 火星娱乐 河蟹娱乐 Copyright © 2007-2009 爱祖国,爱人民,唉派对. 更多精彩欢迎您订阅http://feed.feedsky.com/kisshi,更加欢迎投稿.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.

lsof命令

- - Dutor
  lsof, LiSt Opened Files, 列出打开的文件, 听起来很简单的样子. 但想*nix中很多其他工具一样, lsof把这件简单的事情做到了炉火纯青. 因为Unix认为”一切皆文件”, 那么”打开的文件”就不仅仅是传统意义上打开的文件了, 还可以是网络/Unix域套接字, 匿名/具名管道, 共享库文件, 目录文件, 设备文件等等.

sqlite3命令

- - 移动开发 - ITeye博客
转载自: http://www.cnblogs.com/frankliiu-java/archive/2010/05/18/1738144.html. SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令. 本文档提供一个样使用sqlite3的简要说明.

Linux iostat命令

- - CSDN博客系统运维推荐文章
iostat用于输出CPU和磁盘I/O相关的统计信息. . iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [. iostat各个参数说明:. -c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥.

tcpdump命令

- - CSDN博客推荐文章
英文原意是dump traffic on a network ,即截获网络上的数据报,可以根据指定的网络接口来截获不同的数据报. 它会输出在某个网络接口上符合匹配表达式的报内容的描述. 当tcpdump完成抓包后,会打印出类似下面的内容: . 当然,在读取网络上的数据包时,得需要特权,比如linux上的超级用户.

linux命令locate

- - 操作系统 - ITeye博客
    locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息. Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.