我们游戏内的视频录制目前只支持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 值来捕捉更多的细节,否则视频可能会出现模糊或失真的情况。

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

  1. (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

    你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...

  2. Android开发笔记——视频录制播放常见问题

    本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程 以微信为例,其录制触发为按下(住) ...

  3. 利用FFmpeg玩转Android视频录制与压缩(二)<转>

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  4. Flash+fms视频录制在项目中的实际应用

    Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...

  5. Android 中使用MediaRecorder进行录像详解(视频录制)

    在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. package com.video; import java.io.IOException; import android.ap ...

  6. iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

    --iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...

  7. android 视频录制 混淆打包 之native层 异常的解决

    原文地址:http://www.cnblogs.com/linguanh/    (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...

  8. iOS开发----音频播放、录音、视频播放、拍照、视频录制

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  9. 音频播放、录音、视频播放、拍照、视频录制-b

    随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...

  10. android视频录制、另一部手机实时观看方案

    最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...

随机推荐

  1. OpenCV简单实现AR需用到的算法函数介绍

    目前的AR需求(想要达到的目标) 公司目前的需求是要能够指定一个物体开始追踪,将一张预先准备好的图像覆盖在被追踪的物体上, 然后镜头偏转缩放各类操作,再转回来仍然可以识别到,并且同样依旧覆盖图片到先前 ...

  2. npm 发布自己的组件库

    npm 发布组件库步骤 第一步:注册 npm 账号 第二步:编写自己的组件库 第三部:编写 package.json 可以通过命令生成 npm init { "name": &qu ...

  3. redis zset 延迟合并任务处理

    redis zset 延迟合并任务处理 @Autowired public RedisTemplate redisTemplate; ##1.发送端:在接口中收集任务ID,累计时间段之后,合并处理. ...

  4. springboot支持http2

    现在http/3都出来了,但是很多项目还是没有采用https,这个是说不过去的. http3在2022/06/06 正式发布,具体见https://www.163.com/dy/article/H9B ...

  5. Bloom Filter布隆过滤器

    简介 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 "某样东西一定不存在或者可 ...

  6. kong网关部署

    软件版本: Postgresql:9.6 (不使用最新版,是因为 konga 不支持) Kong:3.4.2 konga:0.14.7 (UI管理界面) ### Postgresql部署 ## doc ...

  7. Vue2 整理(二):核心篇(组件化开发)

    前言 上一篇连接:vue2 整理:基础篇. 组件化开发 组件概念 组件,对于学Java的人来说的话,这个词所要表达的意思再熟悉不过了. 所谓组件就是:面向对象中的抽象.封装思想:而所谓的组件化就是:把 ...

  8. ubuntu20 python2 通过安装包安装mysql-python

    前言 众里寻他千百度,蓦然回首,那人却在灯火阑珊处. 最近要测试一个python2环境的代码,其中用到了MySQLdb, 查询网络,发现要安装mysql-python,于是就进行了一番艰难的探索,现在 ...

  9. Springboot+Shiro+Mybatis+mysql实现权限安全认证

    Shiro是Apache 的一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.Shiro 主要分为两个部分就是认证和授权两部分 一.介绍 Subject代表了当前用户的安全操作 ...

  10. oeasy 教您玩转linux 010304 图形界面 xfce

    我们来回顾一下 上一部分我们都讲了什么? 讲了文件管理器和命令行终端互相交互 用命令nautilus在文件管理器打开某路径 这次我们来看看 图形用户界面(GUI)的情况 图形界面和发行版的关系 一个发 ...