一、测试说明:

  源文件: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对比的更多相关文章

  1. 刨根究底字符编码之十——Unicode字符集的编码方式以及码点、码元

    Unicode字符集的编码方式以及码点.码元 一.字符编码方式CEF的选择 1. 由于Unicode字符集非常大,有些字符的编号(码点值)需要两个或两个以上字节来表示,而要对这样的编号进行编码,也必须 ...

  2. 基于FFMPEG SDK流媒体开发1---解码媒体文件流信息

    近期项目涉及到流媒体等开发,因为有过开发经验深知其难度所在,没办法仅仅能又一次拾起,最新版的SDK被改的一塌糊涂,只是大体的开发思路都是一样的,看多少书查多少资料都无用,一步一步的编写代码 才是学好的 ...

  3. 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))

    ===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...

  4. 最简单的基于FFMPEG的转码程序

    本文介绍一个简单的基于FFmpeg的转码器.它可以将一种视频格式(包括封转格式和编码格式)转换为另一种视频格式.转码器在视音频编解码处理的程序中,属于一个比较复杂的东西.因为它结合了视频的解码和编码. ...

  5. 最简单的基于FFMPEG的音频编码器(PCM编码为AAC)

    http://blog.csdn.net/leixiaohua1020/article/details/25430449 本文介绍一个最简单的基于FFMPEG的音频编码器.该编码器实现了PCM音频采样 ...

  6. 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)

    本文介绍一个最简单的基于FFMPEG的视频编码器.该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据.编码器代码十分简单,可是每一行代码都非常重要,适合好好研究一下.弄清楚了本代码也 ...

  7. 最简单的基于FFmpeg的内存读写的例子:内存转码器

    ===================================================== 最简单的基于FFmpeg的内存读写的例子系列文章列表: 最简单的基于FFmpeg的内存读写的 ...

  8. 最简单的基于FFmpeg的移动端样例:IOS 视频转码器

    ===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...

  9. 最简单的基于FFmpeg的移动端样例:Android 视频转码器

    ===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...

随机推荐

  1. Spring生命周期详解

    导读 Spring中Bean的生命周期从容器的启动到停止,涉及到的源码主要是在org.springframework.context.support.AbstractApplicationContex ...

  2. Natas18 Writeup(Session登录,暴力破解)

    Natas18: 一个登录界面,查看源码,发现没有连接数据库,使用Session登录,且$maxid设定了不大的上限,选择采取爆破. 源码解析: <html> <head> & ...

  3. SpringMVC框架——自定义数据类型转换器

    Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型. 开发中如果需要自定义数据类型转换时 ...

  4. CMDB_Agent_ssh版本分析

    目录 CMDB_Agent+ssh版本+server端 CMDB_Agent版本 CMDB概念 CMDB_Agent介绍 agent方案 ssh类方案 相比较 client端 架构目录 bin-sta ...

  5. 李瑞红 201771010111《面向对象程序设计(java)》第一周学习总结

    李瑞红 201771010111<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.c ...

  6. java获取近几天的日期

    最近在写接口的时候老遇见从mysql中获取近几天数据的需求,获取日期这块不是很熟,网上看了很多但是代码量都太大,还是问了下别人,写了三行代码就解决了,不多说 贴代码了 下面是我获取近十天,每天的日期: ...

  7. GitLab私服在Ubuntu上搭建总结

    1.前期准备: sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates sudo apt-get ...

  8. Spss统计描述分析

    总觉得有些技能学会了是不会忘的,但是还是要记录一下,怕记忆力不像狗皮膏药,并不那么牢固. 1.文件的合并 两个数据文件的合并 点击添加个案,这一步按照自己的需求选择,也可以打开外部数据集,在这里打开的 ...

  9. 十个python图像处理工具

    介绍 如今的世界存在了大量的数据,图像数据是重要的组成部分.如果要利用这些图片,需要对图像进行处理,提高图片质量或提取图片内容信息. 图像处理的常见操作包括图像显示,基本操作如裁剪,翻转,旋转等,图像 ...

  10. python之常用模块ConfigParser

    这个常见于.conf,.ini等类型的配置文件 下面先看一下如果通过python生成一个.ini文件 import configparser #2.x is ConfigParserconfig = ...