FFmpeg在游戏视频录制中的应用:画质与文件大小的综合比较
我们游戏内的视频录制目前只支持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在游戏视频录制中的应用:画质与文件大小的综合比较的更多相关文章
- (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片
你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...
- Android开发笔记——视频录制播放常见问题
本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程 以微信为例,其录制触发为按下(住) ...
- 利用FFmpeg玩转Android视频录制与压缩(二)<转>
转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...
- Flash+fms视频录制在项目中的实际应用
Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...
- Android 中使用MediaRecorder进行录像详解(视频录制)
在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. package com.video; import java.io.IOException; import android.ap ...
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
- android 视频录制 混淆打包 之native层 异常的解决
原文地址:http://www.cnblogs.com/linguanh/ (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...
- iOS开发----音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- 音频播放、录音、视频播放、拍照、视频录制-b
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- android视频录制、另一部手机实时观看方案
最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...
随机推荐
- kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程
1.今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到.果断开始撸. 2.本次演示流程通过调用接口[网易云音乐随机歌曲],然后解析返回的数据, ...
- kettle从入门到精通 第十九课 kettle 资源仓库
1.kettle 里面的资源仓库的意思就是存放转换(.ktr)或者job(.kjb)文件的地方.通过spoon客户端右上角可以进行设置资源仓库. 2.kettle的资源仓库有三种方式 1)本地文件存储 ...
- mysql报错 a foreign key constraint fails(外键约束错误)
报错信息如下: (pymysql.err.IntegrityError) (1452, u'Cannot add or update a child row: a foreign key constr ...
- raksmart服务器部署SSL报错:ERR_CERT_COMMON_NAME_INVALID
背景:raksmart服务器 下篇 部署项目 SSL报错:ERR_CERT_COMMON_NAME_INVALID 安装certbot sudo apt update sudo apt install ...
- github fork后对上游仓库的做rebase
想对上游仓库做更新同步 先添加上游仓库 git remote add upstream https://github.com/原始作者/原始仓库.git 其中这里的upstream 是一个命名,和 o ...
- 在线IP归属地查询工具
在线IP地址归属地查询工具,通过该工具可以查询指定IP的物理地址或域名服务器的IP和物理地址,及所在国家或城市IP归属地,数据为纯真IP. 在线IP归属地查询工具
- 彻底解决IDEA Jrebel 错误找不到口令文件的问题
本来我的Jrebel也是好用的,突然就变成了这个样子,网上针对这个问题有很多帖子,但是每次新建项目后我都需要去解决一下这个问题,这我不能忍,经过一整天的百度和测试终于找到了原因并解决这个问题,伸手党直 ...
- GIT 生成变更历史文件清单
脚本搞定git文件版本变化信息,解决部署种变更的审核和统计信息工作复杂问题 git diff --name-status --ignore-cr-at-eol --ignore-space-at-eo ...
- Xilinx ZYNQ-7000 平台简介
平台介绍 Zynq7000是赛灵思公司(Xilinx)推出的行业第一个可扩展处理平台Zynq系列.旨在为视频监视.汽车驾驶员辅助以及工厂自动化等高端嵌入式应用提供所需的处理与计算性能水平. 在2010 ...
- Windows/Linux 通过 ssh 打开 远程服务器 GUI程序
背景 在 Windows + ssh(Cygwin) + Linux(运行在虚拟机中的Ubuntu) 是一个很舒服的方案,但是偶尔需要用到 图形界面. 如果需要通过ssh打开远程服务器端的程序,需要X ...