多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。
这里主要介绍一下FFmpeg的一些常用参数,并且主要功能:截取视频、视频格式转换、视频分辨率转换、视频合并、提取视频、提取音频、提取图片、视频水印处理等。

ffmpeg参数:

一、公共参数:
-i 设定输入流 
-y 表示如果输出文件已存在则覆盖
-f 设定输出格式  指定文件格式(ffmpeg -formats可以列举支持的format)
-b 指定视频和音频加起来的码率
-q:v表示存储jpeg的图像质量,一般2是高质量。 格式:-q:v 2 -f image2
-ss 开始时间                                                         格式:00:00:02或者2.00
-t 表示截取多长的时间(持续时间)
-to 截到视频的哪个时间点结束(时间点)
-async 多少桢同步
-max_muxing_queue_size  增大容器封装队列大小(视频处理出现报错时) 格式:-max_muxing_queue_size 1024

二、视频参数
-re 根据文件真实的帧率来读取文件,生成实时刷新的直播流  格式:-re
-r 设定帧速率,单位为Hz,默认为25                  格式:-r 29(表示每一秒几帧)
-s 设定画面的宽与高(帧尺寸)                        格式:-s 720x1280

"coded_height":1280, "coded_width":720,

–b:v 表示视频平均码率(更改码率的速度最慢)       格式:–b:v 1500k
-bufsize 用于设置码率控制缓冲器的大小             格式:-bufsize 1500k 
-maxrate 码率波动,不要超过一个阈值               格式:-maxrate 1800k
-minrate 码率波动,不要低于一个阈值               格式:-minrate 1300k
-aspect 设定画面的比例                                      格式:-aspect 16:9 或者-aspect 1.7777

"display_aspect_ratio":"16:9"

-sar 设定画面的比例                                      格式:-sar 1:1

"sample_aspect_ratio":"1:1"

-vf scale=iw*0.9:ih*0.9或者-vf scale=720:1280或者scale=720:-1     -vf是调用video filter,这里用了scale filter来改变分辨率进行转码

-vf是-filter:v的简写,-filter指定过滤器,:v是流选择器,表示对视频流应用过滤器。scale=后面的参数是w:h
格式:-vf scale=320:240        设置具体的宽度和高度
格式:-vf scale=360:-1         固定高度
格式:-vf scale=-2:720         固定宽度
格式:-vf scale=iw*0.9:ih*0.9  原来宽的0.9倍,高的0.9倍
-vf crop=width:height:x:y      视频裁剪(其中 width和height表示裁剪后的尺寸,x:y 表示裁剪区域的左上角坐标)
-vf transpose=2                旋转视频(transpose默认0-逆时针和垂直翻转,1-顺时针旋转90度,2-逆时针旋转90度,3-顺时针和垂直翻转)
-filter_complex [0][1]hstack   水平拼接两个视频
-filter_complex [0][1]vstack   垂直拼接两个视频
-qp 23                         编码质量(值越大,压缩率越大,质量越低)
-crf 23                        编码质量(0-无损编码,可用值是0~51;x264默认值是23(推荐 17~ 28))
-strict -2                     之前是实验参数表示aac音频编码(使用FFmpeg自带的aac音频编码要带上-strict -2 参数就可以了)
-- 图片+音频合并成视频
ffmpeg -r 15 -f image2 -loop 1 -i 输入图片.png -i 输入音频.mp3 -s 1920x1080 -pix_fmt yuvj420p -t 278 -vcodec libx264 输出.mp4
-pix_fmt:指定图片输入格式(有yuv420,yuv444等各种格式)
-loop 1 :因为只有一张图片所以必须加入这个参数
-t:这个是图片转换成视频后持续的时间长度,必须指定,单位为秒,不然会无限制生成视频时间长度;

-metadata:s:v:0 rotate=90

-vn 不处理视频 
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器  -c:v效果一样
-vcodec copy 表示使用跟原视频一样的视频编解码器。
-c:v libx264 表示对原视频进行libx264重新编码
-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率  格式:-pass 1
-bsf:v h264_mp4toannexb=-vbsf h264_mp4toannexb   把mp4格式转换为ts格式

三、音频参数
–ar 表示音频采样率,单位为Hz;               格式:–ar 44100
–ab 音频数据流量 位速                       格式:–ab 128k
-ac 设定声音的Channel数 
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器  -c:a效果一样
-acodec copy表示使用跟原视频一样的音频编解码器。
-an 不处理音频
-vol 200%的音量              格式:-vol 200

注意一个问题,ffmpeg 在切割视频的时候无法做到时间绝对准确,因为视频编码中关键帧(I帧)和跟随它的B帧、P帧是无法分割开的,否则就需要进行重新帧内编码,会让视频体积增大。所以,如果切割的位置刚好在两个关键帧中间,那么 ffmpeg 会向前/向后切割,所以最后切割出的 chunk 长度总是会大于等于应有的长度。

