Ffmpeg的各种常用操作总结

 
Category: Tips

写在前面

以前一直觉得一款名叫格式工厂的软件特别厉害, 什么媒体格式都能互相转化, 后来发现格式工厂其实就是一个套壳的FFmpeg, FFmpeg1这款命令行软件可以说是相当强大了, 支持音频视频等的各种转换, 以及图片等的互相转换, 甚至还能捕获网络上的m3u8文件, 可以参考我之前的关于如何下载钉钉直播视频的文章. 总之, 学会了一些基本的命令行操作之后, 以后就完全不需要下载其他软件了, 不仅方便还支持批处理操作, 简直就是必备的效率工具~

下面我总结一下我常用的几个结合FFmpegimagemagick的媒体文件处理操作, 主要涉及视频格式转换, 视频到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)

参考