FFmpeg视频转码关键参数详解

news2024/11/18 3:29:17

1 固定码率因子crf(Constant Rate Factor)

固定码率因子(CRF)是 x264 和 x265 编码器的默认质量(和码率控制)设置。取值范围是 0 到 51,这其中越低的值,结果质量越好,同时输出文件越大,越高的值意味着越高的压缩比,但可能会在值大到某个点的时候注意到明显的质量损失。

  • 对 x264,一般取值在 18 到 28 之间,默认值是 23。
  • 对 x265,默认CRF值是 28

CRF数值 +6 会使文件大小减半,为了达到最优编码效果,主要在离线文件存储中使用CRF编码如下:

命令行使用示例如下:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

 2 指定编码速度preset

指定的编码速度越慢,获得的压缩效率就越高,取值范围如下:

ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
  • placebo与veryslow相比提高了1%,以极高的编码时间为代价
  • veryslow与 slower相比提升了3%
  • slower与slow相比提升了5%
  • slow 与 medium相比提升了5%~10%

3 视频帧率

3.1 输入帧率

帧率(frame per second)就是视频每秒播放的图片的帧数。帧率至少要达到15fps,人眼才能才能看到连贯的动作。15fps即1秒刷新15次。帧率主要分为两类,一种是交错的(interlaced 缩写为i),一种是步进的(progressive 缩写为p)。

  • 交错帧率(interlaced 缩写为i)一般应用在电视节目上。NTSC(美国电视标准)使用60i的帧率,也就是每秒60个交错场(也就是30帧,两个交错场就是一帧)。PAL和SECAM标准使用50i的帧率,也就是每秒25帧。
  • 步进帧率(progressive 缩写为p)通常使用在电影节目上,常使用的值包括24p、25p、30p。最近一些高清的电影电视终端节目上30p已经无法满足需求,最新使用的帧率通常为50p和60p。

常见帧率的使用场景说明如下表所示:

帧率描述
24p/23.976p 电影行业从1920年引入的标准帧率,在早期电影节目上使用的比较频繁。 NTSC采用该帧率的时候将帧率降到了23.976,PAL/SECAM采用该帧率的时候将帧率升到了25fps
25p 

使用50HZ电子频率国家中的电视电影节目的标准帧率,因为25p的帧率很容易转换成50i的帧率 

30p   数码相机和摄像机的帧率,30p的帧率很容易转换成60i用于电视直播
50i    PAL和SECAM电视标准的标准帧率
60i/59.94  NTSC标准中的标准帧率
50p/60p  高清电视(HDTV)常用的帧率
48p新提出的帧率
72p 新提出的帧率
120p 超高清电视节目(UHDTV)使用的帧率
ffmpeg -i input.mp4

输出的帧率fps如下:

    Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 19999 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 120k tbc (default)

3.2 输出帧率

在设置输出视频的帧率时,需要使用-r选项。以下是使用-r项设置输出视频帧率为30 fps的示例命令:

ffmpeg -i input.mp4 -r 30 output.mp4

使用-r选项将输出视频的帧率设置为30 fps。输出视频的文件名为output.mp4。

通过代码使用Python的subprocess模块调用ffmpeg设置输出视频帧率

import subprocess

input_file = 'input.mp4'
output_file = 'output.mp4'
frame_rate = 30

command = ['ffmpeg', '-i', input_file, '-r', str(frame_rate), output_file]
subprocess.run(command)

4 输出分辨率

将input.mp4更改为分辨率320*240的视频输出,命令示例:

	ffmpeg -i input.mp4 -s 320x240 output.mp4 

视频分辨率和压缩大小参考 

分辨率Bitrate10分钟的视频
320p 320×240180 kbit/s~13 MB
360p 640×360300 kbit/s~22 MB
480p 864×480500 kbit/s~37 MB
576p 720x576850 kbit/s~63 MB
720p 960×7201000 kbit/s~75 MB

5 视频文件转gif图像

-ss开始截图时间(秒)截图开始时间越接近篇尾,所花费的时间就越长。
-t截图时长(秒)省略-ss和-t转换整个视频文件。
-i输入文件
-y覆盖旧文件
-sgif图片的宽和高
-f生成图片格式可以省略,按扩展名转换
-r帧率视频文件中每一秒的帧数

命令示例:

ffmpeg -ss 5 -t 10 -i input.mp4 -y -s 640x480 -f gif -r 1 output.gif

6 用图片制作视频和gif

将test-001.jpg,test-002.jpg…顺序排列的图片文件转换为视频和gif。

ffmpeg -f image2 -r 1 -i test-%03d.jpg -y output.mp4

ffmpeg -f image2 -r 1 -i test-%03d.jpg -y output.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/687430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实力见证丨酷雷曼VR再获2项国家发明专利

近日,酷雷曼公司(北京同创蓝天云科技有限公司)再次喜获两项发明专利证书:“VR多端协同交互方法及相关设备”、“VR展示用户操作方法及相关设备” 。两项专利均基于酷雷曼3D VR系统发明,进一步优化了目前VR全景触控界面互动性及交互…

企业所得税高是怎么回事?该如何解决?

企业所得税高是怎么回事?该如何解决? 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 企业所得税高,一般企业都会运用一些税务筹划的方式来解决,那么事前的规划和搭建好业务框架就显得尤为重要。真…

FFmpeg初识

一、简介 它的官网为:https://ffmpeg.org/,由Fabrice Bellard(法国著名程序员Born in 1972)于2000年发起创建的开源项目。该人是个牛人,在很多领域都有很大的贡献。 FFmpeg是多媒体领域的万能工具。只要涉及音视频领域…

