导航:首页 > 文件处理 > ffmpeg压缩比

ffmpeg压缩比

发布时间:2023-07-03 21:35:50

㈠ 图像缩放 ffmpeg opencv resize 哪个速度快

OpenCV的话:YUV->IplImage->缩放->转换回YUV可参考:YUV转IPLImage(RGB)或者使用ffmpeg的swscale可以直接实现可参考:FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)

㈡ 音视频编码格式认知

编码格式对应的就是音频编码和视频编码,

音频编码标准和视频编码标准,每种编码标准都对应的编码算法,其目的是通过一定编码算法实现数据的压缩、减少数据的冗余。

视频编码指的是通过特定的压缩技术,将某个视频文件格式转换为另一种视频格式文件的方式

可变码率指的是输出码流的码率是可变的,因为视频信源本身的高峰信息量是变化的,从确保视频传输质量和充分利用信息的角度来说,可变码率视频编码才是最合理的。

相关资料免费分享,领取方式见下方腾讯文档

C++音视频开发学习资料 :点击领取 音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

是指视频成像产品所形成的图像大小或尺寸,常见的 1080P、4K 等又代表什么呢,P 本身的含义是逐行扫描,表示视频像素的总行数,

1080P 表示总共有 1080 行的像素数,而 K 表示视频像素的总列数,4K 表示有 4000 列的像素数,

通常来说,1080P 就是指 1080 x 1920 的分辨率,4 k 指 3840 x 2160 的分辨率。

视频编码:

Xvid(旧称为XviD)

是一个开放源代码的MPEG-4影像编解码器,是由一群原OpenDivX开发者在OpenDivX于2001年7月停止开发后自行开发的。

Xvid支持量化(Quantization)、范围控制的运动侦测(Motion Search)、码率曲线分配(Curve)、动态关键帧距(I-frame interval)、心理视觉亮度修正、演职员表选项、外部自定义控制、运动向量加速(Hinted ME)编码、画面优化解码等众多编码技术,对用户来说功能十分强大。

DivX是由MPEG-4衍生出的一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,

它采用了MPEG4的压缩算法,同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,

同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成,并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD,而体积只有DVD的数分之 一。

XviD与DivX几乎相同,是开源的DivX,不收费,而使用DivX要收费。

H.264是一种高性能的视频编解码技术。

目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,

另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。

而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,

所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。

因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

H.264最具价值的部分是更高的数据压缩比,在同等的图像质量,H.264的数据压缩比能比DVD系统中使用的 MPEG-2高2 3倍,比MPEG-4高1.5 2倍。

举个例子,原始文件的大小如果为100GB,采用MPEG-2压缩标准压缩后变成4GB,压缩比为25 1,而采用H.264压缩标准压缩后变为1GB,从100GB到1GB,H.264的压缩比达到惊人的100 1。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像。

微软是在2003年9月递交VC-1编码格式的,目前已经得到了MovieBeam、Modeo等不少公司的采纳,同时也包含在HD DVD和蓝光中,包括华纳和环球等影业公司也有采用这种格式的意向。

VC-1基于微软Windows Media Video9(WMV9)格式,而WMV9格式现在已经成为VC-1标准的实际执行部分。WMV (Windows Media

Video)是微软公司的视频编解码器家族,包括WMV7、WMV8、WMV9、WPV10。这一族的编解码器可以应用在从拨号上网的窄带视频到高清晰度电视HDTV)的宽带视频。使用Windows Media Video用户还可以将视频文件刻录到CD、DVD或者其它一些设备上。它也

适用于用作媒体服务器。

WMV可以被看作是MPEG-4的一个增强版本。最新的由SMPTE(电视电影工程师协会)承认的WMV-9,也就是我们说的上面的VC-1。

同一个 AVCodecID 可能对应多个不同的编解码器 (AVCodec) MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

在编码方式相同相同的情况下,.avi, .mkv, .mp4只是封装格式的区别(文件后缀格式),而封装格式是不影响画质的。

就相当于你的100块钱折一下,或者两下,或者两下后不管是放在你的口袋里,钱包里还是存钱罐里都是100块钱。

这里的100块钱就是就是视频数据,你把100块折一下,或者两下,或者两下就是编码格式,钱包,口袋,存钱罐就是封装格式。

㈢ ffmpeg基础知识

