前言:在不同平台下安装FFmpeg

1、mac系统下安装ffmpeg。

打开terminal,运行:brew install ffmpeg

安装完后,terminal中输入:ffmpeg,出现下面提示即安装成功。

2、window环境下安装ffmpeg.

进入FFmpeg官网

下载完后解压到一个地方。

配置环境变量,配置到bin目录即可。

配置好后,打开命令窗口。输入ffmpeg,出现如下信息即配置成功。

一:FFmpeg处理音视频的流程

二:FFmpeg处理音视频的命令。

1、基本信息查询。

-version                       显示版本-demuxers                   显示可用的demuxers-muxers                       显示可用的muxers-devices                       显示可用的设备-decoders                    显示可用的解码器-encoders                    显示可用的编码器-formats                       显示可用的格式-protocols                    显示可用的协议-filters                          显示可用的过滤器-pix_fmts                     显示可用的像素格式-sample_fmts              显示可用的采样格式-layouts                       显示channel名称-colors                         显示识别的颜色名称示例:ffmpeg -version

2、录制命令

mac下的录制命令:(退出录制屏幕:control+c)

ffmpeg -f avfoundation -i 1 -r 30 out.mp4-f:指定使用 avfoundation 采集数据-i:指定从哪采集数据,他是一个文件索引号-r:指定帧率

window下的录制命令:(退出录制屏幕:ctrl+c)

ffmpeg -f gdigrab -i desktop luping.mp4-f:指定使用 gdigrab 采集数据-i:指定从哪采集数据,他是一个文件索引号

2.2、播放yuv格式数据:

ffplay -s 3360x2100 -pix_fmt uyvy422 out.yuv

2.3、查看可用设备

mac系统下的命令:

ffmpeg -f avfoundation -list_devices true -i ""

2.4、录制音频

mac系统下的命令:

ffmpeg -f avfoundation -i :0 out.wav:0  代表音频设备

3、分解与复用

3.1、多媒体格式转换

ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv-i:输入文件-vcodec :视频编码处理方式-acodec:音频编码处理方式copy:指明只拷贝,不做编解码

3.2、提取音频

ffmpeg -i out.mp4 -acodec copy -vn out.aacvn:v 代表视频,n 代表 no 也就是无视频的意思。

3.3、提取视频

ffmpeg -i out.mp4 -acodec copy -an out.h264an:  a 代表视频,n 代表 no 也就是无音频的意思。

3.4、视频和音频合成

ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy muxer.mp4

4、提取原始数据

4.1、提取YUV数据

ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv-c:v rawvideo   指定将视频转成原始数据-pixel_format yuv420p   指定转换格式为yuv420p

ffplay -s wxh out.yuv

4.2、YUV转H264

ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 30 -i out.yuv -c:v libx264 -f rawvideo out.h264

4.3、提取PCM数据

ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcmffplay -ar 44100 -ac 2 -f s16le -i out.pcm

4.4、PCM转WAV


ffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wav

5、滤镜命令

ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。 几个链式过滤器形成一个过滤器图形。 ffmpeg区分两种类型的过滤器图形:简单和复杂。

5.1、视频高度和宽度减小(默认是视频中心点)

ffmpeg -i out.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy crop.mp4-vf:使用视频滤镜crop:裁剪视频in_w-200:宽度减小200in_h-200:高度减小200-c:v:视频编码器-c:a:音频编码器

6、音视频的裁剪与合并

ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out1.mp4-ss 指定裁剪的开始时间,精确到秒-t 被裁剪后的时长。这种截取的好处是特别快,因为它不会对视频重新编码,直接截取相关时间,导出视频,但是这种方式会导致:如果视频结尾不是关键帧,那么视频最后就会出现一段空白。
ffmpeg -ss 00:00:00 -t 12 -accurate_seek -i input.mp4 -codec copy  -avoid_negative_ts 1 output.mp4这样截取视频之后,空白视频是没有了,但是时间不会精确截取,它会找到下一个关键帧,补全这个视频,所以,导致连续分割的视频之间存在细微的交集。
ffmpeg -ss 00:00:00 -t 12 -i input.mp4  -c:v libx264 -c:a aac -strict experimental -b:a 98k output.mp4避免关键帧的丢失并精确截取时间,需要重新编码视频。

视频拼接:

新建一个files.txt文件,其中加入(必须是单引号)

file 'input1.mp4'
file 'input3.mp4'
file 'input5.mp4'
ffmpeg -f concat -i files.txt -c copy output.mp4这一行指令使用了-c copy,说明他只适用于视频切割产生的分段,被合并的视频必须是相同的参数!!!
如果你需要合并参数不同的视频,把-c copy去掉
或者自己写压制参数,
参考参数:
-c:v libx264 -crf 23 -profile:v high -level 5 -c:a aac -b:a 240k

7、视频转图片。

ffmpeg -i out.mp4 -r 1 -f image2 image-%3d.jpeg

