《自拍教程19》ffmpeg_音视频图像转码工具
ffmpeg命令介绍
ffmpeg.exe(linux/imac一般不带后缀,ffmpeg),
是一款音视频编解码的命令行工具软件, 常用于多媒体测试的文件制作与转码。
我们常用的:格式工厂,MediaCoder等多媒体格式转换软件,
其关键技术有一部分是直接或间接依赖ffmpeg.exe的,
ffmpeg可以说是编解码界使用最广泛的工具了。
不管是做多媒体测试,音视频编解码测试,还是普通测试人员日常工作,
比如一个Bug的视频太大了,无法作为附件上传到Bug系统,
则需要对视频用ffmpeg重新编码,比如降低分辨率,降低帧率等。
最终降低了视频的比特率,视频文件自然变小了很多,
这些我认为是测试人员的必备能力之一。
Windows版下载地址
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20181210-a271025-win64-static.zip,
下载后解压,把bin文件夹下的ffmpeg.exe丢到path环境变量里去,能在cmd端访问即可。
常用参数(暂只列出针对测试人员的常见参数)
-i 表示inputfile, 就是ffmpeg需要处理的文件(音频文件,视频文件,图片文件,原始音视频流)
-s 表示size, 分辨率设置, 视频相关的参数
-b 表示Video bitrate, 视频比特率,即每秒种的数据量,一般数据量越大,视频质量越好。
-r 表示frame rate, 视频的帧率,即每秒钟显示多少张图片,一般图片数越多,表示采样的越精细,视频质量越好
-ab 表示Audio bitrate,音频比特率,即每秒钟的数据量,-一般数据量越大,音频质量越好。
-ar 表示Audio rate, 即音频采样率,即每秒钟采集音频多少次,一般采集的次数(频率)越大,音频质量越好。
-an 表示Audio Notavaliable, 即去除音频数据
常见用法(暂只列出针对测试人员的常见用法)
table.dataframe {
font-family: verdana,arial,sans-serif;
font-size:13px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
width:80%;
white-space:nowrap;
}
table.dataframe th {
background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:center;
}
table.dataframe tr {
background-color:whit;
}
table.dataframe td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
text-align:left;
white-space:nowrap;
}
| 序号 | ffmpeg命令常见用法 | 释义 |
|---|---|---|
| 1 | ffmpeg -i input.mp4 -r 12 -s 640x480 output.mp4 | 将input.mp4进行重编码(按帧率12fps, 分辨率640x480)并另存为outpu.mp4 |
| 2 | ffmpeg -i input.mp4 output.mp3 | 提取input.mp4视频里的音频文件, 并另存为output.mp3 |
| 3 | ffmpeg - input.jpg output.png | 将input.jpg图片重新编码转换成png格式, 并另存为output.png |
| 4 | ffmpeg -i input.mov output.mp4 | 将input.mov进行重编码(帧率不变, 分辨率不变,编码格式会变成h.264) 并另存为outpu.mp4 |
| 5 | ffmpeg -i input.mp4 -an output.mp4 | 将input.mp4视频进行去音频处理, 并另存为output.mp4 |
| 6 | ffmpeg -i input.mp3 -ar 44.1 output.mp3 | 将input.mp3进行重编码(按采样率44.1khz), 并另存为output.mp3 |
| 7 | ffmpeg -i input.mp4 -f image2 C:\img_%04d.jpg | 将input.mp4视频转换成jpg图片帧 |
执行效果