【Python】ffmpeg模块处理视频、音频信息相关推荐

  1. 【定制项目】【触摸屏一体机】【自启动运行】【M15 消防安全宣传】【横屏版】主要模块:视频 + 音频 + 图标 + 问答游戏

    之前客户指定要求竖屏版,所以只做了竖屏效果(项目管理箴言 - 做只做需要的工作,不要镀金),后来客户采购了一批横屏设备(毕竟横屏播放视频才是王道),所以代码升级支持横屏版. 功能参考我的上一篇文章 : ...

  2. AVFoundation – AVAssetTrack 获取视频 音频信息

    目录 一.前言 1.AVAsset 2.AVAssetTrack 3.AVComposition / AVMutableComposition 4.AVMutableVideoComposition ...

  3. 【Python】ffmpeg模块查询视频、音频信息

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案. 它包含了非常先进的音频/视频编解码库 ...

  4. FFmpeg开发实战(三):FFmpeg 打印音视频Meta信息

    在之前使用FFmpeg命令行的时候,我们经常看到FFmpeg命令行在输出音视频文件的会打印一下文件的Meta信息,类似如图: 那么我们如何通过代码的方式输出这些Meta信息呢? FFmpeg提供了一个 ...

  5. python ffmpeg模块,python执行ffmpeg

    python执行ffmpeg命令 能拿到ffmpeg正常输出 ffmpeg抛出异常时可以拿到异常信息 返回ffmpeg处理进度 以下代码依赖的pexpect,progressbar需要安装下 impo ...

  6. FFmpeg多媒体文件处理(ffmpeg打印音视频Meta信息)

    打印音/视频信息 avdevice_register_all() avformat_open_input()/avformat_close_input av_dump_format() 实战 int ...

  7. Python traceback模块:获取异常信息

    除了使用 sys.exc_info() 方法获取更多的异常信息之外,还可以使用 traceback 模块,该模块可以用来查看异常的传播轨迹,追踪异常触发的源头. 下面示例显示了如何显示异常传播轨迹: ...

  8. python + ffmpeg爬取视频,转化为mp4格式

    项目需求 网址链接:https://taobaolive.taobao.com/room/index.htm?spm=a1z9u.8142865.0.0.434f34edQAItBB&feed ...

  9. 【定制项目】【触摸屏一体机】【自启动运行】【M15 消防安全宣传】主要模块:视频 + 音频 + 图标 + 问答游戏

    目录 一.项目需求 二.效果展示 1.动态视频 2.切片效果图 主页 公益宣传片(视频MP4), 火灾启示录(视频MP4),消防宣教员(视频MP4),消防设施原理(视频MP4) 视频播放页 -  自动 ...

最新文章

  1. DNS原理及其解析过程
  2. 用径向函数和球谐函数计算氢原子能级并验证维里定理
  3. 把 Spring Cloud 给拆了!详解每个组件的作用
  4. 【springboot】启动时指定lib目录
  5. SAP WebIDE Initialization process - 初始化逻辑分析
  6. WINCE的BIB文件解析
  7. Java核心技术- Java内存分配原理
  8. 【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发
  9. javascript 布尔类型
  10. 一招搞定让标签title属性值换行
  11. 微机计算机原理及应用ppt,微型计算机原理及应用PPT课件
  12. 手机模拟门禁卡 — 加密门禁卡模拟教程
  13. API接口测试用例设计
  14. SeaWeedFS文件存储服务器搭建
  15. dubbo服务暴露流程总结
  16. 科技热点周刊|马斯克套现 440 亿;苹果推出数字身份证;Meta 与微软合作;华为捐赠欧拉
  17. 南华大学计算机调剂,2020南华大学考研调剂系统开通通知
  18. spring导入第三方资源
  19. 教师一定要看的15部电影
  20. 【大数据】第二章:搭建Hadoop集群(送尚硅谷大数据笔记)

热门文章

  1. Linux检查wlan0是否存在,linux - airmon-ng将wlan0更改为wlan0mon但不恢复[​​关闭] - 堆栈内存溢出...
  2. 改变 this 指向的 call 和 apply
  3. oracle 分区字符转换,Oracle 普通表与分区表转换
  4. laravel5.6 使用指定字段作为key_MyRocks TTL使用姿势及Bugfix
  5. Andoid TextView显示富文本html内容及问题处理
  6. 如何使用explain进行SQL语句调优
  7. mysql类似的数据库_MemSQL学习笔记-类似MySQL的数据库
  8. Eclipse(STS 4)闪退导致EGit插件异常
  9. Jackson快速入门
  10. c语言死锁算法实验报告,死锁实验报告