基于ffmpeg不同编码方式转码后的psnr对比
一、测试说明:
源文件:1080psrc.mp4
时长:900秒
源文件信息:Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 2960 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
编解码方式:CPU软解
二、硬件环境
CPU:Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz
MemTotal:263778192 kB 【256G】
服务器型号:浪潮5280M5
三、测试记录
1、medium编码方式
转码命令:
ffmpeg -i 1080psrc.mp4 -vcodec libx264 -b:v 2000k -preset medium -s 1920x1080 1080pdst_m.mp4
目标文件信息:
frame=21580 fps= 74 q=-1.0 Lsize= 258825kB time=00:15:00.01 bitrate=2355.9kbits/s speed=3.07x
video:220710kB audio:37518kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.230992%
输出psnr信息表:
ffmpeg -i e:/1080psrc.mp4 -i e:/1080pdst_m.mp4 -lavfi psnr="stats_file=psnr_m.log" -f null -
psnr数据结果:
[Parsed_psnr_0 @ 000001cccfd5ee80] PSNR y:47.426978 u:52.260537 v:51.759605 average:48.489974 min:37.617117 max:58.609825

2、faster编码方式
转码命令:
ffmpeg -i 1080psrc.mp4 -vcodec libx264 -b:v 2000k -preset faster -s 1920x1080 1080pdst_f.mp4
目标文件信息:
frame=21580 fps=104 q=-1.0 Lsize= 258949kB time=00:15:00.01 bitrate=2357.0kbits/s speed=4.33x
video:220835kB audio:37518kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.230628%
输出psnr信息表:
ffmpeg -i e:/1080psrc.mp4 -i e:/1080pdst_f.mp4 -lavfi psnr="stats_file=psnr_f.log" -f null -
psnr数据结果:
[Parsed_psnr_0 @ 0000019020af1140] PSNR y:47.290942 u:51.524273 v:51.000436 average:48.257391 min:37.380386 max:57.120105

3、slower编码方式
转码命令:
ffmpeg -i 1080psrc.mp4 -vcodec libx264 -b:v 2000k -preset slower -s 1920x1080 1080pdst_l.mp4
目标文件信息:
frame=21580 fps= 36 q=-1.0 Lsize= 258589kB time=00:15:00.01 bitrate=2353.7kbits/s speed=1.51x
video:220475kB audio:37518kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.231152%
输出psnr信息表:
ffmpeg -i e:/1080psrc.mp4 -i e:/1080pdst_l.mp4 -lavfi psnr="stats_file=psnr_l.log" -f null -
psnr数据结果:
[Parsed_psnr_0 @ 000001a2cb391c80] PSNR y:47.778224 u:52.780825 v:52.265745 average:48.864826 min:37.681372 max:58.451310

4、文件转码前后大小对比
| 序号 | 文件名 | 文件大小KB |
| 1 | 1080psrc.mp4 | 352,597 |
| 2 | 1080pdst_m.mp4 | 258,825 |
| 3 | 1080pdst_f.mp4 | 258,950 |
| 4 | 1080pdst_l.mp4 | 258,590 |
基于ffmpeg不同编码方式转码后的psnr对比的更多相关文章
- 刨根究底字符编码之十——Unicode字符集的编码方式以及码点、码元
Unicode字符集的编码方式以及码点.码元 一.字符编码方式CEF的选择 1. 由于Unicode字符集非常大,有些字符的编号(码点值)需要两个或两个以上字节来表示,而要对这样的编号进行编码,也必须 ...
- 基于FFMPEG SDK流媒体开发1---解码媒体文件流信息
近期项目涉及到流媒体等开发,因为有过开发经验深知其难度所在,没办法仅仅能又一次拾起,最新版的SDK被改的一塌糊涂,只是大体的开发思路都是一样的,看多少书查多少资料都无用,一步一步的编写代码 才是学好的 ...
- 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...
- 最简单的基于FFMPEG的转码程序
本文介绍一个简单的基于FFmpeg的转码器.它可以将一种视频格式(包括封转格式和编码格式)转换为另一种视频格式.转码器在视音频编解码处理的程序中,属于一个比较复杂的东西.因为它结合了视频的解码和编码. ...
- 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)
http://blog.csdn.net/leixiaohua1020/article/details/25430449 本文介绍一个最简单的基于FFMPEG的音频编码器.该编码器实现了PCM音频采样 ...
- 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)
本文介绍一个最简单的基于FFMPEG的视频编码器.该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据.编码器代码十分简单,可是每一行代码都非常重要,适合好好研究一下.弄清楚了本代码也 ...
- 最简单的基于FFmpeg的内存读写的例子:内存转码器
===================================================== 最简单的基于FFmpeg的内存读写的例子系列文章列表: 最简单的基于FFmpeg的内存读写的 ...
- 最简单的基于FFmpeg的移动端样例:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
- 最简单的基于FFmpeg的移动端样例:Android 视频转码器
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
随机推荐
- F版本SpringCloud1—大白话为啥要有微服务?啥是微服务?SpringCloud为什么有那么多组件?
前言 为什么要有微服务呢? 什么是微服务? SpringCloud 中为什么会有那么多的组件? ...... 作为SpringCloud教程的第一篇,不讲解具体的技术使用,通过一个通俗易懂的小故事,来 ...
- 遍历集合的常见方式,排序,用lambda表示是怎样的
Collection集合的功能: Object[] toArray() 将集合转成数组 Iterator iterator() 通过方法的调用 获取I ...
- JavaScript----DOM和事件的简单学习
##DOM简单学习 * 功能:控制html文档的内容 * 代码:获取页面标签(元素)对象:Element * document.getElementById("id值"):通 ...
- 动态规划/MinMax-Stone Game
2019-09-07 16:34:48 877. Stone Game 问题描述: 问题求解: 典型的博弈问题,也是一个典型的min-max问题.通常使用算diff的方法把min-max转为求max. ...
- WeChat 搭建过程
[被动回复消息] 1.创建项目(基于MyEclipse + Tomcat 7 编写):wechat 2.导入jar包(用于解析xml):dom4j-1.6.1.jar,xstream-1.3.jar ...
- 正则表达式(R&Python)
regular expression 1.R,strongly recommend this blog The table_info examples are following: du_mtime_ ...
- 机器学习算法系列:FM分解机
在线性回归中,是假设每个特征之间独立的,也即是线性回归模型是无法捕获特征之间的关系.为了捕捉特征之间的关系,便有了FM分解机的出现了.FM分解机是在线性回归的基础上加上了交叉特征,通过学习交叉特征的权 ...
- CSS3过渡结束监听事件,清除/修改表单元素的一些默认样式
document.querySelector('div').addEventListener('transitionEnd',function(){ console.log('过度结束') }) 如果 ...
- python分布式接口,参数化实战二
1,先看一下接口测试用例 2,文件1:写get和post模板 import requestsclass PostGetModels: def isMethod(self,url,data,method ...
- coding++:Java读写到览器Cookies中
首先我们认识下什么是cookies: cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般 ...