Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >x265无损压缩

x265无损压缩

作者头像
Aidol
发布于 2022-03-24 00:41:32
发布于 2022-03-24 00:41:32
1.1K00
代码可运行
举报
文章被收录于专栏:苦旅苦旅
运行总次数:0
代码可运行

今天接到一个需求,需要把YUV序列转换为无损的MP4。一开始准备是用x264编码,把QP设置为0。但这样压缩后,我比较了一下,发现实际上还是有损的。而且QP设置为0后,普通的播放器根本不能打开,只能用基于ffmpeg的播放器才能正常播放。后来想到265有Transform Quantizer Bypass(TQB)技术,本身就就支持无损编码,遂进行了尝试。

ffmpeg把YUV无损转换为MP4的命令行代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -s 1920x1080 -pix_fmt yuv420p -r 60 -i .\BallUnderWater_1920x1080_60fps.yuv 
-c:v libx265 -preset ultrafast -x265-params lossless=1 output_265.mp4

主要在x265指定了lossless=1(开始无损压缩)参数。

现在我们虽然得到了转换后的MP4文件,但是我想进一步验证得到的文件到底是不是无损的。在查询官方文档的时候我看了官方给出了两种验证方式:

  1. 在转换完成后,命令行中最后一行只要出现lossless compression ratio就表明是无损压缩
  2. 可以通过计算原始YUV的hash值和转换为MP4视频后的hash。若hash值一致,则说明是无损转换。这里是计算整个视频的hash值的例子单独对每一个视频单独帧计算hash值例子

通过计算hash和framehash,发现原始视频的hash和frame与转换后得到的MP4文件的hash和framehash值完全一致。着说明确实是无损压缩。

更进一步,既然是无损压缩,那么把MP4文件转换为YUV(我们叫做新YUV),再计算原始YUV和新YUV的PSNR,那么每一帧的PSNR肯定都是无穷大。为啥是先把MP4文件转换为YUV呢?这是因为MP4文件的timebase和原始YUV的timebase不一致,那么两者的每一帧不能一一对应,其计算出的PSNR就不准确了。 话不多说,开动!

  1. 把MP4文件转换为YUV
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ffmpeg -i .\BallUnderWater_1920x1080_60fps.mp4  newyuv.yuv
  1. 计算两个YUV文件的PSNR
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ffmpeg -s 1920x1080 -pix_fmt yuv420p -r 60 -i .\BallUnderWater_1920x1080_60fps.yuv -s 1920x1080 
-pix_fmt yuv420p -r 60 -i .\newyuv.yuv  -lavfi psnr=stats_file=psnr_logfile.txt -f null -    

最终的PSNR结果如下面两张图,可以看出PNSR确实为无穷大。

平均PNSR

每一帧的PSNR

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.02.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
透过 Top 500 美拍短视频看 AV1 性能
AV1 以其出色的压缩性能,无疑是自 2017 年以来备受关注的新生代视频编码标准。业界也相继对 AV1 进行了一些评测工作,如 Facebook、Netflix 对它的编码复杂度也从早期的 VP9 的近千倍降到了百倍。为了验证 AV1 在短视频上的性能,美图音视频团队自 2018 年 11 月,基于 Top 500 美拍短视频进行了一次全面的 AV1 性能评估,对标编码器采用在实际生成环境中使用的主流视频编码器 x264、x265、VP9。
LiveVideoStack
2019/07/01
1.3K0
透过 Top 500 美拍短视频看 AV1 性能
HEVC压缩图片
-i 是图像路径,img%5d.jpg表示图像的名称类似为img00001.jpg
Aidol
2020/11/05
2.1K0
PHP如何通过FFmpeg将视频大小压缩90%?
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。
Tinywan
2024/11/21
2930
PHP如何通过FFmpeg将视频大小压缩90%?
音视频八股文(3)--ffmpeg常见命令(2)
* 播放本地 MP4 视频文件 `test.mp4` 的命令,从第 2 秒位置开始播放,播放时长为 10 秒,并且在窗口标题中显示 "test time":
福大大架构师每日一题
2023/04/22
2.2K0
ffmpeg常用库、术语、API、数据结构总结
封装格式步骤: 1、分配解复用器上下文(avformat_alloc_context()); 2、根据url打开本地文件或网络流(avformat_open_input()); 3、读取媒体的数据包,查找流信息(avformat_find_stream_info()); 4、遍历数据 (4-1)、从文件中读取数据包(av_read_frame()); (4-2)、或者 定位文件位置进行遍历(avformat_seek_file()、av_seek_frame()); 5、关闭解复用器(avformat_close_input())或释放不使用的资源; ​
手撕代码八百里
2021/12/28
1.2K0
FFmpeg命令也就这几类了吧
FFmpeg作为多媒体处理领域的强大开源工具,提供了丰富的音视频处理命令,广泛用于视频转换、格式处理、流媒体传输等。FFmpeg操作基于命令行,灵活而高效,涵盖多种应用场景。本文将为您提供最全的FFmpeg命令讲解,从基础命令结构到各类详细应用示例,帮助您轻松掌握FFmpeg的实用技巧。
程序员的园
2024/11/14
3650
FFmpeg命令也就这几类了吧
航拍 HDR 视频的 VVC 和 AV1 编码
视频产业现在处于一个十字路口,巨大的视频服务行业每年价值约 2000 亿美元。视频占互联网所有流量的 80%,这个比例还在增长。而在这 80% 的流量中,80% 是由 H.264 比特流组成的 -- 这是当今主流的视频编解码器。但 H.264 是在 2003 年实现标准化的,整整 18 年了,现在时机已经成熟,需要一个更新、更强大的编解码器来取代它。
用户1324186
2021/11/15
2.3K0
微信 Android 视频编码爬过的那些坑
本文主要介绍了如何在移动端GPU上对视频进行高效的编码与解码,通过对比多种编码方式、使用GPU对视频进行硬件加速、利用GPU对视频进行实时处理、以及对视频进行高效压缩与解码,最终实现了在移动端GPU上对视频进行高效编码与解码的解决方案。
微信终端开发团队
2017/10/30
9.9K2
微信 Android 视频编码爬过的那些坑
ffmpeg视频处理神器学习基础笔记
FFmpeg文档汇总:https://ffmpeg.org/documentation.html
菲宇
2020/08/02
1.2K0
备忘清单:FFmpeg命令行工具的有用命令
下载FFmpeg: https://www.ffmpeg.org/download.html
mariolu
2021/04/28
2K0
六个常用的FFmpeg命令
原标题:Six FFmpeg Commands You Can’t Live Without
用户1324186
2019/07/31
4.8K0
ffmpeg的正确打开方式(三剑客之一)
FFmpeg是一个完整的跨平台音视频解决方案,它可以用于处理音频和视频的转码、录制、流化处理等应用场景。官网:http://ffmpeg.org/。FFmpeg有三大利器,分别是ffmpeg、ffprobe、ffplay。今天主要介绍ffmpeg,它是FFmpeg用于音视频转码,转封装、转推流的基础工具。
liuzhen007
2021/06/29
3.4K0
如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
 点击上方“LiveVideoStack”关注我们 翻译、编辑:Alex 技术审校:刘歧 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 FFmpeg Easy-Tech #021# 在本篇文章中,我们将学习如何使用FFmpeg把视频从AVI格式转换为MP4格式(在重新/不重新编码AVI文件的情况下)。作为红利,我们还将学习FFmpeg在Ubuntu、Mac和Windows上的安装,并使用FFmpeg将
