多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。

目前仅接触到了一些初级命令,今天进行了简单整理。

分辨率

 //智能1:1缩放
-i in.mp4 -s : -vf setsar=: out.mp4
//普通缩放
-i in.mp4 -strict - -vf scale=: out.mp4

视频合成

 //视频先转为ts格式
-i in.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb out.ts
//合成
-i concat:.ts|.ts|.ts -acodec copy -vcodec copy -absf aac_adtstoasc out.mp4

背景音乐

 //去除原音频
-i in.mp4 -an -vcodec copy out.mp4
//添加背景音乐
-i in.mp4 -i in.mp3 -vcodec copy out.mp4
//设置音量
-i in.mp4 -af volume=1dB out.mp4

画中画

 //左上角
-i in1.mp4 -i in2.mp4 "nullsrc=size=200x200 [base]; [0:v] setpts=PTS-STARTPTS,scale=200x200
[left]; [:v] setpts=PTS-STARTPTS, scale=100x100 [right];[base][left] overlay=shortest= [tmp1];
[tmp1][right] overlay=shortest=:x=" -c:v libx264 out.mp4
//左下角
-i in1.mp4 -i in2.mp4 "nullsrc=size=200x200 [base]; [0:v] setpts=PTS-STARTPTS,scale=200x200
[left]; [:v] setpts=PTS-STARTPTS, scale=100x100 [right];[base][left] overlay=shortest= [tmp1];
[tmp1][right] overlay=shortest=:x=:y=-" -c:v libx264 out.mp4

倒放

 //视频倒放,无音频
-i in.mp4 -filter_complex [:v]reverse[v] -map [v] -preset superfast out.mp4
//视频倒放,音频不变
-i in.mp4 -vf reverse out.mp4
//音频倒放,视频不变
-i in.mp4 -map -c:v copy -af "areverse" out.mp4
//音视频同时倒放
-i in.mp4 -vf reverse -af areverse -preset superfast out.mp4

去水印

 //x、y为水印坐标,w、h为水印大小
-i in.mp4 -filter_complex "delogo=x=998:y=15:w=260:h=80" out.mp4

添加水印

 //图片水印:logopath为水印路径,overlay为水印位置(左上)
-i in.mp4 -i logopath -filter_complex overlay=: out.mp4
//文字水印
-i in.mp4 -vf "drawtext=fontsize=20:fontfile=simsun.ttc:text='文字水印':fontcolor=red:x=10:y=10"

 转载请注明出入来源:https://www.cnblogs.com/famhuai/p/10539087.html

ffmpeg 处理视频项目中用到的一些命令的更多相关文章

  1. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

  2. ffmpeg为视频添加时间戳 - 手动编译ffmpeg

    FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...

  3. iOS 项目中用到的一些开源库和第三方组件

    iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...

  4. C# 利用ffmpeg 对视频转换系类操作 (1) 基本分析

    最近公司做一个项目,开发一个视频站点.项目需求中有很多视频转换的需求,如:格式转换(flv,Mp4),视频水印,视频截图,视频合成,获取视频的基本信息(时间戳,视频大小等).经过网络的收集资料以及自己 ...

  5. NET 2.0(C#)调用ffmpeg处理视频的方法

    另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...

  6. python+ffmpeg切割视频

    什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...

  7. FFmpeg:视频转码、剪切、合并、播放速调整

    原文:https://fzheng.me/2016/01/08/ffmpeg/ FFmpeg:视频转码.剪切.合并.播放速调整 2016-01-08 前阵子帮导师处理项目 ppt,因为插入视频的格式问 ...

  8. Java+Windows+ffmpeg实现视频转换

    最近由于项目需要,研究了一下如何用Java实现视频转换,“着实”废了点心思,整理整理,写出给自己备忘下. 思路 由于之前没有没法过相关功能的经验,一开始来真不知道从哪里入手.当然,这个解决,googl ...

  9. Java使用FFmpeg处理视频文件指南

    Java使用FFmpeg处理视频文件指南 本文主要讲述如何使用Java + FFmpeg实现对视频文件的信息提取.码率压缩.分辨率转换等功能: 之前在网上浏览了一大圈Java使用FFmpeg处理音视频 ...

随机推荐

  1. C#Winform的DEV下拉下拉控件介绍

    LookupEdit 下拉单选,可搜索,下拉展示为一个table: ComboxEdit 下拉单选,可当做text使用,输入数据源中没有的项,只有显示值: CheckcomboxEdit 下拉多选,可 ...

  2. 牛客小白月赛12 J 月月查华华的手机(序列自动机)

    ---恢复内容开始--- 题目来源:https://ac.nowcoder.com/acm/contest/392/J 题意: 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机. ...

  3. linux ">/dev/null 2>&1 &"

    0:表示键盘输入(stdin)1:表示标准输出(stdout),系统默认是1 2:表示错误输出(stderr) command >/dev/null 2>&1 &  == ...

  4. 在Linux服务器上配置Transmission来离线下载BT种子

    Transmission简介 Transmission是一种BitTorrent客户端,特点是跨平台的后端和简洁的用户界面,硬件资源消耗极少,支持包括Linux.BSD.Solaris.Mac OS ...

  5. Java输入输出流详解

    通过数据流.序列化和文件系统提供系统输入和输出. Java把这些不同来源和目标的数据都统一抽象为数据流.Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为 ...

  6. liunx Ubuntu 设置IP、网关、DNS

    说明:在网上给的教程上面通常会有这样的一个误导思路,按照配置文件设置后会不生效的问题,甚至没有一点效果,经过排查发现Linux下设置IP这个话题的入口线索应该分为两种:1为Server版,2为Desk ...

  7. w7 全网架构-rsync-备份

    准备 1.从安装系统开始准备 安装过程中添加网卡 eth0 ip 10.0.0.210 netmask 24 gateway 10.0.0.254 eth1 ip 172.16.1.210 netma ...

  8. Oracle DBLINk的使用

    Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作 ...

  9. C/C++ 的宏中#和##的作用和展开

    C/C++ 的宏中: (1) # 的功能是将其后面的宏参数进行字符串化操作,简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号. 也就是说: #define __TO_STRING_IM ...

  10. RxSwift学习笔记9:amb/tabkeWhile/tabkeUntil/skipWhile/skipUntil

    //amb基本介绍 //当传入多个 Observables 到 amb 操作符时,它将取第一个发出元素或产生事件的 Observable,然后只发出它的元素. //并忽略掉其他的 Observable ...