

enum NalUnitType
{
NAL_UNIT_CODED_SLICE_TRAIL_N = 0, // 0
NAL_UNIT_CODED_SLICE_TRAIL_R, // 1
NAL_UNIT_CODED_SLICE_TSA_N, // 2
NAL_UNIT_CODED_SLICE_TLA, // 3 // Current name in the spec: TSA_R
NAL_UNIT_CODED_SLICE_STSA_N, // 4
NAL_UNIT_CODED_SLICE_STSA_R, // 5
NAL_UNIT_CODED_SLICE_RADL_N, // 6
NAL_UNIT_CODED_SLICE_DLP, // 7 // Current name in the spec: RADL_R
NAL_UNIT_CODED_SLICE_RASL_N, // 8
NAL_UNIT_CODED_SLICE_TFD, // 9 // Current name in the spec: RASL_R
NAL_UNIT_RESERVED_10,
NAL_UNIT_RESERVED_11,
NAL_UNIT_RESERVED_12,
NAL_UNIT_RESERVED_13,
NAL_UNIT_RESERVED_14,
NAL_UNIT_RESERVED_15, NAL_UNIT_CODED_SLICE_BLA, // 16 // Current name in the spec: BLA_W_LP
NAL_UNIT_CODED_SLICE_BLA, // 16 // Current name in the spec: BLA_W_LP
NAL_UNIT_CODED_SLICE_BLANT, // 17 // Current name in the spec: BLA_W_DLP
NAL_UNIT_CODED_SLICE_BLA_N_LP, // 18
NAL_UNIT_CODED_SLICE_IDR, // 19 // Current name in the spec: IDR_W_DLP
NAL_UNIT_CODED_SLICE_IDR_N_LP, // 20
NAL_UNIT_CODED_SLICE_CRA, // 21
NAL_UNIT_RESERVED_22,
NAL_UNIT_RESERVED_23,
NAL_UNIT_RESERVED_24,
NAL_UNIT_RESERVED_25,
NAL_UNIT_RESERVED_26,
NAL_UNIT_RESERVED_27,
NAL_UNIT_RESERVED_28,
NAL_UNIT_RESERVED_29,
NAL_UNIT_RESERVED_30,
NAL_UNIT_RESERVED_31,
NAL_UNIT_VPS, // 32
NAL_UNIT_SPS, // 33
NAL_UNIT_PPS, // 34
NAL_UNIT_ACCESS_UNIT_DELIMITER, // 35
NAL_UNIT_EOS, // 36
NAL_UNIT_EOB, // 37
NAL_UNIT_FILLER_DATA, // 38
NAL_UNIT_SEI, // 39 Prefix SEI
NAL_UNIT_SEI_SUFFIX, // 40 Suffix SEI

40:0100 0000 0000 0001
1bit:0
6bit:100000=32(vps)
6bit:0
3bit:0
根据雷神264解析改动形成的265分析

相关文档:http://blog.csdn.net/water1209/article/details/43706525
http://blog.csdn.net/water1209/article/details/43706525
http://blog.csdn.net/leixiaohua1020/article/details/50534369
stbl box:
hvc1
hvcC
..........
vps
sps
pps
btrt box(must have)
【真·新手教程】我有特别的MP4封装技巧
写这个贴是因为最近渣浪封后黑的原因,当然,这个帖子讲的不是高压技巧(咱也不会),主要讲的是我常用的几种MP4封装技巧,其实这几种方法网上都有,且很简单,我主要来归纳一下,其中有一种方法是我很推荐大家使用的。封装,说简单是超简单,但有时候也会遇到一些问题。嘛,既然要写了,我会尽可能写详细点。
【前言】(废话)
什么是封装?
封装说白了就是转格式,但不是所谓的“格式工厂”那些软件的转格式,那些的实质都是转码。所谓的封装,就是直接换视频容器,将原本的比如MKV容器换成MP4容器。封装最重要的特点,也是我们封装的原则就是:过程要快,画质不丢失。
为什么要封装?
大家都知道,各种视频制作软件并不是能导入所有的视频格式,而我们下载的动画资源大部分是MKV格式(当然你直接下生肉MP4也行),而这是绝大部分视频制作软件不能导入的格式,所以这个帖子主要讲的是将各种格式封装成MP4的方法。它区别于格式工厂这类软件的地方就是对于原视频没有做任何的转码,保证了画质不丢失,且我们要封装的视频往往是比较多的,所以封装过程一定要快(我说的这几种方法平均封装一集20分钟的视频都不用超过3分钟)。
这个帖子就不讲压制了,压制的教程精品贴里很多。
接下来就你拿到一个视频以后,用哪种方法的优先度来讲封装的几种方法。
一 mediacoder
这种方法是最常见,最快的方法,它基本上能解决75%以上的封装问题,但恰恰我们有时候就是容易遇到那25%的问题需要用别的方法来解决(这部分我会在下面说)。这种方法网上教程实在是太多了,随便百度都有,不过既然都开贴了,我还是重新说一下,以及一些小技巧吧。
把视频丢进mediacoder(简称MC)勾选复制视频流和复制音频流,容器选择MP4 压制 搞定。



这种方法的特点是,速度最快,且最简单
小技巧:
当这种方法失败的时候,不要马上换下一种方法,有一些补救措施。
(原理不明)不要勾选复制音频流,音频用压的,压音频速度是很快的,这样虽然音频压缩过了但是影响不大(就算你精益求精也有方法,下面讲),这样往往就能成功。再不行直接别压音频,在音频那一栏把“启用”勾掉,直接得出画面,需要音频的话可以用其他方法。(我是真搞不懂原理,总之我自己在封装的时候用这种方法常常不要封装音频就能成功)
二 小丸工具箱
嘛,其实这个“二”是真的挺二的,本来不想写的,不过既然说写详细点,那还是写吧。
这个方法,与其说是方法,不如说是一种思路。很简单,一个软件不行,咱换个呗(而且小丸也是很多人在用的软件)。小丸封装的操作更简单,把视频拖进去,点封装MP4就行(不止仅限小丸,很多其他有相关功能的工具都行,我记得MAD吧还有人写了一个DOS封装的程序,也很简捷)。

这个嘛,特点基本和上一种一样,但是由于在封装这一块可设置的参数比MC少,实际操作起来成功率比MC低一点点,时间好像快一点点。
三 这也是我这个贴重点要说的方法,所以我会讲的更加详细点
讲方法之前,我前面讲为什么要封装的时候有一些遗漏,我就在这里补充一下。
其实,一些720P的生肉MP4资源已经很好用了,相信很多人也用这些资源,如果用这些资源,封装什么的都TM见鬼去吧,一点用都没有。但是,这些资源并不是太好找,极影一般没有或者不全,我在这里给大家俩网址:
http://www.tokyotosho.info/(东京图书馆)
还一个是NYAA,不过最近好像不能进?
值得说明的是,以上2个网站搜索的时候要用罗马音去搜(废话)。
有点跑题,接上面的。虽然这些已经是720P的了,但是在你用这些源做完MAD,然后MC用一般的方法压成1000码的时候,相信画质不太会让你满意吧。而鉴于大多数人不会高压的方法,所以,我们从最根本的资源入手,换源,720P的压完我不满意,咱换1080P,换蓝光BD。(实践证明用一集一个G的蓝光比720P的在做完压完同样码率下画质胜出许多)
而这些源,在极影上都能够较容易的找到,当然,格式都是MKV。但是,往往,在封装这些资源的时候,就会出现我上面提到的那25%。在最初的时候,我花了大把时间下了一部蓝光20级G的动画,但是却封装不成功,那种心情真是想死都有。(当时只能删了下别的_(:з」∠)_)
===================
下面说具体的方法
打开我给的MKVTOOLNIX文件夹里面的MKVExtractGUI2.exe这个文件,把你想要封装的MKV视频拖进去.

可以看出,这个实际上是一个抽取软件,可以把视频的画面和声音分别抽取出来(我上面说到的,如果你想单独抽取声音,直接用这个就可以了,抽出来是FLAC无损格式的,各制作软件都可以导入),但是画面部分虽然抽取出来,却不能直接使用,抽取完是一个H264文件(抽取的时间很快)

然后打开MEGUI,选内置工具-混流器-MP4混流器

将刚刚抽取出来的H264文件拖到视频输入那一栏,点右下角的队列

然后弹出一个窗口就开始运行了,在那个窗口的优先级选择高(让速度变快),选完他会问你确定要运行吗?选是。然后就等待就好了。


虽然看起来好像有点复杂,其实一点都不会,我封装一个1G的MKV视频,从开始的抽离到最后结束,用时不到2分钟,这个速度已经很让人满意了。
最后封装完的文件

以及效果

完全无损的蓝光画质,且可导入各视频制作软件。
这种方法,综合起来讲是最好的方法,几乎所有的视频都能用这种方法封装,且速度也不慢,也是这个帖子我最推荐的一种方法。
四 这个方法其实和二一样很二,甚至都不能算是封装了,但是有时候,在一些特定情况下可以用,我也顺便说一下。
其实,就是老老实实的压制,压制可以解决所有问题,但是我们也知道,压制多多少少丢画质且耗时久,所以才说了特定情况。特定情况指的是什么呢,如果以上3种方法都失败了,且你的视频源较小且数量较少且对画质的精度没有那么高的要求的话,那就直接压制好了,虽说压制慢但怎么也比你下载快。我举个例子
比如你在做个综漫的MAD,然后有一个画面是你必不可少的,但是又仅仅只是某部动画里某一集里的某个画面,这时候你可能随便下载了那集,但是发现无法封装或者是因为某种原因无法导入视频制作软件,这时候就不用重新下载了,丢着压吧,一般十分钟也够了,在量小的时候十分钟也不算太长的时间,用MC小丸都可以,压完几乎100%的视频都能导入了。当然,如果你的素材是一整部动画且都无法封装的话,换源吧。(一般不会这种情况)
可能遇到的一些问题:
一个是前面我有说过的,有时候封装时音频会丢失,不过这个好解决,用MKVExtractGUI2.exe抽取完导入就可以了。
还一个是,封装完以后有声音,但是导入以后出现全绿屏或偶尔绿屏的情况。这种情况极有可能是你下载的素材是10bit的。MAD吧有10bit转8bit的方法,不过不太推荐,遇到这种情况,乖乖重新下,且下载的时候千万看清楚了,如果为了制作视频,别下10bit。
再来我也想不到了,看大家补充吧。
【后记】(还是废话)
当初自己看到各神MAD一心血来潮就想自己做着玩,然后做着做着才发现这坑有多深。当初虽然也知道,做MAD难,但是一直认为难是难在制作部分(虽然也没错啦)。
找素材-封装-制作-渲染-压制-(后黑)-封装FLV-上传
当我真正开始做了以后,才发现几乎从第一个步骤,找素材开始就有难度,然后接下来每一个步骤都没有想象的那么简单,然后就自己一个人各种百度,各种贴吧翻精品贴。上面说的几种方法也是我自己找出来,常用的几种方法,如果大家有更好的方法可以说出来,欢迎大触OTL。
前面也说了,因为最近渣浪封后黑的事,我没有能力给大家高压的经验,所以我只能从这最初级,最简单的封装做起。我们后黑的目的是改善画质,我这样也算稍微有点帮助吧。。
我玩这些软件快2年了,B站也投了一些视频,虽然一直是个渣,但每次看到有人来问相关的一些比较具体的问题我总是希望能给他们一些帮助(至于那些来问“请问剪视频用什么软件好啊?”之类百度可以百度的到的问题我的回答一向是剪刀)。B吧对我来说一直是个取乐的地方,在这里我几乎不会跟任何事较真,所有的帖子和回复也都是为了取乐,但,遇到这些问题的话就是例外,我会认真的回复,认真的帮忙,这次也是第一次认真的写一个帖子吧。虽然是个渣,但视频还是会去做,虽然没有技术,但视频成品出来以后还是会很高兴,同样,看到B站自己的视频点击高了,收藏多了,硬币多了我也会高兴(当然不会到处去说

),以后可能也没啥时间了,打这么多字真不符合我性格,以上。
简便无损拆封MKV封装成MP4的Tips

发布于 2017-04-10 22:40:09 举报
阅读数:19万+
内有一些关于格式知识的讲解,只想看教程的往下拉。。。
剪辑时,经常会碰到各种格式的视频资源。这里稍微科普一下MKV和MP4这两个格式。(想看干货的往下拉)
1、封装格式(MP4/MKV…) vs 媒体格式(H.264/FLAC/AAC…)
MP4,MKV是我们下载的视频文件最常见的种类。这些文件其实类似一个包裹一个装东西的盒子,它的后缀则是包裹的包装方式。这些包裹里面,包含了视频(只有图像),音频(只有声音),字幕等。当播放器在播放的时候,首先对这个包裹进行拆包(专业术语叫做分离/splitting),把其中的视频、音频等拿出来,再进行播放。
MKV其实不是一直压缩格式,而是一先进的封装格式,MKV可以封装很多种音视频格式和字幕格式,目前用MKV封装的电影基本上都是X264编码,x264属于一种开源的遵循H264编码技术编码格式,这种编码的格式后缀名可以是.MKV,.MP4.
既然它们只是一个包裹一个盒子,就意味着这个后缀不能保证里面的东西是啥,也不能保证到底有多少东西。包裹里面的每一件物品,我们称之为轨道(track),一般有这么些:
视频(Video): 一般来说肯定都有,但是也有例外,比如mka格式的外挂音轨,其实就是没视频的mkv。注意我们说到视频的时候,是不包括声音的。
音频(audio):一般来说也肯定有,但是有些情况是静音的,就没必要带了。
章节(Chapter): 蓝光原盘中自带的分段信息。如果文件带上了,那么你可以在播放器中看到带章节的效果:
字幕(Subtitles):有些时候文件自带字幕,并且字幕并非是直接整合于视频的硬字幕,那么就是一起被打包在封装容器中。
其他可能还有附件等,不一一列举。每个类型也不一定只有一条轨道,比如经常见到带多音轨的MKV。
每个轨道,都有自己的格式。比如大家常说的,视频是H.264,音频是AAC,这些就是每个轨道的格式。
视频的格式,常见的有H.264(可以细分为8bit/10bit),H.265(当前也有8bit/10bit之分),RealVideo(常见于早期rm/rmvb),VC-1(微软主导的,常见于wmv)。基本上,H.264=AVC=AVC1, H.265=HEVC。音频的格式,常见的有 FLAC/ALAC/TrueHD/DTS-HD MA这四种无损,和AAC/MP3/AC3/DTS(Core)这四种有损
2.MKV vs MP4,主要的区别在于:
MKV支持封装FLAC作为音频,MP4则不支持。但是MP4也可以封装无损音轨(比如说ALAC,虽然普遍认为ALAC的效率不如FLAC优秀)
MKV支持封装ASS/SSA格式的字幕,MP4则不支持。一般字幕组制作的字幕是ASS格式,所以内封字幕多见于MKV格式
MP4作为工业标准,在视频编辑软件和播放设备上的兼容性一般好于MKV。这也是vcb-s那些为移动设备优化的视频基本上选择MP4封装的原因。
除此之外,这两个格式很大程度上可以互相代替。比如它们都支持封装AVC和HEVC,包括8bit/10bit的精度。所以MP4画质不如MKV好,这种论断是非常无知的——它们完全可以封装一样的视频。
为什么会有这样的分歧,就是历史原因了。MKV是民间研发,为了代替古老的AVI,从而更好地支持H264,它开发和修改的灵活度使得它可以兼容flac/ass这类非工业标准的格式;而MP4则是出生豪门,作为工业标准,替代更古老的MPG,作为新一代视频/音频封装服务的。
(部分摘自4K中国论坛 http://www.4k123.com/thread-8194-1-1.html)
-------------------------------这是一条格式科普分割线-------------------------------
作为一个高清控的MVer,我收资源的时候尽可能的都去找画质1080P以上的资源。有的时候就会碰到好不容易找到的高清资源却是MKV格式的情况。而MKV格式是不能直接导入 Adobe
Premiere和Sony Vegas
的。这个时候常规思路是用狸窝,格式工厂,暴风转码等转码工具进行转码,不过这些工具固然是可以将MKV转换成MP4,但是不得不承认这些软件或多或少的会对原视频进行压缩和损耗画质。特别是一些不是很了解码率,分辨率设置的小伙伴,转码之后的视频画质会降低的比较严重。
关于MKV的封装压制方法有很多,暂时就不详细说了。这里是想安利一个反其道而行的小技巧。
主要使用到的软件有MKVExtractGUI,MKVToolnix,小丸工具箱。

MKVExtractGUI,MKVToolnix,

小丸工具箱
其中MKVExtractGUI,MKVToolnix是一个套组的软件,用来拆封MKV,安装有些繁琐,后面会讲解。小丸工具箱用来把拆分后的文件封装成MP4格式。(安装包下载链接放在文章最后)
下面又是一大段关于软件安装的叨叨
mkvtoolnix(又叫Matroska toolkit),是一套功能强大的mkv(Matroska)格式制作和处理的工具,支持
mkvtoolnix将多种视频、音频、字幕等格式封装成mkv格式。Mkvtoolnix 中包含了一个图形界面程序mmg.exe,这样使得制作mkv更简单和直观。还包含 MKVextractGUI.exe程序,可以提取 MKV 文件里面的音视频和字幕文件。
安装及运行
Mkvtoolnix解压之后,还要将Mkvtoolnix Runtime Package也一并解压到Mkvtoolnix所在的目录中,否则它是无法运行的。Mkvtoolnix的主程序mkvmerge.exe是命令行程序,不过这个软件包中还提供了一个GUI外壳程序mmg.exe,可运行它来对mkvmerge.exe进行操作。
实在不懂的可以度娘,有更详细的安装教程。
==================== 这是一条教程分割====================
下面开始正式说MKV无损转MP4的方法
1.先下载好所需的视频文件

这是下好的一个1080P的MKV格式的高清资源。可以正常播放,但是无法直接导入PR和VV。

私心~沉迷阿泽美色pr pr pr
2.进行MKV的拆封
这个时候就要祭出我们的拆封小帮手了
打开安装好的MKVExtractGUI,把MKV文件拖入,就会自动拆解成分文件

勾选拆封出来的分文件,点击提取输出。

完成后就会输出到指定的文件夹内

拆分出来的文件

拆分出来的视频和音频
3.封装成MP4
进入封装阶段,打开安装好的小丸工具箱
选择封装栏, 在合并为MP4的地方,将视频和音频文件分别导入框中,选择输出位置,点击封装。

之后就会自动弹出cmd程序开始合并文件

合并完成后就得到了我们所需要的MP4文件啦

生成MP4文件
当当当~这就是生成的可以直接导入PR,VV的MP4文件哦

艾玛,老夫的少女心啊,梦幻KISS
以上就是速度远超转码工具,无损拆封MKV封装成MP4的小教程。

终于写完教程啦,吼开心
看到这里的都是真爱,使用到的软件,安装包收好不谢~
链接:http://pan.baidu.com/s/1b3HyQM 密码:bjmi

视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等
本教程意在讲述一些视频音频的基础知识和术语。它可以比较详细的回答以下常见的问题:
.
MP4/MKV这些格式有什么区别?哪个画质好?
. 视频的码率是怎么算的?为什么同样是1080p的视频,有些体积大有些体积小?
. 视频储存的图像信息是什么格式的?跟显示器一样的红绿蓝么?
. 8bit/10bit到底指的什么?为什么说8bit显示器还有必要看10bit视频?
. yuv420/444这些标示到底什么意思?哪个好?
. 线条,平面,纹理这些到底是什么意思?视频为啥还有高频低频?
. 码率越高的视频画质越好么?
……
本教程将分以下模块详细叙述:
1、封装格式(MP4/MKV…) vs 媒体格式(H.264/FLAC/AAC…)
2、视频的基础参数:分辨率,帧率和码率
3、图像的表示方法:RGB模型 vs YUV模型
4、色深
5、色度半采样
6、空间上的低频与高频:平面,纹理和线条
7、时间上的低频与高频:动态
8、清晰度与画质简述
1、封装格式(MP4/MKV…) vs 媒体格式(H.264/FLAC/AAC…)
MP4+MKV是你下载的视频文件最常见的种类。这些文件其实类似一个包裹,它的后缀则是包裹的包装方式。这些包裹里面,包含了视频(只有图像),音频(只有声音),字幕等。当播放器在播放的时候,首先对这个包裹进行拆包(专业术语叫做分离/splitting),把其中的视频、音频等拿出来,再进行播放。
既然它们只是一个包裹,就意味着这个后缀不能保证里面的东西是啥,也不能保证到底有多少东西。包裹里面的每一件物品,我们称之为轨道(track),一般有这么些:
视频(Video): 一般来说肯定都有,但是也有例外,比如mka格式的外挂音轨,其实就是没视频的mkv。注意我们说到视频的时候,是不包括声音的。
音频(audio):一般来说也肯定有,但是有些情况是静音的,就没必要带了。
章节(Chapter): 蓝光原盘中自带的分段信息。如果文件带上了,那么你可以在播放器中看到带章节的效果:
.potplayer右键画面,选项-播放-在进度条上显示书签/章节标记
.mpc-hc 右键画面,选项-调节-在进度条显示章节标记
字幕(Subtitles):有些时候文件自带字幕,并且字幕并非是直接整合于视频的硬字幕,那么就是一起被打包在封装容器中。
其他可能还有附件等,不一一列举。每个类型也不一定只有一条轨道,比如经常见到带多音轨的MKV。
每个轨道,都有自己的格式。比如大家常说的,视频是H.264,音频是AAC,这些就是每个轨道的格式。
视频的格式,常见的有H.264(可以细分为8bit/10bit),H.265(当前也有8bit/10bit之分),RealVideo(常见于早期rm/rmvb),VC-1(微软主导的,常见于wmv)。基本上,H.264=AVC=AVC1, H.265=HEVC。
音频的格式,常见的有 FLAC/ALAC/TrueHD/DTS-HD MA这四种无损,和AAC/MP3/AC3/DTS(Core)这四种有损。
MKV vs MP4,主要的区别在于:
MKV支持封装FLAC作为音频,MP4则不支持。但是MP4也可以封装无损音轨(比如说ALAC,虽然普遍认为ALAC的效率不如FLAC优秀)
MKV支持封装ASS/SSA格式的字幕,MP4则不支持。一般字幕组制作的字幕是ASS格式,所以内封字幕多见于MKV格式
MP4作为工业标准,在视频编辑软件和播放设备上的兼容性一般好于MKV。这也是vcb-s那些为移动设备优化的视频基本上选择MP4封装的原因。
除此之外,这两个格式很大程度上可以互相代替。比如它们都支持封装AVC和HEVC,包括8bit/10bit的精度。所以MP4画质不如MKV好,这种论断是非常无知的——它们完全可以封装一样的视频。
为什么会有这样的分歧,就是历史原因了。MKV是民间研发,为了代替古老的AVI,从而更好地支持H264,它开发和修改的灵活度使得它可以兼容flac/ass这类非工业标准的格式;而MP4则是出生豪门,作为工业标准,替代更古老的MPG,作为新一代视频/音频封装服务的。
2、视频的基础参数:分辨率,帧率和码率。
视频是由连续的图像构成的。每一张图像,我们称为一帧(frame)。图像则是由像素(pixel)构成的。一张图像有多少像素,称为这个图像的分辨率。比如说1920×1080的图像,说明它是由横纵1920×1080个像素点构成。视频的分辨率就是每一帧图像的分辨率。
一个视频,每一秒由多少图像构成,称为这个视频的帧率(frame-rate)。常见的帧率有24000/1001=23.976, 30000/1001=29.970, 60000/1001=59.940, 25.000, 50.000等等。这个数字是一秒钟内闪过的图像的数量。比如23.976,就是1001秒内,有24000张图像。视频的帧率是可以是恒定的(cfr, Const Frame-Rate),也可以是变化的(vfr, Variable Frame-Rate)
码率的定义是视频文件体积除以时间。单位一般是Kbps(Kbit/s)或者Mbps(Mbit/s)。注意1B(Byte)=8b(bit)。所以一个24分钟,900MB的视频:
体积:900MB = 900MByte = 7200Mbit
时间:24min = 1440s
码率:7200/1440 = 5000 Kbps = 5Mbps
当视频文件的时间基本相同的时候(比如现在一集番大概是24分钟),码率和体积基本上是等价的,都是用来描述视频大小的参数。长度分辨率都相同的文件,体积不同,实际上就是码率不同。
码率也可以解读为单位时间内,用来记录视频的数据总量。码率越高的视频,意味着用来记录视频的数据量越多,潜在的解读就是视频可以拥有更好的质量。(注意,仅仅是潜在,后文我们会分析为什么高码率不一定等于高画质)
3、色深
色深(bit-depth),就是我们通常说的8bit和10bit,是指每个通道的精度。8bit就是每个通道用一个8bit整数(0~255)代表,10bit就是用10bit整数(0~1023)来显示。16bit则是0~65535
(注意,上文的表述是不严谨的,视频在编码的时候,并非一定能用到0~255的所有范围,而是可能有所保留,只用到一部分,比如16~235。这我们就不详细展开了)
你的显示器是8bit的,代表它能显示RGB每个通道0~255所有强度。但是视频的色深是YUV的色深,播放的时候,YUV需要通过计算转换到RGB。因此,10bit的高精度是间接的,它使得运算过程中精度增加,以让最后的颜色更细腻。
如何理解8bit显示器,播放10bit是有必要的呢:
一个圆的半径是12.33m, 求它的面积,保留两位小数。
半径的精度给定两位小数,结果也要求两位小数,那么圆周率精度需要给多高呢?也只要两位小数么?
取pi=3.14, 面积算出来是477.37平方米
取pi=3.1416,面积算出来是477.61平方米
取pi精度足够高,面积算出来是477.61平方米。所以取pi=3.1416是足够的,但是3.14就不够了。
换言之,即便最终输出的精度要求较低,也不意味着参与运算的数字,以及运算过程,可以保持较低的精度。在最终输出是8bit RGB的前提下,10bit YUV比起8bit YUV依旧具有精度优势的原因就在这里。事实上,8bit YUV转换后,覆盖的精度大概相当于8bit RGB的26%,而10bit转换后的精度大约可以覆盖97%——你想让你家8bit显示器发挥97%的细腻度么?看10bit吧。
8bit精度不足,主要表现在亮度较低的区域,容易形成色带:

注意这图右边那一圈圈跟波浪一样的效果。这就是颜色精度不足的表现。
10bit的优势不只在于显示精度的提高,在提高视频压缩率,减少失真方面,相对8bit也有优势。这方面就不展开了。
--------教程越来越深入。。。累了么

4、图像的表示方法:RGB模型 vs YUV模型
光的三原色是红(Red)、绿(Green)、蓝(Blue)。现代的显示器技术就是通过组合不同强度的三原色,来达成任何一种可见光的颜色。图像储存中,通过记录每个像素红绿蓝强度,来记录图像的方法,称为RGB模型 (RGB Model)
常见的图片格式中,PNG和BMP这两种就是基于RGB模型的。
比如说原图:

分别只显示R G B通道的强度,效果如下:



三个通道下,信息量和细节程度不一定是均匀分布的。比如说可以注意南小鸟脸上的红晕,在3个平面上的区分程度就不同——红色平面下几乎无从区分,造成区别的主要是绿色和蓝色的平面。外围白色的脸颊,三色都近乎饱和;但是红晕部分,只有红色饱和,绿色和蓝色不饱和。这是造成红色凸显的原因。
除了RGB模型,还有一种广泛采用的模型,称为YUV模型,又被称为亮度-色度模型(Luma-Chroma)。它是通过数学转换,将RGB三个通道,转换为一个代表亮度的通道(Y,又称为Luma),和两个代表色度的通道(UV,并成为Chroma)。
举个形象点的例子:一家养殖场饲养猪和牛,一种记数方式是:(猪的数量,牛的数量)
但是也可以这么记录:(总数量=猪的数量+牛的数量,相差=猪的数量-牛的数量)。两种方法之间有数学公式可以互转。
YUV模型干的是类似的事儿。通过对RGB数据的合理转换,得到另一种表示方式。YUV模型下,还有不同的实现方式。举个用的比较多的YCbCr模型:它把RGB转换成一个亮度(Y),和 蓝色色度(Cb) 以及 红色色度(Cr)。转换背后复杂的公式大家不需要了解,只需要看看效果:
只有亮度通道:

只有蓝色色度:

只有红色色度:

在图像视频的加工与储存中,YUV格式一般更受欢迎,理由如下:
1、人眼对亮度的敏感度远高于色度,因此人眼看到的有效信息主要来自于亮度。YUV模型可以将绝大多数的有效信息分配到Y通道。UV通道相对记录的信息少的多。相对于RGB模型较为平均的分配,YUV模型将多数有效信息集中在Y通道,不但减少了冗余信息量,还为压缩提供了便利
2、保持了对黑白显示设备的向下兼容
3、图像编辑中,调节亮度和颜色饱和度,在YUV模型下更方便。
几乎所有的视频格式,以及广泛使用的JPEG图像格式,都是基于YCbCr模型的。播放的时候,播放器需要将YCbCr的信息,通过计算,转换为RGB。这个步骤称为渲染(Rendering)
每个通道的记录,通常是用整数来表示。比如RGB24,就是RGB各8个bit,用0~255 (8bit的二进制数范围)来表示某个颜色的强弱。YUV模型也不例外,也是用整数来表示每个通道的高低。
5、色度半采样
在YUV模型的应用中,Y和UV的重要性是不等同的。图像视频的实际储存和传输中,通常将Y以全分辨率记录,UV以减半甚至1/4的分辨率记录。这个手段被称为色度半采样(Chroma Sub-Sampling)。色度半采样可以有效减少传输带宽,和加大UV平面的压缩率,但是不可避免的会损失UV平面的有效信息。
我们平常的视频,最常见的是420采样。配合YUV格式,常常被写作yuv420。这种采样是Y保留全部,UV只以(1/2) x (1/2)的分辨率记录。比如说1920×1080的视频,其实只有亮度平面是1920×1080。两个色度***********0的分辨率。
当然了,你也可以选择不做缩减。这种称为444采样,或者yuv444。YUV三个平面全是满分辨率。
在做YUV->RGB的时候,首先需要将缩水的UV分辨率拉升到Y的分辨率(madVR中允许自定义算法,在Chroma Upscaling当中),然后再转换到RGB。做RGB->YUV的转换,也是先转换到444(YUV的分辨率相同),再将UV分辨率降低。
一般能拿到的片源,包括所有蓝光原盘,都是420采样的。所以成品一般也保留420采样。所以yuv420就表示这个视频是420采样的yuv格式。
将420做成444格式,需要自己手动将UV分辨率拉升2×2倍。在今天madVR等渲染器可以很好地拉升UV平面的情况下,这种做法无异于毫无必要的拉升DVD做成伪高清。
当然了,有时候也需要在444/RGB平面下做处理和修复,常见的比如视频本身RGB平面不重叠(比如摩卡少女樱),这种修复过程首先要将UV分辨率拉升,然后转RGB,做完修复再转回YUV。修复后的结果相当于全新构图,这种情况下保留444格式就是有理由,有必要的。
H264格式编码444格式,需要High 4:4:4 Predictive Profile(简称Hi444pp)。所以看到Hi444pp/yuv444 之类的标示,你就需要去找压制者的陈述,为什么他要做这么个拉升。如果找不到有效的理由,你应该默认作者是在瞎做。
6、空间上的低频与高频:平面,纹理和线条
在视频处理中,空间(spatial)的概念指的是一帧图片以内(你可以认为就是一张图所呈现的二维空间/平面)。跟时间(temporal)相对;时间的概念就强调帧与帧之间的变换。
于是我们重新来看这张亮度的图:

亮度变化较快,变动幅度大的区域,我们称之为高频区域。否则,亮度变化缓慢且不明显的区域,我们称为低频区域。
图中的蓝圈就是一块典型的低频区域,或者就叫做平面(平坦的部分)。亮度几乎没有变化
绿圈中,亮度呈现跳跃式的突变,这种高频区域我们称之为线条。
红圈中,亮度频繁变化,幅度有高有低,这种高频区域我们称为纹理。
有时候,线条和纹理(高频区域)统称为线条,平面(低频区域)又叫做非线条。
这是亮度平面。色度平面,高频低频,线条等概念也同样适用,就是描述色度变化的快慢轻重。一般我们所谓的“细节”,就是指图像中的高频信息。
一般来说,一张图的高频信息越多,意味着这张图信息量越大,所需要记录的数据量就越多,编码所需要的运算量也越大。如果一个视频包含的空间性高频信息很多(通俗点说就是每一帧内细节很多),意味着这个视频的空间复杂度很高。
记录一张图片,编码器需要决定给怎样的部分多少码率。码率在一张图内不同部分的分配,叫做码率的空间分配。分配较好的时候,往往整幅图目视观感比较统一;分配不好常见的后果,就是线条纹理尚可,背景平面区域出现大量色带色块(码率被过分的分配给线条);或者背景颜色过渡自然,纹理模糊,线条烂掉(码率被过分的分配给非线条)。
7、时间上的低频与高频:动态
在视频处理中,时间(temporal)的概念强调帧与帧之间的变换。跟空间(spatial)相对。
动态的概念无需多解释;就是帧与帧之间图像变化的强弱,变化频率的高低。一段视频如果动态很高,变化剧烈,我们称为时间复杂度较高,时域上的高频信息多。否则如果视频本身舒缓多静态,我们称为时间复杂度低,时域上的低频信息多。
一般来说,一段视频的时域高频信息多,动态的信息量就大,所需要记录的数据量就越多,编码所需要的运算量也越大。但是另一方面,人眼对高速变化的场景,敏感度不如静态的图片来的高(你没有时间去仔细观察细节),所以动态场景的优先度可以低于静态场景。如何权衡以上两点去分配码率,被称为码率的时间分配。分配较好的时候,看视频无论动态还是静态效果都较好;分配不好的时候往往是静态部分看着还行,动态部分糊烂掉;或者动态部分效果过分的好,浪费了大量码率,造成静态部分欠码,瑕疵明显。
很多人喜欢看静止的截图对比,来判断视频的画质。从观看的角度,这种做法其实并不完全科学——如果你觉得比较烂的一帧其实是取自高动态场景,那么这一帧稍微烂点无可厚非,反正观看的时候你注意不到,将码率省下来给静态部分会更好。
8、清晰度与画质简述
我们经常讨论,一个视频清晰度如何,画质好不好。但是如何给这两个术语做定义呢?
经常看到的说法:“这个视频清晰度是1080p的”。其实看过上文你就应该知道,1080p只是视频的分辨率,它不能直接代表清晰度——比如说,我可以把一个480p的dvd视频拉升到1080p,那又怎样呢?它的清晰度难道就提高了么?
一个比较接近清晰度的概念,是上文所讲述的,空间高频信息量,就是一帧内的细节。一张图,一个视频的细节多,它的清晰度就高。分辨率决定了高频信息量的上限;就是它最清晰能到什么地步。1080p之所以比480p好,是因为它可以允许图像记录的高频信息多。这个说法看样子很靠谱,但是,有反例:

右图的高频信息远比左图多——它的线条很锐利,有大量致密的噪点(注意噪点完全符合高频信息的定义;它使得图像变化的非常快)
但是你真的觉得右图清晰度高么?
事实上,右图完全是通过左图加工而来。通过过度锐化+强噪点,人为的增加无效的高频信息。
所以清晰度的定义我更倾向于这样一个说法:图像或视频中,原生、有效的高频信息。
原生,强调这种清晰度是非人工添加的;有效;强调细节本身有意义,而不是毫无意义的噪点特效。
值得一提的是,人为增加的高频信息不见得完全没有帮助。有的时候适度锐化的确能够起到不错的目视效果:

这是一幅适度锐化后的效果。如果有人觉得右图更好,至少某些部分更好,相信我,你不是一个人。所以适度锐化依旧是视频和图像处理中,可以接受的一种主观调整的手段,一定的场合下,它确实有助于提高目视效果。
以上是清晰度的概述。注意,清晰度只是空间方面(就是一帧以内)。如果再考虑到动态效果的优秀与否(视频是不是那种一动起来就糊成一团的,或者动起来感觉卡顿明显的,常见于早起RMVB),空间和时间上优秀的观看效果共同定义了画质。所以我们说madVR/svp那些倍帧效果有助于提高画质,实际上它们增强了时间上的观看效果。
好的画质,是制作者和观众共同追求的。怎么样的视频会有好的画质呢?是不是码率越高的视频画质越好呢?真不见得。视频的画质,是由以下几点共同决定的:
1、源的画质。
俗话说的好,上梁不正下梁歪。如果源的画质本身很差,那么再如何折腾都别指望画质好到哪去。所以压制者往往会选择更好的源进行压制——举个栗子,BDRip一般都比TVRip来的好,哪怕是720p。蓝光也分销售地区,一般日本销售的日版,画质上比美版、台版、港版啥的都来得好,所以同样是BDRip,选取更好的源,就能做到画质上优先一步。
2、播放条件。
观众是否用了足矣支持高画质播放的硬件和软件。这就是为啥我们在发布Rip的同时大力普及好的播放器;有时候一个好的播放器胜过多少在制作方面的精力投入。
3、码率投入vs编码复杂度。
视频的时间和空间复杂度,并称为编码复杂度。编码复杂度高的视频,往往细节多,动态高(比如《魔法少女小圆剧场版 叛逆的物语》),这样的视频天生需要较高的码率去维持一个优秀的观看效果。
相反,有些视频编码复杂度低(比如《请问今天要来点兔子么》,动态少,线条细节柔和),这种视频就是比较节省码率的。
4、码率分配的效率和合理度。
同样多的码率,能起到怎样好的效果,被称为效率。比如H264就比之前的RealVideo效率高;10bit比8bit效率高;编码器先进,参数设置的比较合理,编码器各种高端参数全开(通常以编码时间作为代价),码率效率就高。
合理度就是码率在时空分配方面合理与否,合理的分配,给观众的观看效果就比较统一协调。 码率分配的效率和合理度,是对制作者的要求,要求制作者对片源分析,参数设置有比较到位的理解。
这里再多提一句,至少在这个时间点,也就是此文发布的2014年年底,HEVC相对于AVC可以提高50%的效率,依旧是一个纸面上的理论值。实际操作中,因为HEVC编码器的成熟度远不及经过了十几年发展的AVC编码器,导致现在HEVC的潜力远没有能发挥出来,特别是高画质下甚至不如。
对于目前主流的,定位收藏画质的BDRip,同样码率下x265的画质相对于x264没有优势;所以在近期,大家不用优先的去下载HEVC版作为收藏目的,更不必迷信什么“码率降低一半”。再强调一次,这个时间点;如果一年后以上陈述被不断进步的HEVC编码器推翻,我毫不惊讶。就比如目前4K就开始使用改编码方式了。
作者:友人A
链接:https://www.zhihu.com/question/266454513/answer/308717480
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
来先答一个,你问的问题刚好是我之前做毕业设计遇到的问题,我就分享下我是如何做到无损导入pr的吧。。。
软件工具:My MP4Box GUI,MKVToolNix GUI下的MKVExtractGUI工具(软件没有自带这个工具的话可以手动去下一个,有汉化版的),格式工厂
首先打开MKVExtractGUI工具,把你的MKV文件放到MKVExtractGUI工具里的第一栏输入文件这里面,输出目录自定义,如图:

里面有视频流,输出时以.h264为结尾的文件;音频流,是flac格式的文件;还有两个简繁体的字幕。
勾选需要输出的数据流,比如我只需要视频流和音频流,只需要勾选后两个就行了,点击右下角按钮Extract,输出数据流。
到你输出数据流的目录下找到那两个文件,.h264和flac文件,由于mp4格式不支持flac文件,一般都是aac格式的,所以需要格式工厂来吧flac文件转换成aac(虽然mp4文件可以支持封装alac的无损格式,但是我没有成功过,所以示范不了)。
转换过后把aac音频文件和.h264文件放入My MP4Box GUI工具,先放视频文件,再放音频文件如图:

点击下面的Save as...选择输出目录,之后点击Mux是开始封装。
过程需要等,时间视你的文件大小而定,这段时间不要动软件,等完成后可以关闭。
输出完成后的文件就是可以直接导入pr的mp4文件了。
还有最最重要的一点,源文件的编码必须要H264(或者AVC)的编码,如果是X264的编码的话放入pr会出现部分画面有色块花屏的现象,会失真,所以切记,一定要看清楚源文件的编码格式,虽然同是H264的规范,但是X264是针对快速编码所产生的格式,对解码不是很友好,对硬解也不是很友好。
编辑于 2018-02-01