第43步 深度学习图像识别:InceptionResnetV2建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 (1)InceptionResnetV2 InceptionResNetV2是一种由Google研究人员开发的深度学习模型,是一种混合了Inception和ResNet(残差网络)两种结构的卷积神经网络(CNN&#…

通过cifar-10数据集理解numpy数组的长(H)、宽(W)、通道(C)

文章目录 1、CIFAR-10数据集介绍1.1 CIFAR-10数据集的构成1.2 batches.meta1.3 data_batch_n.py & test_batch.py 2、获取一张图片的data数据2.1 反序列化获得numpy数据2.2 清楚numpy中的H、W、C的含义2.3 清楚RGB图片在numpy中的表示 3、处理图片数据的代码 1、CIFAR-10数…

渗透测试实战-BurpSuite 使用入门

前言 近期笔者在学习 web 渗透测试的相关内容,主要是为了公司之后的安全产品服务。渗透测试本身在学习过程中还是很有意思的,有一种学习到了之前想学但是没学的黑客技术的感觉,并且对笔者已掌握的许多知识做了有益的补充。要学习渗透测试&…

ThinkPHP 对接美团大众点评团购券(门票)

一、功能简要介绍 1、根据需求,用户在美团大众点评中所购买的门票在自己的系统上可以核销,同时把核销信息存储到自己的系统里。2、美团点评API文档地址:[https://open.dianping.com/document/v2?rootDocId5000](https://open.dianping.com/…

PostgreSQL13.1

目录 1. PostgreSQL简介1.1 PostgreSQL是什么?1.2 PostgreSQL数据库的优缺点是什么?1.2.1 PostgreSQL的主要优点如下:1.2.2 PostgreSQL的应用劣势如下: 1.3 PostgreSQL不同大版本之间的特性比较1.4OpenGauss与PostgreSQL的对比1.4…

管理类联考——逻辑——知识篇——分析推理——三、分组——haimian

分组 题型特征 题干给出5-7个对象和2-5个限制条件,需根据题干要求分为2~3组。要注意题干中需分为几组,每组几个对象,对象有哪些限制因素,并灵活运用排除法、假设法、分析法、数字法、假言命题性质等方法解题。 思维导图 思路点…

技术管理第三板斧招聘与解聘-找到人

1.人才要自己去找、去抢 从团队的角度出发,Leader“主动出击、寻找合适人选”的观念符合逻辑,你既然是团队的一号位,自然最应该了解团队现状,以及团队需要的人选。与此同时,找到合适的人对你的影响最大而非 HR&#x…

大势智慧软硬件技术答疑第四期

1.重建大师是否支持bigmap绘制的范围线? 答:目前重建大师仅支持面格式的,bigmap的还没试验过,globalmapper或者arcgis是可以的。 2.为什么6.1建模的时候引擎一直是等待呢? 答:检查一下引擎面板引擎监控目录…

软件测试人员应该如何介绍自己测试过的项目工作【商城项目实战讲解】

测试人员在找工作的过程中,通常有一个问题是很难绕开的。就是要如何向别人介绍自己之前做过的项目。下面我们就这个问题简单的做一些分析。 要解决这个问题,大体上可以分为如下几个步骤: 1、对项目进行基本介绍 2、说明自己负责测试的模块 …

vue-router之hash与history,以及nginx配置

本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题。 vue-router的路由模式可以通过指定mode属性值控制,可选值:“hash” 、“history”、 “abstract” , 默认:“…

一篇文章告诉你什么是—Selenium的元素等待

前言 今天我们来说说selenium的元素等待,废话不多说直接开始吧。 1、元素等待介绍 WebDriver定位页面元素时如果未找到,会在指定时间内一直等待的过程。为了保证脚本运行的稳定性,需要脚本中添加等待时间。 2、为什么要设置元素等待 在元…

OpenStack(4)--NameSpace实现不同项目(租户)重叠网段

openstack通过namespace将不同项目(租户)的网络隔离,每个项目的管理员都需要对项目网络进行规划建设,这就导致不同项目之间会重复使用到某些网段,例如192.168.X.X就是管理员习惯使用的网段。 上一次我们新建位于vxlan…

基于Java的景区售票信息管理系统

1.设计要求 (1)要求每个学生独立完成期末作品,在遇到问题时,同学之间可以相互讨论,但切忌复制他人程序。 (2)根据期末作品题目,自己编写程序,上机调试程序,…

uniapp视频播放器

微信小程序使用hic-video-player app(android和ios)使用好用视频播放器注:用的是旧版本的这个组件 目前只有app中支持竖屏横批选集 android视频全屏是通过 beforeDestroy() {// #ifdef APP-VUE// 页面关闭时关闭沉浸模式if (uni.getSystemInfoSync().platform &quo…

【FFmpeg实战】解复用实战

原文链接:https://blog.csdn.net/u014078003/article/details/128554153 1.封装格式相关函数 avformat_alloc_context():负责申请一个AVFormatContext结构的内存,并进行简单初始化,这个函数可以不用手动调用,内部会自动调用。avf…

【无标题】NXP i.MX 6ULL工业核心板硬件说明书( ARM Cortex-A7,主频792MHz)

1 硬件资源 创龙科技SOM-TLIMX6U是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的低成本工业级核心板,主频792MHz,通过邮票孔连接方式引出Ethernet、UART、CAN、LCD、USB等接口。核心板经过专业的PCB Layout和高低温测试验证&…

怎么才能提高自动化测试的覆盖率,华为大佬教你一招!

前言 自动化测试一直是测试人员的核心技能,也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下,各大企业对测试人员的技术水平要求的很高,而测试人员的技术水平主要集中在三大自动化测试领域,再加测试辅助脚本的编写…