ffmpeg 是 *nix 系统下最流行的音视频处理库,功能强大,并且提供了丰富的终端命令,实是日常视频处理的一大利器!

实例
flac 格式转 mp3

音频格式转换非常简单:

ffmpeg -i input.flac -acodec libmp3lame output.mp3

ffmpeg 将会使用 libmp3lame 解码器将 input.flac 文件转换为 mp3 格式的 output.mp3 文件。

批量格式转换

想要批量转换 flac 文件也是很常见的需求,我们可以结合 bash 命令来完成:

find . -name "*.flac" -exec bash -c 'ffmpeg -i "{}" -y "${0/.flac}.wav"' {} \;
webm 转 gif 格式

webm 是 Google 提出的多媒体文件格式,包含了 VP8 影片轨和 Ogg Vorbis 音轨,按照 BSD 格式开源。webm 能够提供更高质量的在线视频,但是其支持程度并不如存在已久的 mp4 和动态图片格式 gif,因此有时候会有将其转换为 gif 格式的需求。我们用到的命令是:

ffmpeg -i input.webm -vf "scale=400:-1,fps=10" output.gif

其作用是将 input.webm 格式的视频转换为横向宽度为 400px,纵向宽度保持比例的每秒 10 帧的 output.gif 图片。

当然,也可以将 gif 转换为 webm 格式:

ffmpeg -i output.gif -c:v libvpx -auto-alt-ref 0 input.webm

如果出现“Unknown encoder libvpx”的问题,需要重新在重新编译安装 ffmpeg 以支持 libvpx 编码器:

brew reinstall ffmpeg --with-libvpx

转换为 mp4 格式:

ffmpeg -i input.webm -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4

这里 vf 参数的意义是,将视频的长宽强制转换为偶数,否则可能遇到“width not divisible by 2”的问题。

生成视频缩略图
生成封面

使用视频的第一帧作为封面:

ffmpeg -i your-video.mp4 -ss 00:00:00 -vframes 1 thumb.png
每 xx 秒生成一个缩略图

每分钟一张:

ffmpeg -i your-video.mp4 -vf fps=1/60 your-video-%03d.png

再将其合并:

ffmpeg -i your-video-%03d.png -filter_complex scale=-1:-1,tile=99x1:margin=10:padding=4 output.png

这里的 tile 长度设定为 99,应当改为缩略图的总数。

一步到位:

ffmpeg -ss 00:00:00 -i your-video.mp4 -vf 'select=not(mod(n\,24)),scale=-1:-1,tile=99*1' out.png

意思是从视频的 00:00:00 处开始,每 24 帧(一般动换都是 24 帧的)取一张图片,长宽不进行压缩,最后合成在 99*1 的方格中。

使用 ffmpeg 转换视频格式的更多相关文章

  1. 使用ffmpeg转换视频格式

    命令: ffmpeg -i infile -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -qscale 6 -y outfile   说明: ...

  2. C#使用FFmpeg 将视频格式转换成Gif图片示例

    根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 ...

  3. asp.net实现调用ffmpeg实现视频格式的转换

    视频格式转换的函数 //视频转换 public void VideoConvertFlv(string FromName, string ExportName) { string ffmpeg = H ...

  4. Aiseesoft 4K Converter for Mac如何转换视频格式?Aiseesoft 4K使用方法

    Aiseesoft 4K如何转换视频格式?由于这款4K UHD转换器支持最新的4K编码/解码技术,因此您可以将4K视频转换为4K电视或其他设备支持的任何其他视频格式.Aiseesoft 4K使用方法分 ...

  5. C#使用FFmpeg 将视频格式转换成MP4示例

    一.常用视频格式分辨率 640x480p 720p格式,分辨率为1280×720p / 60Hz,行频为45kHz 1080p格式,分辨率为1920×1080逐行扫描,专业格式 二.FFmpeg部分参 ...

  6. Linux下安装ffmpeg,视频格式转换

    下载ffmpeg 从ffmpeg官网:http://ffmpeg.org/download.html 下载最新的ffmpeg安装包,然后通过如下命令解压: 解压 ffmpeg-*.tar.bz2 文件 ...

  7. 使用ffmpeg转换webm格式

    安装ffmpeg brew install ffmpeg --with-libvpx --with-libvorbis 如果已经装过 brew reinstall ffmpeg --with-libv ...

  8. php 使用 ffmpeg 转换视频,截图,并生成缩略图

    http://blog.csdn.net/toss156/article/details/7003059 把ffmpeg 和  生成缩略图整合了一下. include("ImageResiz ...

  9. 使用ffmpeg 对视频截图,和视频转换格式

    //执行CMD命令方法 public static void CmdProcess(string command)//调用CMD        {            //实例化一个进程类      ...

随机推荐

  1. ORACLE安装入门篇OEL5.4安装ORACLE11g

    一.安装ORACLE11g软件(11.2.0.0) (一)安装前的包支持 1.检测yum仓库是否已经配置好 yum list all 2.搭建yum仓库 1).挂载所需要的安装光盘 虚拟机挂载光盘: ...

  2. C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)

    头文件:#include <string.h> 定义函数:int strcasecmp (const char *s1, const char *s2); 函数说明:strcasecmp( ...

  3. Spring Boot下的lombok安装以及使用简介

    引言:lombok是一套代码模板解决方案,将极大提升开发的效率,这里介绍给大家使用. 1. Lombok lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java ...

  4. 从现在开始,这是一个IT博客。

    从现在开始,删除以前的点点滴滴,一心做个IT人.

  5. ROSETTA使用技巧随笔--RosettaLigand Docking

    时间不充分,简单记录下自己实践过程中的做法: 1. 首先,非标准残基都需要转换成.params文件,使用 <path-to-Rosetta>/main/source/scripts/pyt ...

  6. iOS UI进阶-5.0 蓝牙/加速计/传感器

    传感器 实现代码: #import "ViewController.h" @interface ViewController () @end @implementation Vie ...

  7. smali加入日志

    const-string v0, "aaatag"const-string v1, "msg"invoke-static {v0,v1}, Landroid/u ...

  8. 多表关联查询_resultMap_集合对象

    多表关联查询_resultMap_集合对象_N+1方式实现 package com.bjsxt.mapper; import java.util.List; import com.bjsxt.pojo ...

  9. 阿里云esc服务器上部署java项目

    文章中使用centos(6和7版本).Xshell.Xftp 因为部署过程直接从操作服务器开始,如果你还没有连接好服务器请参考http://blog.csdn.net/ctrlxv/article/d ...

  10. 原生js---ajax的封装插件.js---(对get和post做了兼容)

    function ajax(method,url,data,fn){ // 1.创建对象 var xhr=null; try{ xhr=new XMLHttpRequest(); }catch(e){ ...