1、加字幕

命令:ffmpeg -i <input> -filter_complex subtitles=filename=<SubtitleName>-y <output>

说明:利用libass来为视频嵌入字幕,字幕是直接嵌入到视频里的硬字幕。

參考资料:http://ffmpeg.org/ffmpeg-filters.html#subtitles-1

2、剪切

命令:ffmpeg -i <input>-ss 0 -t 10 -y <output>

说明:ss跟的是起始时间,t为持续时间。上面命令意思为从0秒開始截取10秒的时间。

參考资料:http://ffmpeg.org/ffmpeg.html

3、缩放

命令: ffmpeg -i<output> -filter_complex scale=320:240  -y <output>

说明:scale參数为宽高。

4、剪裁

命令:ffmpeg -i <input>-filter_complex crop=320:240:0:0 -y <output>

说明:当中的 crop=320:240:0:0为裁剪參数,详细含义是 crop=width:height:x:y,当中 width 和 height 表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标。

5、加水印

命令:ffmpeg -i src.avi -vf "movie=<LogoName>[logo];[in][logo]overlay=100:100[out]"-y <output>

说明:LogoName为图片名,overlay=100:100意义为overlay=x:y,在(x,y)坐标处開始加入水印。

左上角:overlay=10:10

右上角:overlay=main_w-overlay_w-10:10

左下角:overlay=10:main_h-overlay_h-10

右下角:overlay=main_w-overlay_w-10:main_h-overlay_h-10

6、拼接视频

第一种命令:

第一步:ffmpeg  -i INPUT -fmpeg  OUTPUT

第二步:copy /b INPUT+INPUT OUTPUT

第三步:ffmpeg -i INPUT -f FORMAT OUTPUT

说明:第一步把输入文件转为同样格式,第二步利用copy命令把文件合并,第三步把合并文件转为终于结果视频。

例:把名为test.avi、test1_2.mp4 两个视频合并为resu.avi。

第一步:ffmpeg -itest1.avi test1.mpg

ffmpeg-i test1_2.mp4 test2.mpg

第二步:copy /btest1.mpg+test2.mpg resu.mpge

第三步:ffmpeg -iresu.mpge -y resu.avi

另外一种命令:

ffmpeg -i 1.mov -i 2.wmv -filter_complex "[0:0] [0:1] [1:0] [1:1]  concat=n=2:v=1:a=1 [v] [a]" -map [v] -map [a] output.mp4

7、旋转

命令: ffmpeg -i <input> -filter_complex transpose=X -y <output>

说明:transpose=1为顺时针旋转90°,transpose=2逆时针旋转90°。

8、镜像

上下镜像

命令:

ffmpeg -i src.avi -vf "split[mian][tmp];[tmp]crop=iw:ih/2:0:0,vflip[flip];[mian][flip]overlay=0:H/2"-y GHO.avi

说明:从命令中能够看出crop和vflip在一条流水线上,他们的处理流程例如以下图所看到的:

能够利用此filter来做上下颠倒,命令例如以下: ffmpeg-i src.avi -vf "split [main][tmp

]; [tmp] crop=iw:ih:0:0, vflip [flip];[main][flip] overlay=0:0" GHO2.avi处理效果和命令ffmpeg -isrc.avi -vf vflip GHO_v_1.avi一样,这样写仅仅是为了更好的理解filter处理链。

左右镜像

命令: ffmpeg -i src.avi-vf "split [main][tmp]; [tmp] crop=iw/2:ih:0:0, hflip [flip]; [main][flip]overlay=W/2:0" GHO_H.avi

说明:流程和上下镜像一样,仅仅是把坐标换了。而且指定用名为hfilp的filter。

能够利用此filter来做左右颠倒,命令例如以下: ffmpeg-i src.avi -vf "split [main][tmp

]; [tmp] crop=iw:ih:0:0, hflip [flip];[main][flip] overlay=W:0" GHO_H_1.avi和命令ffmpeg -i src.avi-vf hflip GHO_H_1.avi一样的效果,这样写仅仅是为了更好的理解filter处理链。

小结:split过滤器把输入分裂为2路输出crop过滤器为翻转选取图像范围,vflip和hflip过滤器把crop切下的图像翻转(垂直、水平),overlay过滤器指定坐标来贴经过翻转处理的图像。

9、加黑边

命令: ffmpeg -isrc.avi -vf pad=1280:800:0:40:black -y test_pad.avi