ffmpeg是音视频处理的c库, 音视频在网络传输过程中,由于数据量大,所有需要进行压缩
压缩目的为了去除冗余信息,冗余信息分为:
1、空间冗余:图像相邻像素之间有较强的相关性
2、时间冗余:视频序列的相邻图像之间内容相似
3、 编码冗余:不同像素值出现的概率不同
​4、 视觉冗余:人的视觉系统对某些细节不敏感
​ 5、知识冗余:规律性的结构可由先验知识和背景知识得到

● 无损压缩(Winzip)
​ 压缩前解压缩后图像完全一致
​ 压缩比低

● 有损压缩(H.264)
​ 压缩前解压缩后图像不一致
​ 压缩比高
​ 利用人的视觉系统的特性(人眼能见的动画频率和图像细节有限制)

音视频压缩其实就是对音视频进行编码,
视频编码格式

音频编码格式

封装格式

流媒体协议

YUV ,是一种 颜色 编码 方法。常使用在各个视频处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。
YUV是编译true-color颜色空间(colorspace)的种类,Y'UV,YUV, YCbCr , YPbPr 等专有名词都可以称为YUV,彼此有重叠。“Y”表示 明亮度 (Luminance、Luma),“U”和“V”则是**[色度]
YUV格式有两大类:(平面格式)planar和(打包格式)packed。

1.planar:先存储Y,然后U,然后V

2.packed:yuv交叉存储

还有我们常说的YUV420sp与YUV420p。

YUV420sp: 一种two-plane模式,即Y和UV分为两个平面,U、V交错排列。

YUV420p: 先把U存放完后,再存放V。UV是连续的。

YUV420的数据大小为: 亮度(行×列) + V(行×列/4) + U(行×列/4)即:W H 3/2,

普遍的编码器都以接受planar的I420数据(YUV420P)

4*4的I420数据排列如下:

y1 y2 y3 y4

y5 y6 y7 y8

y9 y10 y11 y12

y13 y14 y15 y16

u1 u2 u3 u4

v1 v2 v3 v4
Android相机的采集的视频是NV21(YUV420sP), 也是YUV的格式 只不过U和V的交叉的。
y1 y2 y3 y4

y5 y6 y7 y8

y9 y10 y11 y12

y13 y14 y15 y16

u1 v1 u2 v2

u3 v3 u4 v4
在采集相机数据时需要把UV数据给转换成上面的 顺序。

I frame :帧内编码帧 ,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。

P frame: 前向预测编码帧,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;

B frame: 双向预测内插编码帧 ,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;

I frame:自身可以通过视频解压算法解压成一张单独的完整的图片。

P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。

B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。

PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来

DTS:Decode Time Stamp。DTS主要是标识读入内存中的帧数据在什么时候开始送入解码器中进行解码。

在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。

DTS主要用于视频的解码,在解码阶段使用。PTS主要用于视频的同步和输出.在显示的时候使用。

如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖于其前的最近的一个I frame或者P frame 及其后的最近的一个P frame.

libavformat

​ 用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavcodec 分析码流提供独立的音频或视频码流源。

libavcodec

​ 用于各种类型声音/图像编解码;该库是音视频编解码核心,实现了市面上可见的绝大部分解码器的功能,libavcodec 库被其他各大解码器 ffdshow,Mplayer 等所包含或应用。

libavfilter

​ filter(FileIO、FPS、DrawText)音视频滤波器的开发,如水印、倍速播放等。

libavutil

​ 包含一些公共的工具函数的使用库,包括算数运算 字符操作;

libswresample

​ 原始音频格式转码。

libswscale
​ (原始视频格式转换)用于视频场景比例缩放、色彩映射转换;图像颜色空间或格式转换,如 rgb565,rgb888 等与 yuv420 等之间转换。

音视频解5封装流程:

ffmpeg解码流程:

阅读全文

与ffmpeg压缩比相关的资料

热点内容
实数四则运算法则概念 浏览:292
cs16优化命令 浏览:869
Minecraft云服务器免费 浏览:826
png压缩最小 浏览:180
老韩综app怎么看不了了 浏览:227
只有一个程序员的体验 浏览:321
用服务器地址怎么有网 浏览:550
路由器服务器昵称是什么 浏览:713
程序员男友消失了 浏览:399
程序员搜索框自动提示 浏览:26
android44api20 浏览:676
adb刷recovery命令 浏览:697
广联达正版加密锁可以补办吗 浏览:945
java程序员一天多少行代码 浏览:948
丧尸危机java 浏览:125
华为手机怎么去除app标记未读信息 浏览:856
java监控文件夹 浏览:807
群控服务器主机怎么转变普通电脑 浏览:707
手机怎么调整app大小 浏览:455
加密门禁卡揭秘 浏览:139