基于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 ...
随机推荐
- angular6 增加webpack配置 亲测可用
核心 Angular Cli 6 禁用了webpack的自定义配置,官方似乎并未提供自定义配置webpack的方法. 在此之前,可以使用ng eject把默认的webpack提取到代码中,进行自定义. ...
- CAS无锁模式
一.java内存模型:JMM 在内存模型当中定义一个主内存,所有声明的实例变量都存在于主内存当中,主内存的数据会共享给所有线程,每一个线程有一个块工作内存,工作内存当中主内存数据的副本当更新数据时,会 ...
- 【Vulnhub练习】Tr0ll 1
下载: https://www.vulnhub.com/entry/tr0ll-1,100/#download 说明: Tr0ll的灵感来自OSCP实验室中不断摇曳的机器. 目标很简单,获得根目录并从 ...
- Linux基础篇学习——文件目录常用管理命令mkdir,cat,more,less,ln,file,cp,find,split,mv
mkdir 创建目录 -p 递归创建目录 -v 显示创建信息 [root@zycentos7 ~]# mkdir -p {mylinux/{bin,conf,lib,logs,webapps/{doc ...
- MATLAB GUI 预约程序
因为一起奇怪的原因,要做一个预约程序.初衷是能够完成注册.登陆.预约.查看个人信息等. 原本想用Java写的,又由于一些特殊原因耽搁了,导致最后只有一个晚上的时间,匆匆忙忙到最后就用MATLAB GU ...
- JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的
JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签 在2015年6月至今,JavaScript超越了Java,c,python等等成为Stack O ...
- 十分钟一起学会Inception网络
作者 | 荔枝boy 编辑 | 安可 一.Inception网络简介 二.Inception网络模块 三.Inception网络降低参数计算量 四.Inception网络减缓梯度消失现象 五.Ince ...
- HDU - 3068 最长回文manacher马拉车算法
# a # b # b # a # 当我们遇到回判断最长回文字符串问题的时候,若果用暴力的方法来做,就是在字符串中间添加 #,然后遍历每一个字符,找到最长的回文字符串.那么马拉车算法就是在这个基础上进 ...
- Spring 事务注意事项
使用事务注意事项 1,事务是程序运行如果没有错误,会自动提交事物,如果程序运行发生异常,则会自动回滚. 如果使用了try捕获异常时.一定要在catch里面手动回滚. 事务手动回滚代码 Transact ...
- ArrayList中的Iterator详解
每个实现Iterable接口的类必须提供一个iterator方法,返回一个Iterator对象,ArrayList也不例外 public Iterator<E> iterator() { ...