音视频处理ffmpeg使用
参考资料:
[url]http://blog.163.com/prosen@yeah/blog/static/12251328720099101378975/
http://ffmpeg.org/ffmpeg-all.html[/url]
http://326301045.iteye.com/blog/2172957
FFmpeg命令行大致可以分为两类:
1.视频、音频、图片的转换。
例如视频截取、视频转码、视频连接、视频音频合成等。
2.增加处理效果。
例如增加水印、增加gif、音频延迟等。一般是通过滤镜功能实现。
滤镜参考资料:
http://ffmpeg.org/ffmpeg-filters.html
http://blog.chinaunix.net/uid-26000296-id-4282537.html
FFmpeg命令行举例:
视频截取
ffmpeg -ss 00:46:28 -i "Morning_News.asf" -acodec copy -vcodec copy -t 00:03:25 output.asf
这行命令解释为:从文件 Morning_News.asf 第 46:28 分秒开始,截取 03: 25 的时间,其中视频和音频解码不变,输出文件名为 output.asf 。
-ss :从指定时间开始(如果该时间点无效,则跳到该时间点前,最接近的有效seek point)
-i:输入源
-acodec copy -vcodec copy:视频和音频编码不变
-t:在该时间点停止输出
视频转码
ffmpeg -i INPUT -f FORMAT OUTPUT
例如:
ffmpeg -i "D:/result.mpge" -f mp4 "D:/result.mp4"
视频连接
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join%2C%20merge)%20media%20files
去除视频声音
ffmpeg -i 1.avi -vcodec copy -an 2.avi
合并音频和视频
ffmpeg -i a.wav -i a.avi out.avi
若音频比视频长,画面停留在最后一帧,继续播放声音。
显示多幅图片(不同位置)
ffmpeg -y -i boss.mp4 -i left.png -i left.png -filter_complex "overlay=5:5,overlay=0:0" -f mp4 output.mp4
-filter_complex:使用复合滤镜
"overlay=5:5,overlay=0:0":第一个图片的x、y坐标为(5,5),第二个为(0,0)
在特定时间显示图片
ffmpeg -y -i 1.avi -i 1.png -filter_complex "overlay=x='if(between(t,1,3),60,-500)':y=50" -f mp4 left1.mp4
命令行中可以使用表达式,参考:http://ffmpeg.org/ffmpeg-all.html#Expression-Evaluation
具体意思是时间t在1到3秒内,图片的x坐标为60,否则为-500(移出屏幕),y坐标一直为50不变
音频提前或延迟N秒
ffmpeg -i ogg.ogg -i 1.avi -filter_complex "adelay=3000|3000" output.avi
-filter_complex "adelay=3000|3000":对前面的ogg音频的两个声道都延迟3000毫秒
http://ffmpeg.org/ffmpeg-all.html#adelay
音频合成
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
inputs=3:三个输入
duration=first:输出长度为第一个输入的长度
dropout_transition=3:声音淡出时间为3秒
音视频处理ffmpeg使用的更多相关文章
- C/C++音视频库ffmpeg的数据包AVPacket分析
ffmpeg下载地址 http://www.ffmpeg.club/ AVPacket是ffmpeg用来存放编码后的视频帧数据,我们来分析一下这个结构体,先贴出ffmpeg3.2中AVPacket声明 ...
- 音视频开发-FFmpeg
音视频开发是个非常复杂的,庞大的开发话题,初涉其中,先看一下结合 OEIP(开源项目) 新增例子. 可以打开flv,mp4类型文件,以及rtmp协议音视频数据,声音的播放使用SDL. 把采集的麦/声卡 ...
- C++编程音视频库ffmpeg的pts时间换算方法
ffmpeg中的pts,dts,duration时间记录都是基于timebase换算,我们主要分析下pts的时间怎么换算,其它的是一样的换算.ffmpeg的时间换算对许多新接触同学算是一个大坑,很多刚 ...
- FFmpeg采集音视频数据命令
文章转自:https://www.jianshu.com/p/4709ccbda3f9 1.ffmpeg 把文件当做直播推送至服务器 (RTMP + FLV) ffmpeg - re -i demo. ...
- 音视频】5.ffmpeg命令分类与使用
GT其实平时也有一些处理音视频的个人或者亲人需求,熟练使用ffmpeg之后也不要借助图示化软件,一个命令基本可以搞定 G: 熟练使用ffmpeg命令!T :不要死记硬背,看一遍,自己找下规律,敲一遍, ...
- 音视频处理概要 markdown
最近要想办法把录制的音视频进行拼接. 比方说此次录制的视频有三段,通过高清直播编码器录制,录制下的标准为h.264 直接用ffmpeg简单拼接,音频会丢失,所以有了此次解决方案(有可能会繁琐,简单方案 ...
- Android IOS WebRTC 音视频开发总结(四九)-- ffmpeg介绍
本文主要介绍ffmpeg,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,个人微信公众号blacker,更多详见www.rtc.help 说明: ps1:如果直接从webrtc开始学 ...
- ffmpeg转码MPEG2-TS的音视频同步机制分析
http://blog.chinaunix.net/uid-26000296-id-3483782.html 一.FFmpeg忽略了adaptation_field()数据 FFmpeg忽略了包含PC ...
- FFmpeg开发实战(五):FFmpeg 抽取音视频的视频数据
如何使用FFmpeg抽取音视频的视频数据,代码如下: // FFmpegTest.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include ...
随机推荐
- [转]Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换
Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换 1.关闭Vmware所有虚拟机 2.合并Vmware磁盘 通常磁盘都分开储存 "C:\Program Files (x8 ...
- Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1) B - Bear and Friendship Condition 水题
B. Bear and Friendship Condition 题目连接: http://codeforces.com/contest/791/problem/B Description Bear ...
- javascript 原生常用api 数组方法大全
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Windows2003配置集群详解
原文: http://blog.csdn.net/xunyn/article/details/7388900 集群是在一组计算机上运行相同的软件并虚拟成一台主机系统为客户端与应用提供服务:计算机通过缆 ...
- CAP:Alantany 谈 CAP
引用Alantany的话:“CAP理论提出就是针对分布式数据库环境的,所以,P这个属性是必须具备的.P就是在分布式环境中,由于网络的问题可能导致某个节点和其它节点失去联系,这时候就形成了P(parti ...
- Unity Shader-后处理:高斯模糊
一.简介 上一篇文章学习了模糊的原理以及基本的模糊实现,对于清晰和模糊这个定义感觉还是比较说明问题,这里再贴出一下:“清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么 ...
- gson的简单使用方法
gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的 ...
- centos7 使用rsync 实现文件同步
一.服务端(192.168.8.81): 安装软件: yum -y install rsync 创建需同步的目录: mkdir -p /home/root/rsync 编辑配置文件:vim /etc/ ...
- CSS实现屏幕显示与打印结果不一样的方法
文章作者:Tony Qu原创 一种方法是为屏幕显示和打印分别准备一个css文件,如下所示: 用于屏幕显示的css: <link rel="stylesheet" href=& ...
- Jmeter进行接口测试
原文地址:https://www.cnblogs.com/nancyzhu/p/8035042.html web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开 ...