说明:pad=width:high:x:y:coler。这里的宽和高指的是结果视频尺寸(包括加黑边的尺寸)。XY指的是源视频加入到结果视频所在位置,coler为填充颜色。

10、调音量

命令:ffmpeg -i<input> -vol X <output>

说明:不解释

ffmpeg一些filter使用方法、以及一些功能命令的更多相关文章

  1. ffmpeg一些filter用法、以及一些功能命令

    来源:http://blog.csdn.net/dancing_night/article/details/46776903 1.加字幕 命令:ffmpeg -i <input> -fil ...

  2. FFmpeg 'scale' filter not present, cannot convert pixel formats.

    /*************************************************************************** * FFmpeg 'scale' filter ...

  3. js--数组的filter()过滤方法的使用

    前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ...

  4. 写一个方法完成如下功能,判断从文本框textbox1输入的一个字符,如果是数字则求该数字的阶乘,如果是小写字条,则转换为大写,大写字符不变,结果在文本框textbox2中显示

    窗体设计: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...

  5. 转: FFmpeg功能命令汇总

    原文: FFmpeg功能命令汇总 前言 如此强大的FFmpeg,能够实现视频采集.视频格式转化.视频截图.视频添加水印.视频切片.视频录制.视频推流.更改音视频参数功能等.通过终端命令如何实现这些功能 ...

  6. ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解

    转自 ArcEngine中IFeatureClass.Search(filter, Recycling)方法中Recycling参数的理解   ArcGIS Engine中总调用IFeatureCla ...

  7. jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强)

    jquery-7 jquery中的文档处理方法有哪些(方法的参数表示功能增强) 一.总结 一句话总结:多看参考文档,多看主干目录.一般的功能分两个方法来实现,一个对应标签,一个对应标签和事情,比如克隆 ...

  8. Spring实战(十)Spring AOP应用——为方法引入新功能、为对象引入新方法

    切面最基本的元素是通知和切点,切点用于准确定位应该在什么地方应用切面的通知. 1.Spring借助AspectJ的切点表达式语言来定义Spring切面 在Spring中,要使用AspectJ的切点表达 ...

  9. 删除在wireshark中保存的filter的方法

    现在想删除下图的filter,方法是:Edit->preferences->Filter Expressions

随机推荐

  1. A+B问题的异常解法

    先%XZZ为敬 http://www.cnblogs.com/xzz_233/p/a-plus-b-problem.html 万恶之源:https://www.luogu.org/discuss/sh ...

  2. Android 资源文件local.properties使用以及Gradle文件中的值、Manifests文件中的值

    这篇也是因为Gradle存储密钥问题一路填坑总结的,期初连.properties创建都有疑问 因为当时是在Android下查看新建的properties一直没法看到 因为Gradle Scripts是 ...

  3. linux内核代码注释 赵炯 第三章引导启动程序

    linux内核代码注释 第三章引导启动程序 boot目录中的三个汇编代码文件   bootsect.s和setup.s采用近似intel的汇编语法,需要8086汇编器连接器as86和ld86 head ...

  4. Python 调用multiprocessing模块下面的Process类方法(实现服务器、客户端并发)-UDP协议

    #基于UDP协议的multiprocessing自定义通信 服务端: from multiprocessing import Process import socket def task(server ...

  5. 测试jsonp

    login<?php $type = $_GET['type']; if(empty($type)) { $url = ""; }else { if($type == 'lo ...

  6. mysql处理添加外键时 error 150 问题

    当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上, ...

  7. 一句话配置mongodb

    一.安装mongodbmongodb-win32-x86_64-2008plus-ssl-3.2.9-signed.msi 二.以管理员身份,启动cmd命令mongod.exe --logpath & ...

  8. 学习 WebService 第三步:一个简单的实例(RAD+WAS 8.5开发SOAP项目)

    [开发环境] Web Service 服务器端开发工具:RAD(Eclipse内核) Web Service 服务器:IBM WebSphere v8.5 REST/SOAP:SOAP(JAX-WS/ ...

  9. 学习orm框架及一些看法

    首先说说我对现在主流的ORM框架的一些看法: 优点: 让程序员不再关注数据库细节,专心在业务逻辑上,程序员可以不懂数据库就可以开发系统. 让数据库迁移变的非常方便,如果系统需要更改使用的数据库,直接改 ...

  10. java面试题之Thread类中的start()和run()方法有什么区别

    start()方法被用来启动新创建的线程,而且start()内部调用了run()方法, 区别: 当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动: start()方法才会启动新 ...