8、图片转视频

ffmpeg -i image-%3d.jpeg images.mp4

9、视频转GIF

ffmpeg -i zhihui.mp4 -ss 00:00:00 -t 3 play.gif00:00:00   开始时间,分别为 时:分:秒
-t 3 :代表时长为3秒,时间越长生成的gif越大

10、视频去水印

ffmpeg -i logo.mp4 -filter_complex "delogo=x=450:y=1100:w=268:h=178:show=0" delogo.mp4-i:指定从哪采集数据-filter_complex:指定要使用的滤镜delogo:去水印的滤镜x=:开始的x轴位置y=:开始的y轴位置w=:水印的宽度h=:水印的高度show=:是否有绿色的框(0:无框;1:有框)

11、视频裁剪(裁剪出一个矩形)

ffmpeg -i logo.mp4 -vf crop=200:400:200:400 crop.mp4-vf:指定使用的滤镜crop:视频裁剪滤镜200:400:200:400   宽度:高度:x起始位置:y起始位置等同于如下:
ffmpeg -i logo.mp4 -vf crop=w=200:h=400:x=200:y=400 crop.mp4

12、视频拉流

ffmpeg -i http://video01.youju.sohu.com/9f03c23c-5bb0-4946-b82a-947182d9dd362_0_0.mp4 meinv.mp4

13、视频转换格式

ffmpeg -y -i view_view.ifox -acodec copy video.mp4view_view.ifox:原始视频格式
video.mp4:目标视频格式

音视频开发三:FFmpeg安装与常用命令相关推荐

  1. Android 音视频开发(三) -- Camera2 实现预览、拍照功能

    音视频 系列文章 Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍 ...

  2. 【秒懂音视频开发】07_音频录制01_命令行

    命令简介 FFmpeg的bin目录中提供了3个命令(可执行程序),可以直接在命令行上使用. 3个命令 ffmpeg ffmpeg的主要作用:对音视频进行编解码. # 将MP3文件转成WAV文件 ffm ...

  3. 音视频开发基础(二)常用的直播协议

    如今网络的发展已经从1G,2G,3G,4G逐渐过渡到5G,5G网络的出现,音视频的使用就变得越来越广.从以前的泛娱乐过渡到了更深次的领域,比如在线教育,在线会议-然而,要想有完美的视屏体验,还是要从很 ...

  4. Android 音视频开发学习思路

    Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...

  5. Android音视频开发从入门到精通,我这一路走来的经验分享

    前不久,在国家统计局针对北京市进行的农民工市民化状况进行的调研中,从事信息技术,软件技术等IT服务业的人员也被当做农民工. 编程的门槛不高,薪资水平也还可观.这一直是"三百六十行,行行转IT ...

  6. iOS音视频开发七:视频采集

    将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第七篇:iOS 视频采集 Demo.这个 ...

  7. iOS音视频开发八:视频编码,H.264 和 H.265 都支持

    我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第八篇:iOS 视频编码 Demo. ...

  8. Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频

    前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...

  9. Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏

    Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍照功能 Andro ...

最新文章

  1. 百亿级数据分表后怎么分页查询?
  2. 寒假每日一题(入门组)【week3 完结】
  3. 围观一下tp的游戏保护 一
  4. 【剑指offer】面试题56 - I:数组中数字出现的次数 I
  5. 软件开发中Alpha、Beta、RC、GA版本的含义
  6. 为什么要使用MQ消息中间件?
  7. 进程的定义组成组织方式特征
  8. python3实例车代码_Python编程pygame模块实现移动的小车示例代码
  9. 程序员面试题之解读构造函数
  10. bch纠错码 码长8_浅析BCH码的编码方法.docx
  11. 运筹学实验报告c语言,运筹学教案-实验.doc
  12. vga分辨率与时序配置
  13. 员工满意度调查问卷的设计注意事项
  14. Postgres-XL 9.5简易搭建
  15. Java及依赖和Maven
  16. GitHub疯传,这个Leetcode刷题手册到底有多流弊?
  17. 如何设计USB TYPE-C接口的显示器和电视机,形态三独立功能的双USB-C接口 +一个HDMI接口的显示器
  18. python怎样发音_python在线发音_python翻译
  19. DbContext 查询(三)
  20. 老慜的A5作业——p5.js 动态、周期、随机、面向对象

热门文章

  1. 文本分类+机器学习浅谈?
  2. 中序表达式转其他顺序 - 表达式加括号法
  3. [sig16]Real-time Rendering on a Power Budget
  4. 算法第四版学习(chapter1.3)
  5. 服务器配置公网ftp服务端(软件和python代码两种方法)
  6. 智能与人机融合智能的思考
  7. mysql在线考试的设计_在线考试系统设计与实现(MySQL)
  8. Python验证角谷猜想
  9. 怎么记住1月-12月的英文
  10. stallman 征婚