LiveVideoStack
2022/04/18
9.6K0
如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
新手学习FFmpeg - 调用API完成录屏并进行H.264编码
在上一篇文章中,通过调用FFmpeg API完成了Mac平台下的录屏功能。在本篇中,对上次的录屏进行优化,将采集到的视频流编码为H.264格式,同时设定FPS和分辨率。
随机来个数
2019/09/05
2.3K1
ffprobe综合教程(内含7个示例)
 点击上方“LiveVideoStack”关注我们 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 ---- 翻译、编辑:Alex 技术审校:刘歧 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ffprobe Easy-Tech #038# 在我的视频处理工具箱里,ffprobe有着非常重要的地位!在FFmpeg库中,ffprobe堪称视频信息提取或视频检测的“瑞士军刀”。下面是FFmpeg文档对ffprobe的简单描述: ffprobe从多媒体流中
LiveVideoStack
2022/09/13
1.9K0
ffprobe综合教程(内含7个示例)
1. 视频转换
下载:ffmpeg-20200831-4a11a6f-win64-static.zip
jamesjiang
2022/11/20
1.2K0
1. 视频转换
掌握音视频已是一种趋势,Android音视频基础解析帮大家破除学习“高门槛”
音视频行业已经发展很多年了,随着近几年移动端越来越多的音视频APP的出现,将音视频推向一个高潮,但是由于音视频的学习成本很高,很多开发者望而却步,为了跟紧时代的步伐,我写了这篇音视频基础,讲解了音视频的相关知识,给大家破除音视频的“高门槛”,希望可以共同进步。
Android技术干货分享
2020/12/17
1.1K0
掌握音视频已是一种趋势,Android音视频基础解析帮大家破除学习“高门槛”
更高效直观,腾讯云媒体处理MPS视频评测系统帮助企业精准权衡性能成本
以原始视频为参考,将转码后的视频与原始视频进行对比是评价视频质量的一类方法,这类方法属于视频质量评测中的全参考方法,精确性较高。一段视频由大量的视频帧组成,如果原始视频和转码后视频的每一帧都是同步的,可以从两个视频中各取对应的一帧,对这两帧进行比较,使用一些算法去统计、评估两个视频的差异,进而得到一些客观上的指标。目前常见的全参考评测指标有峰值信噪比(Peak signal-to-noise ratio,PSNR)、结构相似性(Structural Similarity,SSIM)、视频多方法评估融合(Video Multimethod Assessment Fusion,VMAF) 等,一些开源的媒体处理库(如 FFmpeg)提供了这些指标的计算方式。
腾讯云音视频
2024/07/15
2510
更高效直观,腾讯云媒体处理MPS视频评测系统帮助企业精准权衡性能成本
NDK--利用FFmpeg进行视频解码
名称 推出机构 推出时间 目前使用领域 HEVC(H.265) MPEG/ITU-T 2013 研发中 H.264 MPEG/ITU-T 2003 各个领域 MPEG4 MPEG 2001 不温不火 MPEG2 MPEG 1994 数字电视 VP9 Google 2013 研发中 VP8 Google 2008 不普及 VC-1 Microsoft Inc. 2006 微软平台
aruba
2020/07/02
9730
deepfakes怎么用_deepfakes-FaceSwap使用笔记
Alignments是对齐文件,用于标注人脸的位置信息,不填的话会默认生成在Input Dir。如果要自定义,需要新建一个.fsa后缀的空文件
全栈程序员站长
2022/08/24
1.7K0
deepfakes怎么用_deepfakes-FaceSwap使用笔记
相关推荐
透过 Top 500 美拍短视频看 AV1 性能
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验