首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

FFmpeg在游戏视频录制中的应用:画质与文件大小的综合比较

编程知识
2024年08月03日 19:56

我们游戏内的视频录制目前只支持avi固定码率,在玩家见面会上有玩家反馈希望改善录制画质,我最近在研究了有关视频画质的一些内容并做了一些统计。

录制视频大小对比

首先在游戏引擎中增加了对录制mp4格式的支持,并且使用h246编码可以直接在网页上播放无法再做转码

测试场景:视频尺寸固定大小为: 1904x1002,avi使用mpeg4,mp4使用h264,比特率(bit rate /码率)20Mb/s,录制出来的视频文件大小

视频格式 30fps/30s 30fps/60s 60fps/60s 60fps/180s
avi视频大小 70.2 143.07 144.03 429.44
mp4视频大小 68.4 139.66 140.59 430.7

实验二:把码率调整到10Mb/s,相同的fps和视频时长,文件体积缩小一半,这里没记录到表格中。

为什么mp4和avi的文件大小接近?fps不会影响文件大小吗?

相同码率不同fps不会影响到画质,fps只会影响视频的流畅度

简单理解码率是分配给每一帧的数据量,分的越多,画质越清晰,文件体积也越大

不同画质对应的码率表

现在我们游戏内提供给玩家是avi格式 ,码率20Mb/s ,fps范围在10~30之间

引擎已增加新增接口并且藏宝阁录制客户端已经在使用新接口,希望可以开放更多设置给到玩家

自定义格式:avi和mp4

自定义码率:用来提高画质,比如720p,1080p,2k,4k,制作一个滑块或下拉列表来选择不同画质

开放更高帧率,60FPS

附:不同画质对应的码率表

画质 720p 1080p 2k 4k
码率 1mbps~4mpbs 3mbps~8mbps 5mbps~20mpbs 20mbps~50mbps

录制视频标准

参考网易主流手机游戏标准如下:

尺寸:都是相近1920*1080

码率:10000kpbs左右,约10Mbps

帧率:50帧左右

大小:平均有20~40MB(长度在20秒左右的大小)

视频码率通常使用kbps(千比特每秒)或Mbps(兆比特每秒)作为单位。其中,1Mbps等于1000kbps。Mbps用于描述较高的码率,而kbps用于描述较低的码率。

天下3现在默认的码率:20000000,录制20秒50fps的视频文件大小为46.23MB,改为藏宝阁要求的码率,20秒视频50FPS文件大小降为24MB

画质对比

为什么录制avi和mp4格式的视频画质上差别不大?

这是因为AVI和MP4都是容器格式,它们本身并不影响视频的画质。实际上,视频的画质取决于编码器和比特率等因素。如果使用相同的编码器和比特率,那么AVI和MP4格式的视频画质应该是相同的。但是,由于MP4格式通常使用更先进的视频编码器,因此在相同比特率下,MP4格式的视频可能会更清晰。

h264和mpeg4那种画质更清晰?

H.264和MPEG-4都是视频编码标准,它们都可以提供高质量的视频压缩。在相同的比特率下,H.264和MPEG-4的文件大小应该是差不多的,但是,H.264通常比MPEG-4提供更好的画质,因为它使用更先进的压缩技术,可以在相同的比特率下提供更高质量的视频。此外,H.264还支持更高的分辨率和帧速率,因此在高清视频和流媒体应用中更为常见。

fps对视频的影响?

FPS决定了视频的流畅度和清晰度,如果录制的视频中有快速移动的物体或快速变化的场景,需要使用较高的 FPS 值来捕捉更多的细节,否则视频可能会出现模糊或失真的情况。

From:https://www.cnblogs.com/zhaoqingqing/p/18341079
本文地址: http://shuzixingkong.net/article/755
0评论
提交 加载更多评论
其他文章 iOS开发基础146-深入解析WKWebView
WKWebView是苹果在iOS 8中引入的重要组件,它替代了UIWebView,为开发者提供了高性能、高稳定性的网页显示和交互能力。在本文中,我们将深入探讨WKWebView的底层架构、关键特性、使用方法和高级功能。 一、WKWebView的底层架构 WKWebView基于WebKit框架,采用多
2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`, 我们定义一个名为 `isPrefixAndSuffix` 的布尔函数,该函数接受两个字符串参数 `str1` 和
2024-08-03:用go语言,给定一个从 0 开始的字符串数组 words, 我们定义一个名为 isPrefixAndSuffix 的布尔函数,该函数接受两个字符串参数 str1 和 str2。 当 str1 同时是 str2 的前缀和后缀时,函数返回 true;否则返回 false。 例如,i
2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`, 我们定义一个名为 `isPrefixAndSuffix` 的布尔函数,该函数接受两个字符串参数 `str1` 和 2024-08-03:用go语言,给定一个从 0 开始的字符串数组 `words`, 我们定义一个名为 `isPrefixAndSuffix` 的布尔函数,该函数接受两个字符串参数 `str1` 和
OpenCV计算机视觉学习(16)——仿射变换学习笔记
如果需要其他图像处理的文章及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 在计算机视觉和图像处理中,仿射变换是一种重要的几何变换方法。它可以通过线性变换和平移来改变图像的
OpenCV计算机视觉学习(16)——仿射变换学习笔记 OpenCV计算机视觉学习(16)——仿射变换学习笔记 OpenCV计算机视觉学习(16)——仿射变换学习笔记
Blazor Web 应用如何实现Auto模式
本文介绍Blazor Web应用Auto交互呈现模式的实现方案,如下示例是基于 Known 框架来实现的,该解决方案共有3个项目,具体实现步骤如下: 1. 前后端共用项目 创建前后端共用类库项目Sample,定义系统的实体类、数据模型、服务接口、常量、枚举等,项目工程文件内容如下: <Proj
实现一个终端文本编辑器来学习golang语言:第二章Raw模式下的输入输出
从第二章开始,在每个小节的最后都会有一些代码实操作业,你可以选择自己完成(比较推荐),再对照我的实现方式,当然也可以直接看我的代码实现。不过,之后的各个功能实现,我都会基于我先前的代码实现版本,在它的基础上进行扩展。 首先,我们先来解决第一章遗留的第一个问题:输入数据会被stdin缓存,直到遇到换行
实现一个终端文本编辑器来学习golang语言:第二章Raw模式下的输入输出
[rCore学习笔记 021]多道程序与分时任务
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 导读 这里就是第三章的开头了,由于我的巨菜,导致天天半天理解不了关键点所在,唉,实在是太折磨人. 遵照上一
[rCore学习笔记 021]多道程序与分时任务 [rCore学习笔记 021]多道程序与分时任务 [rCore学习笔记 021]多道程序与分时任务
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
Python 中的对象和类型是一个非常重要的概念。在 Python 中,一切都是对象,包括数字、字符串、列表等,每个对象都有自己的类型。
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type 全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type 全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
【JavaScript】前端算法题 40道题+解析
最近练习了一些前端算法题,现在做个总结,以下题目都是个人写法,并不是标准答案,如有错误欢迎指出,有对某道题有新的想法的友友也可以在评论区发表想法,互相学习🤭