写在前面
以前一直觉得一款名叫格式工厂
的软件特别厉害, 什么媒体格式都能互相转化, 后来发现格式工厂
其实就是一个套壳的FFmpeg
, FFmpeg
1这款命令行软件可以说是相当强大了, 支持音频视频等的各种转换, 以及图片等的互相转换, 甚至还能捕获网络上的m3u8
文件, 可以参考我之前的关于如何下载钉钉直播视频的文章. 总之, 学会了一些基本的命令行操作之后, 以后就完全不需要下载其他软件了, 不仅方便还支持批处理操作, 简直就是必备的效率工具~
下面我总结一下我常用的几个结合FFmpeg
和imagemagick
的媒体文件处理操作, 主要涉及视频格式转换, 视频到GIF的转换等, 主要参考当然是FFmpeg
的官方文档2, 当然也有一些现成的国外博客以及Stack Overflow
.
视频格式互相转换
通过下面的命令3实现mkv->mp4
的转换, 如果不加-c
(-codec
)选项可能会导致编码失真, 码率降低.
ffmpeg -i input.mkv -c copy output.mp4
可以达到无损转换, 支持的格式可参见4.
视频转换为动图GIF
这个比较常用了, 特别是制作动画表情等的时候, 下面是转换的命令5:
ffmpeg -ss 00:00:20 -i sample.mp4 -to 10 -r 10 -vf scale=200:-1 cutekid_cry.gif
其中各个选项的解释如下:
- -ss : indicates the starting point of GIF
- -i : input file
- sample.mp4 : My video file name
- -to : End position of the GIF file
- -r : frame rate. You can increase the value to get more quality GIF file
- -vf : filter graph. To scale the GIF image in the desired size.(In this example, size is 200:auto)