tips 想了解更多ffmpeg命令及其参数,可以用ffmpeg --help来查看帮助文档
tips 下载ffmpeg.exe的过程中,还有一个ffplay.exe,ffprobe.exe.
ffplay.exe是ffplay解码播放器,ffplay.exe video.mp4 播放一个视频试试。
ffprobe.exe是查看多媒体信息流的,其实和mediainfo.exe差不多
更多更好的原创文章,请访问官方网站:www.zipython.com
原文链接:https://www.zipython.com/#/detail?id=5d3b9961790443ce9696fb8617225959
《自拍教程19》ffmpeg_音视频图像转码工具的更多相关文章
- 《自拍教程19》aapt_apk信息查看工具
aapt命令行工具介绍 aapt.exe(Linux/Ubuntu/imac操作系统下是未带后缀的aapt), 是android sdk自带的用于打包apk,解析apk的命令行工具软件. aapt.e ...
- FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...
- Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载
☞ ░ 前往老猿Python博文目录 ░ 一.简介 MoviePy是一个用于视频编辑的Python模块,可用于进行视频的基本操作(如剪切.拼接.标题插入).视频合成(也称非线性编辑).视频处理或创建高 ...
- 个人永久性免费-Excel催化剂功能第83波-遍历文件夹内文件信息特别是图像、音视频等特有信息
在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能. 使用场景 在文件管 ...
- 实时音视频互动系列(上):又拍云UTUN网络详解
如何定义实时音视频互动, 延迟 400ms 内才能无异步感 实时音视频互动如果存在1秒左右的延时会给交流者带来异步感,必须将视频播放延迟限制在400ms以内,才能给用户较好的交互体验. 当延迟控制在4 ...
- 音视频入门-04-BMP图像四字节对齐的问题
* 音视频入门文章目录 * BMP 图像四字节对齐 表示 BMP 位图中像素的位元是以行为单位对齐存储的,每一行的大小都向上取整为4字节(32 位 DWORD)的倍数.如果图像的高度大于 1,多个经过 ...
- Python MoviePy中文教程导览及可执行音视频剪辑工具下载
☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy ...
- Android视频录制从不入门到入门系列教程(二)————显示视频图像
1.创建一个空的工程,注意声明下列权限: <uses-permission android:name="android.permission.CAMERA"/> < ...
- Python音视频开发:消除抖音短视频Logo的图形化工具实现
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...
随机推荐
- Asp.Net Core Identity 隐私数据保护
前言 Asp.Net Core Identity 是 Asp.Net Core 的重要组成部分,他为 Asp.Net Core 甚至其他 .Net Core 应用程序提供了一个简单易用且易于扩展的基础 ...
- Django2 外键遇到的坑
# 出版社 class Publisher(models.Model): # 自增.主键 id id = models.AutoField(primary_key=True) # varchar(32 ...
- Java入门 - 面向对象 - 01.继承
原文地址:http://www.work100.net/training/java-inheritance.html 更多教程:光束云 - 免费课程 继承 序号 文内章节 视频 1 概述 2 继承的特 ...
- Java中的循环语句
1.1 while 循环语句 while 语句也称为条件判断语句. 循环方式 : 利用一个条件来控制是否要反复执行这个语句. 语法 : while(条件表达式){ 执行语句 } 当条件表达式的返回值为 ...
- http1.0、http1.x、http 2和https梳理
http1.0.http1.x.http 2和https梳理 Http1.x 线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞 http1.0 缺陷:浏览器与服务器只保持 ...
- java 排序算法分析
一.冒泡排序(时间复杂度O(N^2)) public int[] bubbling(int[] arr){ ) return arr; ; i--){ 1 ; j < i-; j ++){ 2 ...
- 五、Django学习之基于对象的跨表查询
五.Django学习之基于对象的跨表查询 正向与反向查询 关键在于ForeignKey字段写的位置.例如下面这段代码, 关系属性(字段)写在哪个类(表)里面,从当前类(表)的数据去查询它关联类(表)的 ...
- python笔记15
今日内容 模块知识 内置模块 time datetime json 其他 内容回顾 & 作业题 重要知识点 构造字典和函数对应关系,避免重复的if else a=1 b=2 ==> a, ...
- django登录页面优化
环境准备 1.python3.6 2.django2.0+ 3.bootstrap3 后台代码 #创建login_check视图函数,用来处理登录 def login_action(request): ...
- 在Navicat新建用户
1.Ctrl+Q,进入查询,创建表空间. 输入create tablespace test datafile 'D:\Oracle\test.ora' size 1000m; 这里的test为表空间名 ...