想必您在逛商场的时候会偶尔选择去楼上的影城放松一下吧?不知您在看电影的时候有没有想过,电影院是怎么拿到影片资源的,又是怎么播放的?为什么一部影片只能在规定时间里放映,过了时间就买不到票上新片了?本文就来谈一谈我自己理解的正规数字影院播放影片流程的全过程,包括各种技术细节的浅析。
文章开始前我必须先说明,我只是一位普通的影视爱好者。我从来没碰过放映机、没见过整个流程中的任何一个环节、甚至都不认识一个放映员。以下所有内容都是我通过资料总结的个人理解。如有任何谬误欢迎批评指出,我将及时修正。谢谢您的理解。
您在自家播放电影自己看,想必您的做法就是去找mp4 mkv资源下载,然后拿个播放器打开,对吧?然而影院也会这么做么?
(相关资料图)
现在你能见到的99.99%的影院都已经不用胶片了。他们和你在家里看电影一样,在播放这些数字编码的视频。但想想看您从来没见过银幕上出现暴风影音就知道事情不像在家里打开播放器就播这么简单,对吧。事实上,虽然事情没有这么简单,但现代数字影院做的事情也大差不差。我们干脆就拿影视资源怎么做出来的当作类比吧,一切就将显得非常好理解了。
一部影片被资源小组拿到,他们会对原片进行压缩、封入字幕,打包成视频文件,然后发到互联网上。而一部要上院线的电影拿到公映许可证后,做的也是一样的事情。他们会把自己的原片(一种称作DCDM(Digital Cinema Distribution Master)的母版文件)交给专业的制版公司去压制一种专门用于影院放映的格式,称作“数字院线文件包”(DCP)。这种格式全称“Digital Cinema Package” - 顾名思义,就是专门用于在院线播放的视频包。虽然并不严谨,但这种包我们完全可以理解为和mp4 mkv mov一样是一种视频格式,里面封入了视频、音频、字幕等内容。制版公司制作出这一文件包之后,会交给发行机构(比如中影)复制无数份到移动硬盘里,再将这些移动硬盘寄给各家电影院。影院拿到硬盘后会将其拷到自己的服务器上,再将硬盘寄回去。接下来,放映员只需在自家影城放映服务器(TMS)上排好放映时间(SPL),各影厅放映机便会在规定时间到了后自动读取DCP文件并播放了。这样,影院拿到并播放电影资源的全流程就完成了。
(*备注:针对有些偏远地区,也有曾试点过通过卫星传送这些影片资源的。不过我并不清楚有哪些地方真的用过这种方式。)
那接下来我们从技术上刨析一下这个“包”吧。
20世纪末,数字信息技术飞速发展。影院也开始逐渐接受不了每天扛着胶片跑来跑去、卷胶片开关灯了。人们都在开始尝试探索使用数字技术取缔胶片放映。1997年,《星球大战前传:I》首次尝试扔掉胶片,采用数字化放映方式,在影视界掀起了轩然大波。随着更多的影视从业人员开始对数字放映感兴趣,人们都开始担心像单孔和四孔胶片之争、Sony Betamax和JVC VHS格式之争、DTS、Dolby Digital格式兼容性这样的战争再次打响。——总不能又是你家设备只能放mkv 他家设备只能放mp4这种乱套情况再上演吧。于是2002年,好莱坞巨头们牵头成立了DCI - 数字电影创导组织。他们旨在希望日后影院数字化后能有一套统一的标准存在。于是就在2005年,DCI率先牵头发布了数字电影规范的1.0版本。自此,数字电影的时代开始了。
经过多次完善和修正,这一标准在2009年进行了一次大的修订,引入了对高帧率、SMPTE字幕信息和字幕加密等的支持。这一修订也就引出了如今影院都在使用的SMPTE标准(此前的标准称为Interop标准)。
影院所用的DCP包,正是这一标准的结晶。
我们都不是专业的制版公司,但好在开源社区是个神奇的地方——开源软件开发者Carl Hetherington就曾开发过一款开源的DCP封装软件DCP-o-matic。这一工具使得制作DCP文件包变得人人可行。那么今天,且允许我用它来做一番演示。
就请我们的老朋友Rick Astley当实验品吧。新建工程,起名为Rickroll。添加内容文件Never gonna give you up.mp4
既然是个演示,那么帧率 色域等等就不弄得那么细节了。我们来看看一些可配置的选项。可以看见,我们可以设置内容类型、各类元数据等诸多信息。这些信息可以被影院的服务器识别出来以方便放映员进行分类管理。不管那么多了,我们直接送去编码:
在这里必须说明:DCP里的视频采用的是jpeg2000编码的j2c序列(也有使用mpeg2编码的,但毕竟很不“标准”且在逐渐退出历史舞台)——也就是说,你平时在电影院看到的影片可以简单理解为放映机在按照固定帧率快速切换着一大堆的jpg图片。这也就导致了DCP包的大小和编码时间可是近乎于恐怖。当然,其质量也是很高,是接近于无损的:
这就是成品了:
可以看到——DCP不是一个文件,而是一个文件夹。它实质上是一个播放列表(要么为什么叫它“文件包”呢)。这部影片对应的视频、音频等都被分开存储在了不同的mxf文件里(也有可能被切成很多个分块,就像胶片电影要用5 6盘胶片一盘接一盘地播放一样),通过附带的ASSETMAP文件标识,以用于让放映设备索引到。同时,附带的PKL文件也用于校验每个文件是否正确储存,CPL文件用于音视频和播放顺序的同步等操作。具体可见参考资料“DCP的四个xml文件”文章的详解,这里不再赘述。打开这些文件看看我们就已经可以理解个大概了。
这样,有了这些信息的保证,影片播放时就不会出现音画不同步、放一半没了的尴尬情况发生。事实上,您平时播放的MP4、MKV等视频也是一样的记录原理,只不过所有信息都放在一个文件里而不是一个文件夹里罢了。
讲到这里了,您或许会有这样的想法:
那我偷着把寄到影院的硬盘拿出来拷一份出来,岂不是就可以做院线第一手抢先盗版了?为何院线在映影片除了屏摄,很少见到有盗版资源流出呢?
答案再简单不过:绝大多数送到院线去的DCP都是加密的。而这里就不得不引出人类为了防着人类而做出的一项伟大发明——对称与非对称加密。
对称加密
根据数学家香农的理论,再怎么复杂的加解密算法,最终原理都是一样的。我们现在就假设没有加密过的DCP影片为明文。
接下来,我们使用一种密钥和一种加密算法,就可以把明文进行一定的变换,使之变成密文。
那么,我们只需知道这串密钥和反着来的加密算法,就可以把它变回明文。非常简单。
非对称加密
对称加密的一个最大的弱点,莫非就在于只要非法第三者搞到了密钥和算法,就可以未经授权进行解密。为了解决这一问题,非对称加密应运而生。
非对称加密要求你使用两个密钥:公钥和私钥。使用特定的算法就可以实现:公钥可以加密内容,而只有私钥才能将其解密。
记住这两个概念是怎么运作的,就可以理解下文了。
DCP如何使用两者同时进行加密
影院所用的每台服务器在生产时,厂家都会制作出一份私钥和一份公钥,并且将私钥写死在固件里,轻易无法被复制或拿到。影城买到放映机后,需要将公钥发给中影等三大发行平台进行注册。这样,每当有新影片上映时,中影等发行平台会将一个DKDM密钥交给片方。片方会用这个DKDM中声明的一种DCP内容密钥对称加密加密自己的DCP,再分发硬盘到各大影城。
你没看错。这个DCP内容密钥是一种对称加密的密钥,DCP本身是对称加密的。至于为什么要这么做,是因为加密DCP用对称加密算法解密速度很快,能降低放映机解码的运算量,从而避免卡顿或性能跟不上的情况发生,保证实时性与可靠性。至于你会说对称加密很不安全?且看下文:
随后,中影拿着这个DKDM和各大影城各个放映机的公钥,就可以制作出每个放映机对应的KDM密钥。这一KDM密钥中正包含着被放映机公钥加密着的DCP内容密钥。这一密钥将被放到指定的网站上。影片上映前,影城放映员需要凭借自家影城的账户和密码登录这一网站,下载这一KDM密钥,上传到服务器上。固件将用自己系统内的私钥解密出DCP内容密钥,再用DCP内容密钥去解密DCP,即可正常播放。是的,这是一种二重加密。非对称加密的是解密DCP用的密钥,而这一密钥是对称加密的。
这样,就算你拿到了DCP,没有KDM和KDM对应的服务器中的私钥,你照样无法播放影片。而且现代数字放映机都有隐形水印技术。投影到屏幕上的画面和音响播放的声音都被添加了人体感官感受不到的隐形水印。而倘若有人通过屏摄等方式录下了内容,送到专门的识别部门去分析录下的视频,就能得知是哪个影城、哪个场次、什么时间录下的信息。而且服务器解密后发送至放映机的信号同样遵守FIPS规范并使用了链路加密,期间没有可供将信号导出的余地,避免了非法采集。
答案很简单:不能。
原因也很简单:KDM有有效期。
正规的放映服务器在开始播放、解析KDM前都必须同指定的NTP服务器对时,再检查KDM的有效期。若检测到KDM过期或未生效,服务器会拒绝解码,从而无法播放影片。我们经常听到的某影片密钥延期,正是指中影等发行平台同意发行一个有效期更长的新密钥,以让某部影片继续在院线播放。
那么都已经做到这一步了,真的就能在院线层面预防盗版了吗?
我父亲和我讲过一句话我至今认为极有道理:世间所有的锁都是防君子而不防小人的。只要有预防措施就总会有人尝试在其中钻空子,从古至今始终如此。著名的“幽灵1号”放映机案就是个典型的例子。该案件一番操作堪称前无古人后无来者。该团伙正是使用了一款老款服务器的系统漏洞,复制出了一台正规服务器的解密私钥并通过刷机破解另一台从一家已倒闭影城购得的已注销的服务器,将相同的密钥信息导入,使得该服务器可以解码那台正规服务器的KDM而自己的身份信息被隐藏,产生了一台“幽灵”服务器,并通过特定视角的录像设备录制该服务器解码播放的影片。这样,水印分析单位检查这些盗录的影片,查到的设备信息都是一台下落不明的已注销服务器,根本没有办法停止发放它的KDM密钥,因为完全不知道其KDM是来自哪台正规机器的。这一“借尸还魂”之举着实让人瞠目结舌。更离谱的是,团伙盗摄这些影片反而还效仿国家院线的运作方式,再次制版出售给非法的私人影院,还搞起了自己的一套水印加密监控系统以防出售后被再次盗录翻版。。。就算这样也算他们有技术,最离谱的莫过于团伙成员本来就开有一家正规影院,而他们则将出售盗版所赚得的资金投资用于维护这家正规影院的运营。。。。。。
这起案件的最终破获也充满了戏剧性:团伙出售这些影片给了一家私人影吧后,这家影吧的老板也看这种赚钱方式眼馋,于是再次利用技术漏洞,通过录播软件再次盗录后继续出售给其它非法影吧,结果由于未经加密而泄露,在互联网上迅速扩散,很快被反侦查到。。。
至2019年案件破获,警方扣押盗版影片制作、播放、加密等设备13673件(其中放映服务器4台),涉案金额5000余万元。据本案二号人物马某松供称,两年时间他们共翻拍制作高清盗版影片200余部。曾经的2019年春节档,就曾因这起案件而损失惨重。
《中国电影报》对这一事件的报道我认为非常在理:防电影盗版靠技术更要靠自律。好片自然应当值得我们拿出真金白银去支持。盗版终究是打击不过来的,究竟要为电影人送去何种形式的支持,选择最终在我们自己。
我已经尽可能地“专业地通俗”完成我的解释了。我觉得这应该足够您理解整个流程是怎么下来的了。如果您还是想深入更多细节,我的参考资料最后一条 DCI图像规范与数字电影图像DCP加密打包:http://www.yantok.com/images/download/136dc4bebfb855f3a4a93a16f71c65ab.pdf 是我目前认为讲解技术细节最为仔细、清晰、易懂的版本了。可以进一步仔细参阅理解。
Get any content CINEMA-READY: DCP-o-matic https://dcpomatic.com/
DCP(数字电影包) 百度百科:https://baike.baidu.com/item/DCP/20407033
你了解什么是DCP吗?:http://www.studyofnet.com/884688688.html
DCP的四个xml文件:https://www.qianng.com/p/231547
DCI图像规范与数字电影图像DCP加密打包:http://www.yantok.com/images/download/136dc4bebfb855f3a4a93a16f71c65ab.pdf
Inter-Society Digital Cinema Forum (ISDCF) :http://isdcf.com/ISDCF/index.html
春节档高清大片盗版大案揭秘:三年追踪,擒获“幽灵一号”(海外网):https://baijiahao.baidu.com/s?id=1633649024857587765&wfr=spider&for=pc
揭秘|贺岁片盗版案侦破经过:寻找“幽灵一号”成关键:https://www.sohu.com/a/311035182_114988
多部门联动成功抓捕“幽灵机” 防电影盗版靠技术更要靠自律(中国电影报):http://www.chinafilmnews.cn/Html/2019-05-08/624.html