ffmpeg 常用知识点收集

一、基础简介

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

FFmpeg官网:https://www.ffmpeg.org/

Github地址:https://github.com/FFmpeg/FFmpeg

FFmpeg项目由以下几部分组成:

  • FFmpeg视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件;

  • ffserver基于HTTPRTSP用于实时广播的多媒体服务器.也支持时间平移;

  • ffplaySDLFFmpeg库开发的一个简单的媒体播放器;

  • libavcodec一个包含了所有FFmpeg音视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的;

  • libavformat一个包含了所有的普通音视格式的解析器和产生器的库。

 

帧率:帧率(Frame rate)也叫帧频率,帧率是视频文件中每一秒的帧数,肉眼想看到连续移动图像至少需要15帧。

码率:比特率(Bit rate)(也叫码率,数据率)是一个确定整体视频/音频质量的参数,秒为单位处理的字节数,码率和视频质量成正比,在视频文件中中比特率用bps来表达。

帧率
1、用 -r 参数设置帧率

ffmpeg –i input –r fps output

2、用fps filter设置帧率

ffmpeg -i 1.mp4-vf fps=fps=25 11.mp4

例如设置帧率为29.97fps,下面三种方式具有相同的结果:

ffmpeg -i input.avi -r 29.97 output.mp4
ffmpeg -i input.avi -r 30000/1001 output.mp4
ffmpeg -i input.avi -r netsc output.mp4

码率】设置参数-b

ffmpeg -i 1.mp4 -b 1.5M 2.mp4

音频:-b:a

视频: - b:v

设置视频码率为1500kbps

ffmpeg -i input.avi -b:v 1500k output.mp4

控制输出文件大小

-fs (file size首字母缩写)

ffmpeg -i input.avi -fs 1024K output.mp4

计算输出文件大小:( 视频码率 + 音频码率 ) * 时长 / 8 = 文件大小(K)

二、视频压缩

命令行参数-crf

优先保证画面质量(转码时间可能较长)的情况下,使用-crf参数压缩,取值范围为0~51,其中0为无损模式,数值越大,画质越差,输出文件越小。

参考值:18~28,18被认为是视觉无损的,输出视频质量和输入视频相当。

ffmpeg -i 源文件.mov -c:v libx264 -preset veryslow -crf 18 -c:a copy 目标文件.mp4

意思是:将D盘的源文件src.mov,以 veryslow 的速度重新编码成H.264格式并保存为mp4文件。-preset指定的编码速度越慢,获得的压缩效率就越高。

查看 -preset 取值范围:

ffmpeg -i 源文件.mov -c:v libx264 -preset -tune 目标文件.mp4

-c:a copy 是将音频数据从源文件中以原有编码格式直接拷入目标文件。

-c:v 参数取值查看

ffmpeg -encoders

ffmpeg 常用知识点收集的更多相关文章

  1. FFmpeg 常用命令收集

    FFmpeg 常用命令 合并视频 ffmpeg -i "KTDS-820A_FHD.mp4" -c copy -bsf:v h264_mp4toannexb -f mpegts i ...

  2. HTML常用知识点代码演示

    1 HTML部分常用知识点 <!-- 版本声明 --> <!DOCTYPE html> <!-- 唯一根元素 --> <html> <!-- 对网 ...

  3. js基础知识点收集

    js基础知识点收集 js常用基本类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); ...

  4. ffmpeg常用基本命令(转)

    [FFmpeg]FFmpeg常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpe ...

  5. WEB前端常用网站收集

    WEB前端常用网站收集整理 w3school.w3schools 前端里.脚本之家.素材家园 17素材.frontopen NEC更好的CSS方案.一些常用的JS实例 Bootstrap  官网  h ...

  6. DB2_SQL_常用知识点&实践

    DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...

  7. c# ffmpeg常用参数

    c#  ffmpeg常用参数 转换文件格式的同时抓缩微图: ffmpeg -i "test.avi" -y -f image2 -ss 8 -t 0.001 -s 350x240 ...

  8. FFmpeg常用基本命令

    FFmpeg常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i inp ...

  9. JS 常用功能收集

    JS 常用效果收集 1. 回到顶部>>    爱词霸

随机推荐

  1. 在docker for windows建立mssql容器后,ssms连接mssql出现错误号码18456的问题

    在docker for windows建立mssql容器后,ssms连接mssql出现错误号码18456的问题 笔者提供一个可能会没考虑到的点. 请检查本机是否安装了mssql!!! 请检查本机的ms ...

  2. JDBC连接流程

    ConectionFactory cf = new ConectionFactory();//创建数据库连接Connection con = cf.getConection();//打开水数据库的连接 ...

  3. Linux bash命令行常用快捷键(Xshell和secure CRT以及gnome-terminal)

    常用的命令行击键操作 ctrl + insert   xshell中复制,可以设置选中内容自动复制ctrl shift + c crt中复制shift + insert xshell中粘贴ctrl s ...

  4. WebAssembly正逐渐成为FaaS的主力

    相信很多人都知道PaaS(平台即服务)和IaaS(基础设施即服务).而随着云计算时代的发展,逐渐出现了大量的XaaS形式的概念,这些技术从原先的硬件服务器,虚拟化服务,再到容器化逐渐转变.使得软件发布 ...

  5. 使用Pycharm创建Django项目无法创建app.

    Python3.7使用Django1.11.7创建Django项目报以下错误时: 在使用Pycharm创建Django项目报以下错误时: Traceback (most recent call las ...

  6. odoo里面条件写法

    attrs="{'invisible': ['|', ('probability', '>', 0), ('active', '=', True)]}"/>. 写法gt ...

  7. Java键盘获取数据

    java录入键盘数据,整型.浮点型.布尔型.字符串. 通过导入java.util.Scanner实现各类操作 import java.util.Scanner;//导入包 public class H ...

  8. PHP 接受提交变量过滤类

    Filter.class.php      : 1 <?php 2 class Filter{ 3 4 /** 5 * 将\n转化为<br/> 6 * 7 * @param stri ...

  9. DC-3靶机

    仅供个人娱乐 靶机信息 下载地址:http://www.five86.com/downloads/DC-3.zip 一.主机扫描 arp-scan -l nmap -A -p 1-65535 -sV ...

  10. 大数据学习(21)—— ZooKeeper原理

    这一篇我们对zookeeper的主要原理做一个简单介绍.zookeeper的核心原理是zookeeper atomic broadcast(ZAB协议),它来源于paxos协议.这里用通俗易懂的话,介 ...