V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
anticipated
V2EX  ›  问与答

mp4 分辨率/帧数相同,但大小不同

  •  
  •   anticipated · 2020-08-01 21:05:46 +08:00 · 2415 次点击
    这是一个创建于 1362 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,请教下,差别在哪里呢? 播放器播放也没感觉,1.22G 是从油管下载的,7.68G 用 itunes 下载的 aG3rWT.md.png

    11 条回复    2020-08-02 12:38:05 +08:00
    talentr9
        1
    talentr9  
       2020-08-01 21:09:04 +08:00 via iPhone   ❤️ 1
    压缩算法
    ysc3839
        2
    ysc3839  
       2020-08-01 21:10:41 +08:00 via Android   ❤️ 1
    码率不同,实际画质也不同。
    hikari
        3
    hikari  
       2020-08-01 21:11:30 +08:00   ❤️ 1
    看码率 bitrate
    jaleo
        4
    jaleo  
       2020-08-01 21:19:10 +08:00 via iPhone   ❤️ 1
    除了分辨率和帧率
    还有帧内帧间压缩 编码格式 色度采样 都会影响文件大小
    czkwg8
        5
    czkwg8  
       2020-08-01 21:24:38 +08:00   ❤️ 1
    码率都几分之一了都
    anticipated
        6
    anticipated  
    OP
       2020-08-01 21:34:38 +08:00
    谢谢大家,找到关键词啦
    REf: https://blog.csdn.net/pc9319/article/details/79621352

    视频码率、帧率和分辨率到底哪一个影响电影的清晰度

    码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。

    码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是 kbps 即千位每秒。也就是取样率(并不等同与采样率,采样率的单位是 Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来 cbr (固定码率)与 vbr (可变码率), “码率”就是失真度,码率越高越清晰,反之则画面粗糙而多马赛克。


    1.码率计算公式:

    码率=采样率 x 位深度 x 声道

    所以,上面文件的码率= 44.1Khz x 16 位 x 2 声道 = 1411.2 Kbps

    2.文件大小 = 码率 x 时长 = 1411.2 Kbps x (3 x 60 + 47 )s = 1411.2Kbps x 227s =38102.4Kb

    38102.4 Kb /1024 Kb/M = 37.2M

    近似等于 mediainfo 工具显示的文件大小 38.3M 。

    注:此计算公式对未压缩的 wav 格式文件有效,不适用于 mp3 等被压缩的文件。


    通常来说,一个视频文件包括了画面及声音,例如一个 RMVB 的视频文件,里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。

    以国内最流行,大家最熟悉的 RMVB 视频文件为例,RMVB 中的 VB,指的是 VBR,即 Variable BitRate 的缩写,中文含义是可变比特率,它表示 RMVB 采用的是动态编码的方式,把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源,达到画质与体积可兼得的效果。

    帧率( FPS ):影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。如果码率为变量,则帧率也会影响体积,帧率越高,每秒钟经过的画面越多,需要的码率也越高,体积也越大。
    帧率就是在 1 秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。每秒显示的图片数影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,画面越有跳动感。由于人类眼睛的特殊生理结构,如果所看画面之帧率高于 16 的时候,就会认为是连贯的,此现象称之为视觉暂留。并且当帧速达到一定数值后,再增长的话,人眼也不容易察觉到有明显的流畅度提升了。

    分辨率:影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。

    带宽、帧率( FPS )

    例如在 ADSL 线路上传输图像,上行带宽只有 512Kbps,但要传输 4 路 CIF 分辨率的图像。按照常规,CIF 分辨率建议码率是 512Kbps,那么照此计算就只能传一路,降低码率势必会影响图像质量。那么为了确保图像质量,就必须降低帧率,这样一来,即便降低码率也不会影响图像质量,但在图像的连贯性上会有影响。


    GOP ( Group of picture )

    关键帧的周期,也就是两个 IDR 帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用 1 个关键帧。增加关键帧个数可改善质量,但是同时增加带宽和网络负载。

    需要说明的是,通过提高 GOP 值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264 编码器会自动强制插入一个 I 帧,此时实际的 GOP 值被缩短了。另一方面,在一个 GOP 中,P 、B 帧是由 I 帧预测得到的,当 I 帧的图像质量比较差时,会影响到一个 GOP 中后续 P 、B 帧的图像质量,直到下一个 GOP 开始才有可能得以恢复,所以 GOP 值也不宜设置过大。

    同时,由于 P 、B 帧的复杂度大于 I 帧,所以过多的 P 、B 帧会影响编码效率,使编码效率降低。另外,过长的 GOP 还会影响 Seek 操作的响应速度,由于 P 、B 帧是由前面的 I 或 P 帧预测得到的,所以 Seek 操作需要直接定位,解码某一个 P 或 B 帧时,需要先解码得到本 GOP 内的 I 帧及之前的 N 个预测帧才可以,GOP 值越长,需要解码的预测帧就越多,seek 响应的时间也越长。

    常见编码模式:

    VBR ( Variable Bitrate )动态比特率也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率,这是以质量为前提兼顾文件大小的方式,推荐编码模式;

    ABR ( Average Bitrate )平均比特率是 VBR 的一种插值参数。LAME 针对 CBR 不佳的文件体积比和 VBR 生成文件大小不定的特点独创了这种编码模式。ABR 在指定的文件大小内,以每 50 帧( 30 帧约 1 秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为 VBR 和 CBR 的一种折衷选择。

    CBR ( Constant Bitrate )常数比特率指文件从头到尾都是一种位速率。相对于 VBR 和 ABR 来讲,它压缩出来的文件体积很大,而且音质相对于 VBR 和 ABR 不会有明显的提高。

    高清视频

    目前的 720P 以及 1080P 采用了很多种编码,例如主流的 MPEG2,VC-1 以及 H.264 ,还有 Divx 以及 Xvid,至于封装格式更多到令人发指,ts 、mkv 、wmv 以及蓝光专用等等。

    720 和 1080 代表视频流的分辨率,前者 1280*720,后者 1920*1080,不同的编码需要不同的系统资源,大概可以认为是 H.264>VC-1>MPEG2 。

    VC-1 是最后被认可的高清编码格式,不过因为有微软的后台,所以这种编码格式不能小窥。相对于 MPEG2,VC-1 的压缩比更高,但相对于 H.264 而言,编码解码的计算则要稍小一些,目前来看,VC-1 可能是一个比较好的平衡,辅以微软的支持,应该是一只不可忽视的力量。一般来说,VC-1 多为“.wmv”后缀,但这都不是绝对的,具体的编码格式还是要通过软件来查询。

    总的来说,从压缩比上来看,H.264 的压缩比率更高一些,也就是同样的视频,通过 H.264 编码算法压出来的视频容量要比 VC-1 的更小,但是 VC-1 格式的视频在解码计算方面则更小一些,一般通过高性能的 CPU 就可以很流畅的观看高清视频。相信这也是目前 NVIDIA Geforce 8 系列显卡不能完全解码 VC-1 视频的主要原因。

    PS&TS 是两种视频或影片封装格式,常用于高清片。扩展名分别为 VOB/EVO 和 TS 等;其文件编码一般用 MPEG2/VC-1/H.264

    高清,英文为“High Definition”,即指“高分辨率”。高清电视(HDTV),是由美国电影电视工程师协会确定的高清晰度电视标准格式。现在的大屏幕液晶电视机,一般都支持 1080i 和 720P,而一些俗称的“全高清”(Full HD),则是指支持 1080P 输出的电视机。

    目前的高清视频编码格式主要有 H.264 、VC-1 、MPEG-2 、MPEG-4 、DivX 、XviD 、WMA-HD 以及 X264 。事实上,现在网络上流传的高清视频主要以两类文件的方式存在:一类是经过 MPEG-2 标准压缩,以 tp 和 ts 为后缀的视频流文件;一类是经过 WMV-HD(WindowsMedia Video HighDefinition)标准压缩过的 wmv 文件,还有少数文件后缀为 avi 或 mpg,其性质与 wmv 是一样的。真正效果好的高清视频更多地以 H.264 与 VC-1 这两种主流的编码格式流传。

    一般来说,H.264 格式以“.avi”、“.mkv”以及“.ts”封装比较常见。

    清晰度
    在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越不清晰,分辨率越低,图像越清晰。

    在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。

    在码率一定的情况下,分辨率在一定范围内取值都将是清晰的;同样地,在分辨率一定的情况下,码率在一定范围内取值都将是清晰的。

    在视频压缩的过程中,I 帧是帧内图像数据压缩,是独立帧。而 P 帧则是参考 I 帧进行帧间图像数据压缩,不是独立帧。在压缩后的视频中绝大多数都是 P 帧,故视频质量主要由 P 帧表现出来。由于 P 帧不是独立帧,而只是保存了与邻近的 I 帧的差值,故实际上并不存在分辨率的概念,应该看成一个二进制差值序列。而该二进制序列在使用熵编码压缩技术时会使用量化参数进行有损压缩,视频的质量直接由量化参数决定,而量化参数会直接影响到压缩比和码率。

    视频质量可以通过主观和客观方式来表现,主观方式就是通常人们提到的视频清晰度,而客观参数则是量化参数或者压缩比或者码率。在视频源一样,压缩算法也一样的前提下比较,量化参数,压缩比和码率之间是有直接的比例关系的。

    分辨率的变化又称为重新采样。由高分辨率变成低分辨率称为下采样,由于采样前数据充足,只需要尽量保留更多的信息量,一般可以获得相对较好的结果。而由低分辨率变成高分辨率称为上采样,由于需要插值等方法来补充(猜测)缺少的像素点,故必然会带有失真,这就是一种视频质量(清晰度)的损失。

    关于一个视频流的数据量:

    码率如果为 10Mb/s,代表 1 秒钟有 10M bit 的视频数据,对于 YUV422 格式的 1080P 视频而言,一帧图像是 1920x1080x2x8/1024/1024 = 31.64Mbit,1 秒钟 30 帧图像的话,则有 949.2Mb/s,可见其数据量之大,不压缩根本无法网上传播,所以一定要经过视频压缩处理,不要以为 1080P 的视频就一定是高清的,清晰度还跟视频码率密切相关,对于 1080P 的视频而言,蓝光视频的码率是 20Mb/s,一般下载的视频码率大都是 10Mb/s,一些 IPCamera/无人机的码率是 2 ~ 8Mb/s,而很多视频网站的码率甚至低于 5M/s,其实有时还不如高码率的 720P 清晰。

    好的画质是分辨率、帧率和码率三者之间的平衡:

    码率不是越大越好

    如果不做码率大小上的限制,那么分辨率越高,画质越细腻;帧率越高,视频也越流畅,但相应的码率也会很大,因为每秒钟需要用更多的数据来承载较高的清晰度和流畅度。这对云服务厂商而言这是好事(收入跟流量呈正比),但对您可能意味着更多的费用开支。

    帧率不要超过 24

    如果限定一个码率,比如 800kbps,那么帧率越高,编码器就必须加大对单帧画面的压缩比,也就是通过降低画质来承载足够多的帧数。如果视频源来自摄像头,24FPS 已经是肉眼极限,所以一般 20 帧的 FPS 就已经可以达到很好的用户体验了。

    有些玩过 3D 游戏的朋友可能会说,游戏的帧率越高越流畅。这里要注意一定不要混淆场景:游戏追求高帧率的目的是为了尽可能让 3D 模型渲染出来的运动效果更加接近真实运动轨迹,所以帧率越高越好。但对摄像头而言,它要采集的目标是真实世界的物体,真实世界本来就没有刷新率的说法,所以这个理论不适用。

    分辨率不盲目攀高

    如果限定一个码率,比如 800kbps,那么分辨率越高就会让编码器越“为难" ,可以想象,它必须拆东墙补西墙,通过减少色彩信息或者引入马赛克这种“鱼目混珠”的手段来承载足够多的像素点。所以,同样的是 2G 的一个电影文件,1080p 画质的版本可能不如 720p 画质的版本看起来更清晰。

    转载整理自:

    http://blog.csdn.net/ameyume/article/details/7308504

    http://blog.csdn.net/zhiyuan411/article/details/5166571

    http://blog.csdn.net/lipengshiwo/article/details/53169235

    http://blog.csdn.net/xiangjai/article/details/44238005#t10
    MajestySolor
        7
    MajestySolor  
       2020-08-01 21:34:54 +08:00   ❤️ 1
    码率不一样,码率越高每一帧越清晰
    LZSZ
        8
    LZSZ  
       2020-08-01 21:46:01 +08:00
    视频和音频的码率都不一样
    msg7086
        9
    msg7086  
       2020-08-02 03:35:55 +08:00   ❤️ 1
    @anticipated #6 有不少概念是错的,当科普看看没问题,不要完全当真就行。

    码率有边际效应,大部分可见的画面实际需要的码率并不大,最吃码率的那些是肉眼不太能分辨的小细节,所以现代的编码器会对画面( DCT 后的部分)做一次量化,把吃码率且人眼分辨不出的那些频率直接砍掉,这样码率一下子就能下来 90%甚至更多。另外,优秀的动态预测算法也可以有效提升编码效率。

    反过来说,要达到极限的画质保证,就必须堆下数倍的码率下去。比如为了保留人脸上的几根胡须,码率说不定得提高 5 倍才行。具体上多少码率还是看用户眼睛的刁钻程度来决定。

    比如动画圈,字幕组一般给个 300M 一集的片,压制组可能会给 1.5G ,因为受众群体不同。
    WebKit
        10
    WebKit  
       2020-08-02 09:09:00 +08:00 via Android   ❤️ 1
    mp4 是视频封装格式,里面的编码应该不同,比如 h264 h265
    Augoror
        11
    Augoror  
       2020-08-02 12:38:05 +08:00 via Android   ❤️ 1
    可以看看 vcb 的科普 https://vcb-s.com/archives/2726
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3370 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:05 · PVG 20:05 · LAX 05:05 · JFK 08:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.