@zhongdao
2021-11-11T13:10:03.000000Z
字数 138679
阅读 2051
未分类
点对点:秘钥分发、影片传输、日志回传。
tkr:明清
传输:obs+ cdn
订购完成或者排好期后,终端根据影片(唯一标识),本机支持播放的类型,请求服务器api是否存在相应版本的dcp,得到肯定回复后,进行下载。下载完成,进行按计划播放。
打包工作将根据行业行业、设备等级进行分类打包,例如2K和4K设备使用不一样影片包,也可以要求设备商对下兼容,这个需根据实际业务需求指定影片发行版打包规范,见《影片发行版打包及分级手段》
影片发行版可以根据不同的放映参数制定不同规格的发行版文件。以适应不同的放映设备使用要求。达到最好的放映效果。为了使影片发行版更好的配合设备参数。列举以下关键参数作为发行版之间的区分原则。
序号 | 参数名称 | 举例 | 说明 |
---|---|---|---|
1 | 分别率 | 0.8K/2K/4K | 同一个影片不同分辨率下生成不同的发行版 |
2 | 片头广告 | 无/片头广告 | 片头广告采取不同的广告片源 |
3 | 还音制式 | 5.1/7.1/双声道 | 不同的还音制式形成不同的发行版 |
4 | 语别 | 中文/外语/方言 | 不同的配音形成不同的发行版 |
5 | 版权方 | 各代理 | 同一部影片在不同地域或者不同时间段会有不一样的版权方 |
需描述该型号设备所能工作的参数范围。例如分辨率、解码能力、对应的环音能力、是否支持双向握手等等参数。以供不同的发行版进行设备匹配。
设备检测自身设定的放映场次,通过网络向云盘台发送影片传输请求,并获得云平台下载影片授权,通过云平台的自有片库在线下载影片发行版,影片发行版将直接进入设备的存储内。通过匹配放映场次内设定的影片指纹,确定影片发行款的准确性后,等待放映需要。放映任务完成后。如果不再需要该发行版文件。设备会自动删除。
支持 JPEG2000, H.265, H.264, 流媒体,dcp等打包, 2k,4k, fhd,uhd等分辨率
终端查询平台时分为 内容版本的查询找到,以及技术版本是否可用,共同可用时进行下载播放
影片版本分根据对于终端的依赖分为:
技术版本:与终端相关的技术版本,如分辨率等。
内容版本:与终端无关的内容版本,语言版本、字幕版本。
a)版本名称:DMS(流动放映)、DCI(城市影院);
b)分辨率:
i.FHD(1080P,1920*1080)
ii.DCI2K(2048*1080)
iii.UHD(2160P,3840*2160)
iv.DCI4K(4096*2160)
c)帧率:24/25/30/48/50/60/96/120;
d)音频:2/5.1/7.1/11.1/13.1/ATMOS/IAB;
e)动态范围:;
f)编码:H.265、JPEG2000、MPEG2;
g)封装、打包:;
h)字幕技术:
a)由制版系统出库子系统生成;
b)由供片服务系统影片导入子系统导入;
c)影片版本资料字段及字典被精准定义(规范文件,公开)及检索;
a)精准定义需要支持影片技术版本类型清单;
b)每部影片导入时采用影片版本资料文件导入;
a)精准定义自身可播放的影片技术版本类型。
b)向平台请求平台的技术版本类型清单。
c)向服务端请求某影片支持的版本类型。
d)
和终端相关的技术指标进入该
https://encyclopedia.thefreedictionary.com/Digital+cinema
https://en.wikipedia.org/wiki/Glossary_of_video_terms
https://en.wikipedia.org/wiki/Glossary_of_motion_picture_terms
输出结果:
子系统关系(与交易子系统
mddf的可用性分析
分发部分api功能:
client:
1. 一部影片是否存在可本机播放的dcp发行版(技术与内容符合)
2. 下载后回传信息,下载成功
server:
1. 根据终端提交的影片标识,检索电影的发行版和技术版本,返回下载路径和下载方法,以及影片相关信息mddf
2. 根据终端提交的终端规格,判断是否存在可播放的发行版,返回是否可播放 (可与1合并), 也可将判断功能放到终端来实现,或由server统一来维护。
数据结构由制片时填写,被供片系统所使用和判断,被播放终端所检索和下载。格式采用json或xml
判断是否可用的逻辑:先根据影片id判断唯一对应,确定影片是否是需要播放的影片;再判断各种技术参数是否和终端能匹配播放。
除去分发部分,再附加交易部分,秘钥验证部分功能。
从ppt可看出原始场景用于
音视频素材制作时 人工处理的电子表格 到 零售端等的电子表格和资源的 再处理的简化
目前movielabs 没有公开的api定义文档, 网页上有api的技术规范pdf下载,主要是采用RESTful API规范,认证的技术方法等。
github上有一个api 的yaml格式的open api 3.0的规范,未在网页上对外发布,而且2年未更新了,看目前仍处于草稿阶段未发布。
所以没法直接应用。
草稿api的学习,可以通过搜索引擎找到一些草稿的会议记录。
mddf面向影视的全产业链的打通,包括授权方式,素材的编辑,未来多媒体的嵌入等等。
举个例子:
影片元数据是制作方填写的,教育平台的分发则来自工作运营人员填写,资料来自第三方网站。
没法应用按照授权模式下单,然后下载mec和mmc信息。
如果只是打包好的dcp分发后采用API来规范播放器的播放,影片内容,媒体文件的的标准化,可以参考其XML的数据结构的mmc, mec的部分,提取出可用部分,采用RESTful API设计,参考其mddf 的API的架构图,设计时设为V1版本,便于未来升级。
TR-MDDF-API
HTTP and TLS (TLS 1.2 required. TLS 1.3 allowed.) 需要知名CA的证书
认证与授权:
API Keys
JSON Web Tokens(JWT)
OAuth2 ( Authorization Code Grant 使用OAuth2中的4种方法的这一种 )
url:
Base URL: URL will not include studio as part of the path
RESTful api:
*GET is used to retrieve one or moreresources
*POST creates one or moreresources
*PUT updates an existing resource or replaces resources
*DELETE removes one or moreresources
异步返回数据方式:
客户端轮询
回调
signing playload
JWS
JSON document are signed using JSON Web Signature(JWS)as defined in [RFC7515].JWS is a JSON Web Token (JWT) as per RFC 7159 [RFC7159] that contains signature information covering a JSON document.
XMLDSIG
2019.7
http:
Basic for RESTful interface and Atom
Status: Atom
Rejected: RESTful polling , Reverse channel.
OAuth2
Server must support XML
ETag support ?
General Query not support
Client Authenticated with client_id, client_password ( from Portal)
eidr 是与影视作品内容相关的id,
ALID 是逻辑资产ID, 权利、授权方式相关的所有资产的标识。如电影、电视、电视剧(season), 组合。
https://movielabs.com/md/qcvocabulary/full-list/full_list-v1.1.html
genre
https://www.movielabs.com/md/mec/mec_primary_genre.html
https://github.com/MovieLabs/MDDF_API
https://movielabs.com/md/api/v1.0-draft/MDDF-API_20190926-notes.pdf
https://www.movielabs.com/schema/md/v2.9/md-v2.9.xsd
Basic Metadata
IDs
Language
Titles
Summaries
Cast
Genres
Ratings
Artwork
Length
Release history
Work type
Country of origin
Related content
Digital Asset Metadata
Video:
codec, bitrate, aspect ratio, color
Audio:
Codec, bitrate, channels, language
Subtitle:
Format, type, language
Supply Chain/Retail Data
Source
Contact info
Company Display Credit
Grouping
Title Alias
PictureColorType
PictureFormat
ThreeD
AspectRatio
AltIdentifier
RatingSet
"720p ", # 16:9 1:1 1280x720p @ 59.94/60 Hz
"1080i ", # 16:9 1:1 1920x1080i @ 59.94/60 Hz
https://github.com/MovieLabs/utils/blob/master/edid/edid.pl
https://www.movielabs.com/schema/md/v2.9/md-v2.9.xsd
https://www.movielabs.com/md/md/v2.9/md-v2.9/md-v2.9.html
<!--*** Digital Asset Metadata ***-->
<xs:complexType name="DigitalAssetExternalTrackReference-type">
<xs:simpleContent>
<xs:extension base="md:ContentID-type">
<xs:attribute name="namespace" type="xs:string"/>
<xs:attribute name="location" type="xs:string"/>
<xs:attribute name="trackReference" type="md:string-TrackReference"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetCardset-type">
<xs:sequence>
<xs:element name="Type" type="md:string-Cardset-Type" maxOccurs="unbounded"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="Sequence" type="xs:positiveInteger" minOccurs="0"/>
<xs:element name="Language" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetCardsetList-type">
<xs:sequence>
<xs:element name="Type" type="md:string-CardsetList-Type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Region" type="md:MadeForRegion-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Cardset" type="md:DigitalAssetCardset-type" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetWatermark-type">
<xs:sequence>
<xs:element name="Vendor" type="md:string-Watermark_Vendor"/>
<xs:element name="ProductAndVersionID" type="xs:string"/>
<xs:element name="Data" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="guaranteedAbsent" type="xs:boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioLoudness-type">
<xs:sequence>
<xs:element name="Level" type="xs:decimal" minOccurs="0"/>
<xs:element name="Deviation" type="xs:decimal" minOccurs="0"/>
<xs:element name="LeqM" type="xs:decimal" minOccurs="0"/>
<xs:element name="Compliance" type="md:string-Audio-Enc-Loud-Compliance" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioAmbisonics-type">
<xs:sequence>
<xs:element name="Type" type="md:string-Audio-Enc-Amb-Type" minOccurs="0"/>
<xs:element name="Order" type="xs:positiveInteger"/>
<xs:element name="VeriticalOrder" type="xs:integer" minOccurs="0"/>
<xs:element name="Normalization" type="md:string-Audio-Enc-Amb-Norm"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioEncoding-type">
<xs:sequence>
<xs:element name="Codec" type="md:string-Audio-Enc-Codec"/>
<xs:element name="CodecType" type="md:string-Audio-Enc-CodecType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="BitrateMax" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="BitrateAverage" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="VBR" type="md:string-Audio-Enc-VBR" minOccurs="0"/>
<xs:element name="SampleRate" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="SampleBitDepth" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="ChannelMapping" type="md:string-Audio-Enc-ChannelMapping" minOccurs="0"/>
<xs:element name="Watermark" type="md:DigitalAssetWatermark-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ActualLength" type="xs:duration" minOccurs="0"/>
<xs:element name="Ambisonics" type="md:DigitalAssetAudioAmbisonics-type" minOccurs="0"/>
<xs:element name="Loudness" type="md:DigitalAssetAudioLoudness-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioLanguage-type">
<xs:simpleContent>
<xs:extension base="md:language-redefine">
<xs:attribute name="dubbed" type="xs:boolean"/>
<xs:attribute name="forced" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioMCALabel-type">
<xs:sequence>
<xs:element name="ContentKind" type="xs:string" minOccurs="0"/>
<xs:element name="ElementKind" type="xs:string" minOccurs="0"/>
<xs:element name="Content" type="xs:string" minOccurs="0"/>
<xs:element name="UseClass" type="xs:string" minOccurs="0"/>
<xs:element name="ContentSubtype" type="xs:string" minOccurs="0"/>
<xs:element name="ContentDifferentiator" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetAudioData-type">
<xs:sequence>
<xs:element name="Description" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:language"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Type" type="md:string-Audio-Type" minOccurs="0"/>
<xs:element name="SubType" type="md:string-Audio-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Encoding" type="md:DigitalAssetAudioEncoding-type" minOccurs="0"/>
<xs:element name="Language" type="md:DigitalAssetAudioLanguage-type" maxOccurs="unbounded"/>
<xs:element name="People" type="md:BasicMetadataPeople-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Channels" type="md:string-Audio-Channels" minOccurs="0"/>
<xs:element name="MCALabelSubdescriptor" type="md:DigitalAssetAudioMCALabel-type" minOccurs="0"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="TrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoEncoding-type">
<xs:sequence>
<xs:element name="Codec" type="md:string-Video-Enc-Codec"/>
<xs:element name="CodecType" type="md:string-Video-Enc-CodecType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="MPEGProfile" type="md:string-Video-Enc-MProfile" minOccurs="0"/>
<xs:element name="MPEGLevel" type="md:string-Video-Enc-MLevel" minOccurs="0"/>
<xs:element name="CodecProfile" type="xs:string" minOccurs="0"/>
<xs:element name="BitrateMax" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="BitRateAverage" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="VBR" type="md:string-Video-Enc-VBR" minOccurs="0"/>
<xs:element name="Watermark" type="md:DigitalAssetWatermark-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ActualLength" type="xs:duration" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetChromaticity-type">
<xs:sequence>
<xs:element name="ChromaticityCIEx" type="xs:decimal"/>
<xs:element name="ChromaticityCIEy" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetColorVolume-type">
<xs:sequence>
<xs:element name="PrimaryRChromaticity" type="md:DigitalAssetChromaticity-type"/>
<xs:element name="PrimaryGChromaticity" type="md:DigitalAssetChromaticity-type"/>
<xs:element name="PrimaryBChromaticity" type="md:DigitalAssetChromaticity-type"/>
<xs:element name="WhitePointChromaticity" type="md:DigitalAssetChromaticity-type"/>
<xs:element name="LuminanceMin" type="xs:decimal"/>
<xs:element name="LuminanceMax" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetColorEncoding-type">
<xs:sequence>
<xs:element name="Primaries" type="md:string-Video-Pic-Primaries"/>
<xs:element name="TransferFunction" type="md:string-Video-Pic-OETF"/>
<xs:element name="ColorDifferencing" type="md:string-Video-Pic-ColorDifferencing"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetColorTransformMetadata-type">
<xs:sequence>
<xs:element name="ColorVolumeTransform" type="md:string-Video-Pic-ColorEnhTransform"/>
<xs:element name="ApplicationIdentifier" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:nonNegativeInteger">
<xs:attribute name="applicationVersion" type="xs:nonNegativeInteger"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="TargetSystemDisplay" type="md:DigitalAssetColorVolume-type" minOccurs="0"/>
<xs:element name="DoNotTranscodeBase" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPictureFrameRate-type">
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attribute name="multiplier" type="md:string-Video-Pic-FrameRate-multiplier"/>
<xs:attribute name="timecode" type="md:string-Video-Pic-FrameRate-timecode"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPictureProgressive-type">
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="scanOrder" type="md:string-Video-Pic-Progressive-scanOrder"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPictureLightLevel-type">
<xs:sequence>
<xs:element name="ContentMax" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:nonNegativeInteger">
<xs:attribute name="interpretation" type="md:string-Video-Pic-CMaxInterpretation"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FrameAverageMax" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:nonNegativeInteger">
<xs:attribute name="interpretation" type="md:string-Video-Pic-FMaxInterpretation"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPictureHDRPlaybackInfo-type">
<xs:sequence>
<xs:element name="SDRDownconversion" type="md:string-Video-Pic-SDRDownconversion" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPicture360Initial-type">
<xs:sequence>
<xs:element name="HeadingDegrees">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="360"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PitchDegrees">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="-90"/>
<xs:maxInclusive value="90"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="RollDegress">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="-180"/>
<xs:maxInclusive value="180"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPicture360-type">
<xs:sequence>
<xs:element name="Projection" type="md:string-Video-Pic-360-Projection"/>
<xs:element name="Rendering" type="md:string-Video-Pic-360-Rendering" minOccurs="0"/>
<xs:element name="InitialView" type="md:DigitalAssetVideoPicture360Initial-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPictureOriginal-type">
<xs:sequence>
<xs:element name="FrameRate" type="md:DigitalAssetVideoPictureFrameRate-type" minOccurs="0"/>
<xs:element name="Progressive" type="md:DigitalAssetVideoPictureProgressive-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoPicture-type">
<xs:sequence>
<xs:element name="AspectRatio" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="md:string-Video-Pic-AspectRatio">
<xs:attribute name="original" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PixelAspect" type="md:string-Video-Pic-PixelAspect" minOccurs="0"/>
<xs:element name="WidthPixels" type="xs:int" minOccurs="0"/>
<xs:element name="HeightPixels" type="xs:int" minOccurs="0"/>
<xs:element name="ActiveWidthPixels" type="xs:int" minOccurs="0"/>
<xs:element name="ActiveHeightPixels" type="xs:int" minOccurs="0"/>
<xs:element name="FrameRate" type="md:DigitalAssetVideoPictureFrameRate-type" minOccurs="0"/>
<xs:element name="Progressive" type="md:DigitalAssetVideoPictureProgressive-type" minOccurs="0"/>
<xs:element name="ColorSubsampling" type="md:string-Video-Pic-ColorSampling" minOccurs="0"/>
<xs:element name="BitDepth" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attribute name="alphaDepth" type="xs:nonNegativeInteger"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Colorimetry" type="md:string-Video-Pic-Colorimetry" minOccurs="0"/>
<xs:element name="Type3D" type="md:string-Video-Pic-Type3D" minOccurs="0"/>
<xs:element name="MasteredColorVolume" type="md:DigitalAssetColorVolume-type" minOccurs="0"/>
<xs:element name="ColorEncoding" type="md:DigitalAssetColorEncoding-type" minOccurs="0"/>
<xs:element name="ColorTransformMetadata" type="md:DigitalAssetColorTransformMetadata-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="LightLevel" type="md:DigitalAssetVideoPictureLightLevel-type" minOccurs="0"/>
<xs:element name="HDRPlaybackInfo" type="md:DigitalAssetVideoPictureHDRPlaybackInfo-type" minOccurs="0"/>
<xs:element name="ThreeSixty" type="md:DigitalAssetVideoPicture360-type" minOccurs="0"/>
<xs:element name="OriginalPicture" type="md:DigitalAssetVideoPictureOriginal-type" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoSubtitleLanguage-type">
<xs:simpleContent>
<xs:extension base="md:language-redefine">
<xs:attribute name="closed" type="xs:boolean"/>
<xs:attribute name="type" type="md:string-Video-SubLang-type"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetVideoData-type">
<xs:sequence>
<xs:element name="Description" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:language"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Type" type="md:string-Video-Type" minOccurs="0"/>
<xs:element name="SubType" type="md:string-Audio-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Encoding" type="md:DigitalAssetVideoEncoding-type" minOccurs="0"/>
<xs:element name="Picture" type="md:DigitalAssetVideoPicture-type" minOccurs="0"/>
<xs:element name="ColorType" type="md:ColorType-type" minOccurs="0">
<xs:annotation>
<xs:documentation>BW, Color, Colorized, etc.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PictureFormat" type="md:string-Video-PictureFormat" minOccurs="0"/>
<xs:element name="CaptureMethod" type="md:string-Video-CaptureMethod" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Language" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="SubtitleLanguage" type="md:DigitalAssetVideoSubtitleLanguage-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="SignedLanguage" type="md:language-redefine" minOccurs="0"/>
<xs:element name="CardsetList" type="md:DigitalAssetCardsetList-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="TrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetImageData-type">
<xs:sequence>
<xs:element name="Description" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:language"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Type" type="md:string-Image-Type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="SubType" type="md:string-Image-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Purpose" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Width" type="xs:int"/>
<xs:element name="Height" type="xs:int"/>
<xs:element name="Encoding" type="md:string-Image-Encoding"/>
<xs:element name="PictureDetails" type="md:DigitalAssetVideoPicture-type" minOccurs="0"/>
<xs:element name="DynamicRangeProfile" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="md:string-Image-DynamicRange">
<xs:attribute name="LuminanceMin" type="xs:decimal"/>
<xs:attribute name="LuminanceMax" type="xs:decimal"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ColorGamutProfile" type="md:string-Image-ColorGamut" minOccurs="0"/>
<xs:element name="Language" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CardsetList" type="md:DigitalAssetCardsetList-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="TrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetSubtitleFormat-type">
<xs:simpleContent>
<xs:extension base="md:string-Subtitle-Format">
<xs:attribute name="SDImage" type="xs:boolean"/>
<xs:attribute name="HDImage" type="xs:boolean"/>
<xs:attribute name="UHDImage" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DigitalAssetSubtitleData-type">
<xs:sequence>
<xs:element name="Format" type="md:DigitalAssetSubtitleFormat-type" minOccurs="0"/>
<xs:element name="Description" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:language"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Type" type="md:string-Subtitle-Type" maxOccurs="unbounded"/>
<xs:element name="SubType" type="md:string-Audio-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FormatType" type="md:string-Subtitle-FormatType" minOccurs="0"/>
<xs:element name="Language" type="md:language-redefine"/>
<xs:element name="Encoding" type="xs:anyType" minOccurs="0"/>
<xs:element name="DropFrame" type="xs:boolean" minOccurs="0"/>
<xs:element name="CardsetList" type="md:DigitalAssetCardsetList-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="TrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetInteractiveEncoding-type">
<xs:sequence>
<xs:element name="RuntimeEnvironment" type="md:string-Interactive-Enc-RuntimeEnvironment"/>
<xs:element name="EnvironmentAttribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="md:string-Interactive-Enc-EnvironmentAttribute">
<xs:attribute name="recommended" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FirstVersion" type="md:string-Interactive-Enc-Version" minOccurs="0"/>
<xs:element name="LastVersion" type="md:string-Interactive-Enc-Version" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:group name="DigitalAssetInteractiveBase-group">
<xs:sequence>
<xs:element name="Type" type="md:string-Interactive-Type"/>
<xs:element name="SubType" type="md:string-Interactive-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="FormatType" type="md:string-Interactive-FormatType" minOccurs="0"/>
<xs:element name="Language" type="md:language-redefine" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:complexType name="DigitalAssetInteractiveBaseData-type">
<xs:sequence>
<xs:group ref="md:DigitalAssetInteractiveBase-group"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetInteractiveData-type">
<xs:sequence>
<xs:group ref="md:DigitalAssetInteractiveBase-group"/>
<xs:element name="Encoding" type="md:DigitalAssetInteractiveEncoding-type" maxOccurs="unbounded"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="TrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetAncillaryData-type">
<xs:sequence>
<xs:element name="Type" type="md:string-Anc-Type"/>
<xs:element name="SubType" type="md:string-Anc-SubType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="BaseTrackID" type="md:id-type" minOccurs="0"/>
<xs:element name="BaseTrackReference" type="md:string-TrackReference" minOccurs="0"/>
<xs:element name="BaseTrackIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="TrackMetadata" type="md:DigitalAssetMetadata-type" minOccurs="0"/>
<xs:element name="CombinedMetadata" type="md:DigitalAssetMetadata-type" minOccurs="0"/>
<xs:element name="Compliance" type="md:Compliance-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AssetIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Private" type="md:PrivateData-type" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetSet-type">
<xs:sequence>
<xs:element name="Audio" type="md:DigitalAssetAudioData-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Video" type="md:DigitalAssetVideoData-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Subtitle" type="md:DigitalAssetSubtitleData-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Image" type="md:DigitalAssetImageData-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Interactive" type="md:DigitalAssetInteractiveData-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Ancillary" type="md:DigitalAssetAncillaryData-type" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DigitalAssetMetadata-type">
<xs:choice>
<xs:element name="Audio" type="md:DigitalAssetAudioData-type"/>
<xs:element name="Video" type="md:DigitalAssetVideoData-type"/>
<xs:element name="Subtitle" type="md:DigitalAssetSubtitleData-type"/>
<xs:element name="Image" type="md:DigitalAssetImageData-type"/>
<xs:element name="Interactive" type="md:DigitalAssetInteractiveData-type"/>
<xs:element name="Ancillary" type="md:DigitalAssetAncillaryData-type"/>
</xs:choice>
</xs:complexType>
<!--*** Container description ***-->
<xs:complexType name="ContainerTrackMetadata-type">
<xs:choice>
<xs:element name="Audio" type="md:DigitalAssetAudioData-type"/>
<xs:element name="Video" type="md:DigitalAssetVideoData-type"/>
<xs:element name="Subtitle" type="md:DigitalAssetSubtitleData-type"/>
<xs:element name="Image" type="md:DigitalAssetImageData-type"/>
<xs:element name="Interactive" type="md:DigitalAssetInteractiveData-type"/>
<xs:element name="Container" type="md:ContainerMetadata-type"/>
<xs:element name="ExternalTrackReference" type="md:DigitalAssetExternalTrackReference-type"/>
<xs:element name="InternalTrackReference" type="md:string-TrackReference"/>
</xs:choice>
</xs:complexType>
<xs:simpleType name="ContainerProfile-type">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="ContainerSpecific-type">
<xs:sequence>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ContainerType-type">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="ContainerMetadataWithID-type">
<xs:complexContent>
<xs:extension base="md:ContainerMetadata-type">
<xs:sequence>
<xs:element name="ContainerID" type="md:ContentIdentifier-type"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ContainerMetadata-type">
<xs:sequence>
<xs:element name="Type" type="md:string-Container-Type" minOccurs="0"/>
<xs:element name="Track" type="md:ContainerTrackMetadata-type" maxOccurs="unbounded"/>
<xs:element name="Hash" type="md:Hash-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Size" type="xs:positiveInteger" minOccurs="0"/>
<xs:element name="ContainerReference" type="md:string-Container-ContainerReference" minOccurs="0"/>
<xs:element name="ContainerIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContainerIntent" type="md:AssetIntent-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContainerSpecificMetadata" type="md:ContainerSpecific-type" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
摘录出来的
<xs:complexType name="DigitalAssetVideoPicture-type">
<xs:sequence>
<xs:element name="AspectRatio" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="md:string-Video-Pic-AspectRatio">
<xs:attribute name="original" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PixelAspect" type="md:string-Video-Pic-PixelAspect" minOccurs="0"/>
<xs:element name="WidthPixels" type="xs:int" minOccurs="0"/>
<xs:element name="HeightPixels" type="xs:int" minOccurs="0"/>
<xs:element name="ActiveWidthPixels" type="xs:int" minOccurs="0"/>
<xs:element name="ActiveHeightPixels" type="xs:int" minOccurs="0"/>
<xs:element name="FrameRate" type="md:DigitalAssetVideoPictureFrameRate-type" minOccurs="0"/>
<xs:element name="Progressive" type="md:DigitalAssetVideoPictureProgressive-type" minOccurs="0"/>
<xs:element name="ColorSubsampling" type="md:string-Video-Pic-ColorSampling" minOccurs="0"/>
<xs:element name="BitDepth" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attribute name="alphaDepth" type="xs:nonNegativeInteger"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Colorimetry" type="md:string-Video-Pic-Colorimetry" minOccurs="0"/>
<xs:element name="Type3D" type="md:string-Video-Pic-Type3D" minOccurs="0"/>
<xs:element name="MasteredColorVolume" type="md:DigitalAssetColorVolume-type" minOccurs="0"/>
<xs:element name="ColorEncoding" type="md:DigitalAssetColorEncoding-type" minOccurs="0"/>
<xs:element name="ColorTransformMetadata" type="md:DigitalAssetColorTransformMetadata-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="LightLevel" type="md:DigitalAssetVideoPictureLightLevel-type" minOccurs="0"/>
<xs:element name="HDRPlaybackInfo" type="md:DigitalAssetVideoPictureHDRPlaybackInfo-type" minOccurs="0"/>
<xs:element name="ThreeSixty" type="md:DigitalAssetVideoPicture360-type" minOccurs="0"/>
<xs:element name="OriginalPicture" type="md:DigitalAssetVideoPictureOriginal-type" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
<xs:complexType name="BasicMetadata-type">
<xs:sequence>
<xs:element name="UpdateNum" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="LocalizedInfo" type="md:BasicMetadataInfo-type" maxOccurs="unbounded"/>
<xs:element name="RunLength" type="xs:duration" minOccurs="0"/>
<xs:element name="ReleaseYear" type="xs:gYear"/>
<xs:element name="ReleaseDate" type="md:YearDateOrTime-type" minOccurs="0"/>
<xs:element name="ReleaseHistory" type="md:ReleaseHistory-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="WorkType" type="md:string-WorkType"/>
<xs:element name="WorkTypeDetail" type="md:string-WorkTypeDetail" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="PictureColorType" type="md:ColorType-type" minOccurs="0"/>
<xs:element name="PictureFormat" type="md:string-PictureFormat" minOccurs="0"/>
<xs:element name="ThreeD" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="three60" type="xs:boolean"/>
<xs:attribute name="multiview" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="AspectRatio" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="md:string-AspectRatio">
<xs:attribute name="original" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="AltIdentifier" type="md:ContentIdentifier-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="RatingSet" type="md:ContentRating-type" minOccurs="0"/>
<xs:element name="People" type="md:BasicMetadataPeople-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CountryOfOrigin" type="md:Region-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="PrimarySpokenLanguage" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="OriginalLanguage" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="VersionLanguage" type="md:language-redefine" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="VersionIntent" type="md:VersionIntent-type" minOccurs="0"/>
<xs:element name="AssociatedOrg" type="md:AssociatedOrg-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentRelatedTo" type="md:ContentRelatedTo-type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="SequenceInfo" type="md:ContentSequenceInfo-type" minOccurs="0"/>
<xs:element name="Parent" type="md:BasicMetadataParent-type" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ContentID" type="md:ContentID-type" use="required"/>
</xs:complexType>
MovieLabs是一个独立的非营利组织,由迪士尼、派拉蒙、二十世纪福克斯、索尼影业、环球和华纳兄弟工作室创立,旨在推进电影发行和保护方面的研究和开发。它将项目工程、技术市场分析和标准开发/宣传作为其核心重点领域,并与领先的大学、企业、技术初创公司、服务提供商和标准机构合作,以进一步探索数字媒体领域的创新技术。
MovieLabs 提供的主要出版物和标准包括:
- Entertainment ID Registry (EIDR)1
- Common Metadata2
- Content Availability Metadata (Avails)3
- Common Metadata Ratings4
- Next Generation/HDR Video5
- Enhanced Content Protection (ECP)6
Media and Entertainment Keynote (513861)
2021年10月7日
https://events-platform.autodesk.com/event/autodesk-university-2021/planning/UGxhbm5pbmdfNjY5OTI1
数字供应链标准 101
https://slideplayer.com/slide/17363717/
Digital Supply Chain Standardized Data Exchange - MovieLabs
https://www.movielabs.com/md/api/v1.0-draft/MDDF-API-20190717-notes.pdf
https://www.movielabs.com/md/class/section1/manifest.html
通过多年的合作,娱乐业已经创建了一套数字供应链标准,使消费者体验。同样重要的是,这些标准和规范提供了自动化框架,使行业能够在全球范围内扩展规模,并向越来越多的全球消费者提供这种体验。该自动化框架的关键要素包括:
·EMA Avails -一种跨行业的发放许可证的格式,具体说明如何和何时提供许可证内容可以呈现给消费者,
·EIDR - 精确机器可读内容标识的标准唯一ID
.Media声明 注入的媒体清单规范提供消费者体验所必需的组件,
·Digital Extra --通过数字附加 提高消费者体验的专门表现以及互动的经验
·Common Metadata 通用元数据提供共享词典的核心元数据规范整个跨行业计划的基础。
这些要素包括一系列互补的、兼容的规范,这些规范涉及在线交付的关键方面;促进自动化,节省成本,并提供优越的消费者体验。这些规范是通过行业协作创建和维护的,并对所有行业参与者开放。
推动这些举措的主要公司是迪士尼、福克斯、狮门、NBCU、派拉蒙、索尼影业(Sony Pictures)、华纳兄弟(Warner Bros.)以及主要的数字平台--亚马逊(Amazon)、谷歌(Google Play)、微软(Microsoft)电影与电视(Microsoft)、康卡斯特(Comcast)、Netflix、索尼PlayStation
这种广泛的行业协作意味着不再需要重新发明轮子来部署数字平台的关键元素。相反,本文所述的解决方案解决了数字供应链自动化中从开始(可用)到结束(消费者体验)的紧迫技术问题;节省了成本,提高了质量,改进了用户体验,区分了产品,并使合作伙伴能够部署先进的业务和营销模式以增加收入。
Studios authorize online platforms to offer tens of thousands of titles, across dozens of territories in multiple distribution windows and in multiple resolutions. Each title arrives with rules that communicate the windows, territories, formats and other business terms that the platform must follow. For a single major studio, this information, called “Avails”, can be hundreds of thousands of records. Studios have hundreds of partners, each with their specific Avails.
工作室授权在线平台在多个发行窗口和多分辨率的数十个地域上提供成千上万的标题。每个标题都带有发行时间窗口、区域、格式和平台必须遵循的其他业务术语的规则。对于一个单一的主要工作室,这种信息,称为“Avails”,可以是成千上万的记录。
直到最近,几乎所有的可用信息都是手工处理的,通常使用PDF格式的可用数据图像进行转录。这不仅给准确性带来了问题,还排除了更复杂的产品和更先进的业务模式。
在共同关心解决这一瓶颈的情况下,工作室和在线平台合作创建和实施了一种标准化的可用格式。这是供应链工作流的第一步,因此引起了业界的广泛关注。其结果是EMA Content Availability Data specification内容可用性数据规范(EMA可用),由娱乐商人协会(EMA)与工作室和电影实验室合作赞助。
EMA avails提供了一种标准格式,用于将信息从内容许可方传送到在线平台,包括标题的标识和标题的相关编辑、支持购买决策的基本元数据、许可方或工作室的标识、区域和时间信息以及灵活的业务术语。
该规范是一个积极的协作,支持和采用的所有主要好莱坞工作室和大多数大型国际平台。它是标准化与好莱坞和主要平台的许可证交换的最佳和最可行的选择,它已经大大减少了人工调节。
EMA可用规范以Excel电子表格或XML格式提供。最初的实现集中在Excel格式上,但电影和电视功能的复杂性不断增加,以及对更多自动化的需求不断增长,正推动着向XML的不断迁移。用于XML可用的完全自动化交付的API正在早期实现。EMA提供了规范,以及在Excel和XML格式之间进行转换的工具,可以在以下网站上找到。
Avails and Title List – Communicates licensing rights/agreements for xVOD (including SVOD)
传达XVOD的许可权/协议(包括SVOD)
Status – provides visibility to ensure content goes live when it should
EST(电子销售)- 无限制观看的购买政策。
VOD(视频点播)- 临时观看的租赁政策。
SVOD(订阅视频点播)——用于订阅平台;Google Play 不支持。
POEST(预购电子销售)- 仅限预购购买窗口。
AVOD(点播广告视频)——Youtube 基于广告的政策
https://en.wikipedia.org/wiki/Video_on_demand
https://support.google.com/moviestvpartners/answer/6357404
EST(电子销售率):针对无限次观看的购买政策。
VOD(视频点播):针对临时观看的租借政策。
SVOD(订阅视频点播):用于订阅平台;在 Google Play 上不受支持。
POEST(预订电子销售率):仅限预订购买的播出时段。
https://support.google.com/moviestvpartners/answer/6357370?hl=zh-Hans
LicenseRightsDescription
EMA 要求:选填
Google 要求:选填
关于此列
内容所有者通过“LicenseRightsDescription”列这个字段可以向 Google 指明播出信息优惠的类型(告知用户优先级时需要这样做);还可以标记优惠类型,以便进行跟踪(例如预订、提早发布)。如果将此列留空,则 Library 的许可权限说明即为默认设置。
“LicenseRightsDescription”列具有一组需遵守严格规范的枚举值(详列于 EMA 播出信息规范),我们在此同时提供相关说明供您参考:
New Release:表示影视内容在过去 12 个月内已于影院上映或通过 DVD 发行。此类影视内容将按照高优先级进行处理。
Library:表示影视内容是标准影视库内容,并且将按照低于 New Release 影视内容的优先级进行处理。
Mega-Library:表示影视内容归类为影视库但具有高价值,因此其优先级应高于标准影视库内容。
Priority Library:与 Mega-Library 类似,表示影视内容归类为库影视但具有高价值,因此其优先级应高于标准影视库内容。
DD-Theatrical - 表示影视内容将于同一天同时在数字平台和影院上映。这可以通知特定零售商将该影视内容纳入自家店面的“与院线同日上映”收藏集(如果有)中。
DD-Theatrical:表示影视内容在数字平台上的发布日期早于在影院上映的日期。这可以通知特定零售商将该影视内容纳入自家店面的“抢先院线上映”收藏集(如果有)中。
Early EST:表示影视内容通过 EST 发行的日期早于通过实物方式(例如,DVD、蓝光光盘)发行的日期。如果影视内容是通过实物方式发行,则应添加一个新的播出信息专列项,然后在此列中指明该影视内容是 New Release。
Early VOD:表示影视内容通过 VOD 发行的日期早于通过实物方式(例如,DVD、蓝光光盘)发行的日期。如果影视内容是通过实物方式发行,则应添加一个新的播出信息专列项,然后在此列中指明该影视内容是 New Release。
Preorder EST:表示此播出信息专列项是预订播出时段。这可以通知特定零售商将该影视内容纳入自家店面的“提供预订”收藏集(如果有)中。
Preorder VOD:表示此播出信息专列项是预订播出时段。这可以通知特定零售商将该影视内容纳入自家店面的“提供预订”收藏集(如果有)中。
DTV:表示此播出信息专列项是指 Direct-to-Video New Release 影视内容,并未在影院上映。这有助于指明尽管影视内容可能没有影院上映日期,但仍应视为 New Release 影视内容进行优先处理。
POD:表示此播出信息专列项适用于按需发布。此类影视内容将按照高优先级进行处理
如果您不确定要使用哪个 LicenseRightsDescription 值,请与您的合作伙伴运营联系人联系。
最佳做法:
如何标示某项影视内容是 DTV,随后又成为 Library 影视内容:
首个 SD VOD 播出信息专列项:
LicenseRightsDescription = DTV
将来的 SD VOD 播出信息专列项:
LicenseRightsDescription = Library
常见错误
无效的变量 - 如果使用的值不是上方所列枚举值集合中的值(例如,“Key Library”),则会导致出现错误或遭到拒绝。如果尝试使用多个值也会出现问题,只能从上方列出的枚举值集合中选择一个值。如果在同一个字段中输入多个值(例如“New Release, Pre-order EST”),则会导致出现错误或遭到拒绝。
https://support.google.com/moviestvpartners/answer/6357385?hl=en
Acceptable values:
Tier – this type indicates that a label will use the PriceValue column to represent underlying pricing terms that are agreed upon separately between the content owner and retailer. This value is accepted for Movies or TV episodic content. Seasons do not accept PriceType Tier.
WSP (wholesale price) – this indicates that the entry in the PriceValue column will be a wholesale price.
DMRP* (Deemed Minimum retail price) – this indicates that the entry in the PriceValue column will be a retail price.
Category – similar to Tier, this type indicates that in the PriceValue column a label will be used to represent underlying pricing terms that are agreed between the content owner and retailer. Other retailers may consider "Tier" and "Category" differently. Google interprets both in the same way (e.g., Tier is used for EST, and Category is used for VOD).
NA – this means that pricing is not applicable to the Avail.
TPR-XXX – used for temporary price reductions.
SMRP, LicenseFee, and SRP – these values are used for temporary price reductions and are allowed per the EMA specifications, but they are not currently supported by Google.
可接受的值:
层级 – 这种类型表示标签将使用 PriceValue 列来表示内容所有者和零售商之间单独商定的基础定价条款。电影或电视情节内容接受此值。Seasons 不接受 PriceType Tier。
WSP (批发价)——这表明 PriceValue 列中的条目将是批发价。
DMRP * (视为最低零售价)——这表明在 PriceValue 列中的条目将是零售价。
Category – 类似于 Tier,这种类型表示在 PriceValue 列中,标签将用于表示内容所有者和零售商之间商定的基础定价条款。其他零售商可能会以不同的方式考虑“Tier”和“Category”。谷歌以相同的方式解释两者(例如,层用于EST,而类别用于VOD)。
NA – 这意味着定价不适用于Avail。
TPR-XXX – 用于临时降价。
SMRP、LicenseFee 和 SRP – 这些值用于临时降价,根据 EMA 规范是允许的,但 Google 目前不支持它们。
其他 Google 要求
如果您是第一次提供新的层级或类别,可用性可能无法成功验证,因为 Google 可能需要一些时间在我们的后端设置价格映射。如果您有任何问题或遇到错误,请联系您的合作伙伴运营联系人。Google 目前不接受 SRP。请改用 Tier 或 WSP。
请使用“Tier”、“WSP”或“Category”作为值。“DMRP”仅在 EMA 1.7 播出信息中的有限情况下被 Google 接受。
As a reminder, an offer is the combination of title + territory + license type + quality.
So there may be multiple offers for one title.
请注意,资源是“影视内容 + 地区 + 许可类型 + 画质”的组合。因此,一个影视内容可能有多个资源
https://storage.googleapis.com/support-kms-prod/XW9qFKvCL6YzekQtBmMMFD06xbRRlHIMr9gE
应用场景:
模棱两可的内容识别是数字分发中许多非标准手工过程的根源。这个行业耗费大量的时间和金钱,试图弄清楚两个记录是否指向同一个标题(“标题匹配”)。自动化需要最小化需要人工干预的异常,最大限度地使用行业标准ID作为内容是避免耗时的标题匹配和其他手动过程的基本起点。
简单的基于标题的ID方案对于复杂的供应链来说是不够的。有时ID需要引用与工作相关的所有内容(抽象)。有时,它指的是特定的编辑版本。有时,它指的是编辑的表现形式(如编码)。
娱乐ID注册中心(EIDR)是行业标准ID,它解决了数字供应链的所有现实世界的复杂性。EIDR为电影和电视标题提供独特的ID,以及存储在分层数据库中的编辑和显示的子ID。
EIDR ID使媒体生态系统中的所有参与者能够唯一地识别内容并精确地进行通信,而不依赖无法在开放数据库中验证或自由共享的专有数字。可以由工作室、平台和服务提供商查找EIDR ID。它们为验证来自合作伙伴的数据和内容的交付和摄入提供了共同的参考。它们越来越多地成为数据源之间映射的工具,因为越来越多的数据供应商将EIDRID作为增加客户价值和简化数据集成的一种方式。
即使不包括在内,EIDR数据库也聚合了许多备用ID,并将它们作为匹配的交叉引用。EIDR ID也是报告和分析的宝贵工具。它们识别具有特殊性的父标题,并且父-子映射允许在标题和区域或审查编辑之间汇总数据,以便在不同的市场上分发。
-Alid和contentId--它们连接了EMA工具、MMC和MEC规范。Alid和contentId与EIDR一起构成了有效1.7中的三个基本ID概念。
The ALID*identifies the asset or set of assets that are being availed. It is used to gather up all the bits and pieces that must be provided to a consumer to complete a transaction. It also connects the Avail to fulfillment workflows, identifying in the MMC the experience delivered to the consumer.
Alid是逻辑资产标识符的缩写。
ALID 标识正在使用的资产或一组资产。它被用来收集所有必须提供给使用者以完成事务的部分。它还将效用与实现工作流连接起来,在MMC中标识交付给消费者的体验。
The ContentID is a reference to metadata for that same asset or set of assets. It identifies the consumer-facingmetadata about what the Avail is offering for sale, and it connects the Avail to the MECmetadata identified inside of an MMC package, which facilitates metadata delivery for that specific asset or set of assets.
·contentId 是对同一资产或一组资产的元数据的引用。它标识面向消费者的元数据是关于效用提供给销售的,它将效用连接到MMC包中标识的MEC元数据,这有助于为该特定资产或一组资产交付元数据。
In contrast to both, an EIDR ID identifies the underlyingfilm or show that is being availed, either by itself or in conjunction with other content. It can be looked up and validated against an industry registry of content, and as an external reference ID, it can link distribution workflows that otherwise would be entirely disconnected.
·与这两者形成对比的是,EIDR ID标识正在使用的底层电影或放映,单独或与其他内容一起使用。可以根据内容的行业注册来查找和验证它,并且作为外部引用ID,它可以链接否则将完全断开连接的分发工作流。
本文档概述了数字供应链中如何使用这三个ID中的每个ID。它解释了每个标识符的关键特征、每个标识符要提供的角色以及它们之间的相互联系。它还提供了如何从其他预先存在的ID(如内部House ID或EIDR ID)构造ALID和ContentID的示例,以及一些常见用例的最佳实践和指导。EIDR识别内容EIDR
三个ID的关系:
在最简单的用例中,这三个id之间有一个简单的映射。例如,如果只有一个内容片段是Avail的主题,那么EIDR ID和ALID之间就会存在一对一的关系。如果内容只有一组元数据,那么EIDR ID和ContentID之间也将存在一对一的关系。
但是,如果将任何其他内容片段添加到混合中,就不会存在一对一的关系。相反,ALID将引用多个必须交付给使用者的资产。例如,如果Avail指的是两部电影,或三部曲中的三部电影,或一部电影加上额外内容,则ALID必须描述消费者交付的所有资产。而ContentID很可能指的是描述这一组合的新元数据,而不仅仅是一部电影。使用ALID和ContentID可以创建一个一致的框架,既适用于更简单的用例,也适用于更复杂的用例。
EIDR ID标识所有类型和分组的特定电影或节目,例如,电影、电视剧、季、集、汇编等。它还识别具体内容的变化,从广义到广义具体的,例如,作为创造性作品的单个情节(抽象),情节的特定编辑(编辑),或编辑的特定编码(表现)。
EIDR ID如下:10.5240/5AD3-0EA3-A199-8174-9328-2。
“10.5240”是标识作为EIDR注册表一部分的ID的前缀,而“5AD3-0EA3-A199-8174- 9328-2”是分配给注册表中内容的唯一编号。†
EIDR识别基础电影或节目,不根据与电影或节目相关的权利范围而变化。
EIDR指出构成潜在电影或节目或变体的内容或知识产权。
可以为同一内容块分配唯一的alid,以便将授权范围限制为时间、区域和其他权利(例如,下载/不下载、奖金/不奖金等)。一个ALID与每个Avail相关联,以具体指定权利的范围。‡ 然后,它充当Avail和媒体Manifest Core (MMC)规范中包含的实现指令之间的链接。
对ALID的唯一硬性要求是它必须是唯一的,并且不能在Avail的生命周期中更改。§ 为了避免创建和管理新的独立名称空间的需求,通常应该从供应链中已经存在的标识符构造ALID。该预先存在的标识符可以是内部内部标识符或EIDR标识符,以可用的为准。
ALID是指交付给消费者的特定内容。有时内容包括其他东西,比如奖励材料,有时不包括。
ContentID是元数据引用键。内容可以有多个元数据集(不同的窗口、不同的市场、不同的包,等等)。因此,ContentID可以指向任何一组元数据
在数字供应链中,Avails规范中的ContentID作为与Media Entertainment Core (MEC)规范的链接,以识别为特定授权Avails交付的元数据。而在电视中,连续剧、季和集是分别的ContentID。
如果使用EIDR ID来构造ContentID,则EIDR ID应该用标准EIDR URN格式表示。基于EIDR的ContentID将被构造为以下格式:
md: cid: eidr: urn: 10.5240:5ad3 - 0 - ea3 a199 - 8174 - 9328 - 2
The Common Media Manifest Metadata specification, known as Media Manifest, provides a standard framework for delivery of metadata and media files, regardless of how the actual media is packaged. In addition to connecting Avails to media deliveries, it addresses issues such as which tracks play in each region, what trailers go with which features, and which cards (dub, anti-piracy and ratings) are played in various regions and circumstances.
行业还制定了一个规范,以组织交付提供消费者体验所需的组件。
The Common Media Manifest Metadata specification 公共媒体清单元数据规范,称为媒体清单,提供了一个交付元数据和媒体文件的标准框架,而不管实际的媒体是如何打包的。
除了将Avails与媒体交付连接起来,它还解决了一些问题,比如每个地区播放哪些曲目,预告片包含哪些功能,以及在不同地区和环境下播放哪些card(配音、反盗版和评级)。它支持交付一组组件,可用于构建多种产品和消费者体验。
MovieLabs and the EMA have published a streamlined delivery profile that targets the most important delivery use cases, called the Media Manifest Core (MMC) specification.
MovieLabs和EMA已经发布了一个精简的交付概况,针对最重要的交付用例,称为媒体清单核心(MMC)规范。
Media Manifest complements the
SMPTE Interoperable Media Format (IMF) standards, that describe an approach to efficiently packaging mezzanine quality (high quality) video tracks, audio tracks, subtitle files with instructions to generate regional and censorship edits in various output formats.
媒体清单补充了SMPTE互操作媒体格式(IMF)标准,该标准描述了一种有效包装夹层质量(高质量)视频轨道、音频轨道、字幕文件的方法,以生成各种输出格式的区域和审查编辑。
For more information and tools, including best practices for use of Media Manifest with IMF and the Common Media Manifest Validator, visit http://movielabs.com/md/manifest/.
This model has the following roles. Note that these are roles and do not necessarily align exactly with corporate entities.
Studio – Entity that defines the product and the business rules around the product.
Distribution Entity – generating media files, Media Manifest and File Manifest. This function is often provided by a post-production organization.
Retailer – Consumes the various pieces as part of offering an experience to the consumer. Although the term Retailer is used, it does not necessarily imply selling the product.
The model also addresses various data objects and messages. Many of these are described in referenced specifications:
Product Asset Definition – This is the definition of the various components (abstractly) that together create an offering. In this document the collection of assets is referred to as a Logical Asset
Avail – Data defining assets (abstractly) and business terms; such as, when and where the assets can play, and what pricing tier is used. [Avail]
Order – A Retailer will order an Avail indicating it wishes to offer the Assets in accordance with the Terms.
Asset Request – A Retailer will request assets from the Distribution Entity.
File Manifest – Data describing a set of files that are part of a delivery. Defined in [Manifest].
Media Manifest – Definition of how various media assets are connected to provide an experience to a user. Defined in [Manifest].
Metadata – Consumer-facing description of media assets. This is preferably based on the Media Entertainment Core (MEC) [MEC].
该模型具有以下角色。请注意,这些都是角色,并不一定与公司实体完全一致。
该模型还处理各种数据对象和消息。其中许多内容已在参考规范中进行了描述:
This section describes the workflow between the Studio/Post-Production and the Retailer.
The Studio in conjunction with Post-Production determines which assets are available. The Retailer requests delivery of assets. Post-Production then delivers the assets. There are various variations on this model. The model supports partial deliveries, issue handling, and updates.
The Media Manifest serves as a bill of materials (BOM), describing the various pieces that need be assembled into the final product.
While the Studio and Post-Production determine the set of assets it wishes to create for a title, Retailers do not necessarily want everything. For example, a Retailer may not want a 2- channel audio track if a 5.1 track is available. The process of culling a delivery is currently outside the scope of this document, and is handled bilaterally between Post-Production and the Retailer.
Generally, the Retailer will know what assets it needs because of standard templates for regions based on business terms and technical capabilities. The bilaterally agreed upon deliveries would likely be based on these templates.
Exact usage is determined jointly by some combination of Studio, Retailer and Post- Production.
本节介绍演播室/后期生产和零售商之间的工作流程。
Studio工作室结合后期制作决定哪些资产是可用的。零售商要求交付资产。后期制作,然后交付资产。在这个模型有各种不同的变化。该模型支持部分交付、问题处理和更新。
媒体清单作为材料清单(BOM),描述需要组装成最终产品的各种部件。
虽然工作室和后期制作决定了它希望为标题创建的资产集,但零售商并不一定想要所有的东西。例如,如果有5.1音轨可用,零售商可能不需要2通道的音轨。挑选交付的过程目前超出了本文档的范围,并在后期生产和零售商之间进行双边处理。
一般来说,零售商将知道它需要什么资产,因为基于业务条款和技术能力的区域标准模板。双边商定的交付方式很可能是基于这些模板。
确切的使用是由工作室、零售商和后期制作的一些组合联合决定的。
The industry needed an approach for delivering an improved user experience across all media platforms. The industry developed a suite of solutions called Cross-Platform Extras, or CPE. The CPE specifications help online platforms deliver enhanced or interactive consumer experiences by defining extras (i.e., ‘bonus’, ‘Value Added Material’, etc.) in a form user services can easily translate into a full user experience compatible with that service’s user interface.
行业需要一种跨所有媒体平台提供改进的用户体验的方法。该行业开发了一套被称为跨平台额外服务或CPE的解决方案。CPE规范通过定义额外内容(即“奖金”、“增值材料”等),帮助在线平台提供增强的或交互式的消费者体验。在一个表单中,用户服务可以很容易地转化为与该服务的用户界面兼容的完整用户体验。
CPE supports digital extras and bonus materials such as trailers, galleries, interviews, featurettes, apps/games, and social networking, as well as the time-based (video-sync’d) data. CPE time-based data can define which actors are in which scenes, which pre-visualization coincides which the current scene, and where deleted scenes would have been seen. Regardless of how simple or complete the CPE definition, services can choose which features are presented to their customers.
CPE支持数字额外的和额外材料,如预告片、画廊、采访、特写、应用程序/游戏和社交网络,以及基于时间的(视频同步)数据。基于CPE时间的数据可以定义哪些演员在哪些场景中,哪些预可视化与当前场景一致,以及在哪里可以看到被删除的场景。无论CPE定义多么简单或多么完整,服务都可以选择向客户提供哪些功能。
To reach the broadest range of devices, CPE has two base specifications: CPE-Manifest and CPE- HTML. CPE-Manifest not only supports delivery in a manner nearly identical to Media Manifest Core (MMC), but defines the relationship between assets needed to create a user experience. To customize experiences across applications on multiple devices, there are also accompanying specifications for delivery of appearance and app data. The CPE-HTML specification defines a JavaScript API to implement CPE experiences in a browser.
CPE有两个基本规范:CPE-清单和cpehtml。CPE-清单不仅支持以与媒体清单核心(MMC)几乎相同的方式进行交付,而且还定义了创建用户体验所需的资产之间的关系。为了在多个设备上跨应用程序定制体验,还附带了关于外观和应用程序数据的交付的规范。CPE-HTML规范定义了一个JavaScriptAPI,以便在浏览器中实现CPE体验。
规格、工具和示例代码可在http://movielabs.com/cpe/
the foundational metadata for digital supply chain automation is provided by the Common Metadata specification. Common Metadata includes basic metadata for describing different types of works, identifiers, language variations, people, organizations, and other categories of information related to film and television. It also describes digital asset metadata such as information about encoded audio, video and subtitle streams, as well as package and file metadata.
数字供应链自动化的基础元数据由通用元数据规范提供。公共元数据包括用于描述不同类型的作品、标识符、语言变化、人员、组织,以及与电影和电视相关的其他类别信息的基本元数据。它还描述了数字资产元数据,如关于编码的音频、视频和字幕流的信息,以及软件包和文件元数据。
The definitions in Common Metadata are foundational components for EIDR, EMA Avails, Media Manifest, CPE-Manifest, and other industry initiatives.
In particular, they help standardize the communication of metadata from content providers to online platforms. The Media Entertainment Core Metadata (MEC), developed through a collaboration between the EMA and the Digital Entertainment Group (DEG), specifies a subset of Common Metadata needed to support an online consumer experience. It defines the descriptive and encoding information that constitute the core requirements for standardizing metadata communication from content providers to online platforms.
The Common Metadata and MEC specifications are available at http://movielabs.com/md/md/ and http://movielabs.com/md/mec/.
公共元数据Common Metadata中的定义是EIDR、EMA Avails、Media Manifest媒体清单、CPE-manifest和其他行业的基础组件。
特别是,它们有助于标准化从内容提供商到在线平台的元数据通信。The Media Entertainment Core Metadata 媒体娱乐核心元数据(MEC)是通过EMA和数字娱乐集团(DEG)的合作开发出来的,它指定了支持在线消费者体验所需的公共元数据的一个子集。它定义了描述性和编码信息,这构成了标准化从内容提供商到在线平台的元数据通信的核心需求。
通用元数据和MEC规范可在http://movielabs.com/md/md/和http://movielabs.com/md/mec/.
The DEG Digital Sales Reporting specification is available at http://degonline.org.
Common Metadata/Media Entertainment Core (MEC) – User-facing metadata
面向用户的元数据
Media Manifest/Media Manifest Core (MMC) – Ties everything together (e.g., trailers with features, bonus),
将所有内容绑在一起(例如,带有功能的预告片,彩蛋)
– tools to support media delivery
支持媒体交付的工具
https://github.com/MovieLabs/mddf
https://movielabs.com/md/manifest/validator/v1.4/、
A cardset is a collection of static text or graphics separate from the work itself that appear at the beginning or end of the video. Cardsets are typically specific to a market and include distributor logos and anti-piracy warnings. Cardsets may be embedded in video (i.e., burned in) or overlaid on video via a subtitle. Video-embedded cards are described as part of Video metadata. Subtitle cards are described as part of Subtitle metadata. DigitalAssetCardsetList-type is used to describe a collection of cardsets used together. DigitalAssetCard-type are related by purpose.
card:
开头、结尾:文本图像: 包括 logo, 防盗版警告
The Entertainment Merchant’s Association (EMA), the Digital Entertainment Group (DEG) and MovieLabs have defined a subset of MovieLabs’ Media Manifest for use in Delivery.
This core subset is designed for simple application of the Manifest.
The Media Manifest is part of an overall delivery workflow that is supported by complementary specifications that can optionally be used in conjunction with this specification.
娱乐商户协会(EMA)、数字娱乐集团(DEG)和MovieLabs已经定义了电影实验室媒体 清单的一个交付用子集。这个核心子集是为简单的清单应用程序而设计的。 媒体清单是整个交付工作流程的一部分,该工作流程由补充规范支持,可以选择 与本规范一起使用。
Media Manifest [Manifest] includes elements providing a layered model of information that abstracts various portions of content delivery. The following illustrates the subset of the Media Manifest used in the Media Manifest Core.
媒体清单[清单]包括提供分层信息模型的元素,该模型抽象了内容传递的各个部 分。下面说明了在媒体清单核心中使用的媒体清单的子集。
Media – Video, audio, subtitles, images, applications, etc. This specification defines neither media files (i.e., video, audio, subtitles, images, etc.) nor the mechanism of delivering those files. These processes should not be impacted by the use of the Manifest
媒体-视频,音频,字幕,图像,应用程序等。本规范并不定义媒体文件(即,视 频、音频、字幕、图像等)。也不是传递这些文件的机制。这些流程不应受到清单 的使用的影响。
<?xml version="1.0" encoding="UTF-8"?>
<mdmec:CoreMetadata xmlns="http://www.movielabs.com/schema/md/v2.7/md" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdmec="http://www.movielabs.com/schema/mdmec/v2.7" xmlns:md="http://www.movielabs.com/schema/md/v2.7/md" xsi:schemaLocation="http://www.movielabs.com/schema/mdmec/v2.7 mdmec-v2.7.xsd">
<mdmec:Basic ContentID="md:cid:org:number.hbo.com:787232">
<md:LocalizedInfo language="de">
<md:TitleDisplayUnlimited>Thanksgiving</md:TitleDisplayUnlimited>
<md:TitleSort>Thanksgiving</md:TitleSort>
<md:ArtReference resolution="800x800">md:imageid:org:number.hbo.com:787232:season-photo.de</md:ArtReference>
<md:Summary190 cast="false">Selina feiert Thanksgiving auf eigene Weise. Zwischenzeitlich kümmern Ben und Kent sich um eine Thanksgiving-Day-Krise und bitten Tom James und VP Doyle, in Selinas Abwesenheit Erklärungen abzugeben. Ben beauftragt Dan damit, für Tom James zu arbeiten.</md:Summary190>
<md:Summary400 cast="false">Selina feiert Thanksgiving auf eigene Weise. Zwischenzeitlich kümmern Ben und Kent sich um eine Thanksgiving-Day-Krise und bitten Tom James und VP Doyle, in Selinas Abwesenheit Erklärungen abzugeben. Ben beauftragt Dan damit, für Tom James zu arbeiten.</md:Summary400>
<md:Summary4000 cast="false">Selina feiert Thanksgiving auf eigene Weise. Zwischenzeitlich kümmern Ben und Kent sich um eine Thanksgiving-Day-Krise und bitten Tom James und VP Doyle, in Selinas Abwesenheit Erklärungen abzugeben. Ben beauftragt Dan damit, für Tom James zu arbeiten.</md:Summary4000>
<md:Genre>Action</md:Genre>
<md:CopyrightLine>2016 Home Box Office, Inc.</md:CopyrightLine>
</md:LocalizedInfo>
<md:LocalizedInfo language="en">
<md:TitleDisplayUnlimited>Thanksgiving</md:TitleDisplayUnlimited>
<md:TitleSort>Thanksgiving</md:TitleSort>
<md:ArtReference resolution="800x800">md:imageid:org:number.hbo.com:787232:season-photo.en</md:ArtReference>
<md:Summary190 cast="false">Selina celebrates Thanksgiving in her own special way. Meanwhile, Ben and Kent manage a Thanksgiving Day crisis, deploying Tom James and VP Doyle to make statements in Selina's absence. Ben sends Dan to work for Tom James.</md:Summary190>
<md:Summary400 cast="false">Selina celebrates Thanksgiving in her own special way. Meanwhile, Ben and Kent manage a Thanksgiving Day crisis, deploying Tom James and VP Doyle to make statements in Selina's absence. Ben sends Dan to work for Tom James.</md:Summary400>
<md:Summary4000 cast="false">Selina celebrates Thanksgiving in her own special way. Meanwhile, Ben and Kent manage a Thanksgiving Day crisis, deploying Tom James and VP Doyle to make statements in Selina's absence. Ben sends Dan to work for Tom James.</md:Summary4000>
<md:Genre>Action</md:Genre>
<md:CopyrightLine>2016 Home Box Office, Inc.</md:CopyrightLine>
</md:LocalizedInfo>
<md:ReleaseYear>2016</md:ReleaseYear>
<md:ReleaseDate>2016-05-22</md:ReleaseDate>
<md:ReleaseHistory>
<md:ReleaseType>original</md:ReleaseType>
<md:DistrTerritory>
<md:country>DE</md:country>
</md:DistrTerritory>
<md:Date>2016-05-22</md:Date>
</md:ReleaseHistory>
<md:WorkType>Episode</md:WorkType>
<md:AltIdentifier>
<md:Namespace>MPM</md:Namespace>
<md:Identifier>md:cid:org:microsoft-x:787232_WW:VEEP_43_THANKSGIVING</md:Identifier>
</md:AltIdentifier>
<md:RatingSet>
<md:Rating>
<md:Region>
<md:country>DE</md:country>
</md:Region>
<md:System>FSK</md:System>
<md:Value>16</md:Value>
</md:Rating>
</md:RatingSet>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>1</md:BillingBlockOrder>
<md:Character>Selina Meyer</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Julia Louis-Dreyfus</md:DisplayName>
<md:SortName>Louis-Dreyfus,Louis-Dreyfus</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>10</md:BillingBlockOrder>
<md:Character>Richard</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Sam Richardson</md:DisplayName>
<md:SortName>Richardson,Sam</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>2</md:BillingBlockOrder>
<md:Character>Gary</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Tony Hale</md:DisplayName>
<md:SortName>Hale,Tony</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>3</md:BillingBlockOrder>
<md:Character>Amy</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Anna Chlumsky</md:DisplayName>
<md:SortName>Chlumsky,Anna</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>4</md:BillingBlockOrder>
<md:Character>Dan Egan</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Reid Scott</md:DisplayName>
<md:SortName>Scott,Reid</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>5</md:BillingBlockOrder>
<md:Character>Mike McClintock</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Matt Walsh</md:DisplayName>
<md:SortName>Walsh,Matt</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>6</md:BillingBlockOrder>
<md:Character>Jonah</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Timothy C. Simons</md:DisplayName>
<md:SortName>Simons,Timothy C.</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>7</md:BillingBlockOrder>
<md:Character>Sue</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Sufe Bradshaw</md:DisplayName>
<md:SortName>Bradshaw,Sufe</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>8</md:BillingBlockOrder>
<md:Character>Ben</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Kevin Dunn</md:DisplayName>
<md:SortName>Dunn,Kevin</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Actor</md:JobFunction>
<md:JobDisplay>Actor</md:JobDisplay>
<md:BillingBlockOrder>9</md:BillingBlockOrder>
<md:Character>Kent Davison</md:Character>
</md:Job>
<md:Name>
<md:DisplayName>Gary Cole</md:DisplayName>
<md:SortName>Cole,Gary</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Director</md:JobFunction>
<md:JobDisplay>Director</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Chris Addison</md:DisplayName>
<md:SortName>Addison,Chris</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Julia Louis-Dreyfus</md:DisplayName>
<md:SortName>Louis-Dreyfus,Julia</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Georgia Pritchett</md:DisplayName>
<md:SortName>Pritchett,Georgia</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Morgan Sackett</md:DisplayName>
<md:SortName>Sackett,Morgan</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Will Smith</md:DisplayName>
<md:SortName>Smith,Will</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Christopher Godsick</md:DisplayName>
<md:SortName>Godsick,Christopher</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Dave Mandel</md:DisplayName>
<md:SortName>Mandel,Dave</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Lew Morton</md:DisplayName>
<md:SortName>Morton,Lew</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Frank Rich</md:DisplayName>
<md:SortName>Rich,Frank</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Peter Huyck</md:DisplayName>
<md:SortName>Huyck,Peter</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Alex Gregory</md:DisplayName>
<md:SortName>Gregory,Alex</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Sean Grey</md:DisplayName>
<md:SortName>Grey,Sean</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Producer</md:JobFunction>
<md:JobDisplay>Producer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Jim Margolis</md:DisplayName>
<md:SortName>Margolis,Jim</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Writer</md:JobFunction>
<md:JobDisplay>Writer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Sean Gray</md:DisplayName>
<md:SortName>Gray,Sean</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Writer</md:JobFunction>
<md:JobDisplay>Writer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Georgia Pritchett</md:DisplayName>
<md:SortName>Pritchett,Georgia</md:SortName>
</md:Name>
</md:People>
<md:People>
<md:Job>
<md:JobFunction>Writer</md:JobFunction>
<md:JobDisplay>Writer</md:JobDisplay>
</md:Job>
<md:Name>
<md:DisplayName>Will Smith</md:DisplayName>
<md:SortName>Smith,Will</md:SortName>
</md:Name>
</md:People>
<md:CountryOfOrigin>
<md:country>US</md:country>
</md:CountryOfOrigin>
<md:PrimarySpokenLanguage>en</md:PrimarySpokenLanguage>
<md:AssociatedOrg role="distributor">
<md:DisplayName>HBO</md:DisplayName>
</md:AssociatedOrg>
<md:SequenceInfo>
<md:Number>5</md:Number>
<md:HouseSequence>43</md:HouseSequence>
</md:SequenceInfo>
<md:Parent relationshipType="isepisodeof">
<md:ParentContentID>md:cid:eidr-s:2D99-3C1C-9F31-3E10-3411-1</md:ParentContentID>
</md:Parent>
</mdmec:Basic>
</mdmec:CoreMetadata>
what are deviered and how connected
关系:
<?xml version="1.0" encoding="UTF-8"?>
<manifest:MediaManifest xmlns:manifest="http://www.movielabs.com/schema/manifest/v1.5/manifest" xmlns:md="http://www.movielabs.com/schema/md/v2.4/md" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.movielabs.com/schema/manifest/v1.5/manifest manifest-v1.5.xsd">
<manifest:Compatibility>
<manifest:SpecVersion>1.5</manifest:SpecVersion>
<manifest:Profile>MMC-1</manifest:Profile>
</manifest:Compatibility>
<manifest:Inventory>
<!-- Main audio file for movie -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.en">
<md:Type>primary</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- MultiLanguage -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.fr">
<md:Type>primary</md:Type>
<md:Language dubbed="true">fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_FR.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- MultiLanguage -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.pt-br">
<md:Type>primary</md:Type>
<md:Language dubbed="true">pt-BR</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_PT-BR.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- Trailer -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.audio.en">
<md:Type>primary</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- MultiLanguage --><!-- Trailer -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.audio.fr">
<md:Type>primary</md:Type>
<md:Language>fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_FR.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- main video file for the movie -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- video files for the trailers -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.video.en">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- MultiLanguage -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.video.fr">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_FR.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- Dubcard --><!-- MultiLanguage -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video.dubcard.fr">
<!-- note that dubcards use 'primary' type -->
<md:Type>other</md:Type>
<md:Picture/>
<md:CardsetList>
<md:Cardset>
<md:Type>DubbingCredit</md:Type>
<md:Language>fr</md:Language>
</md:Cardset>
</md:CardsetList>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_video_dubcard_FR.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- Dubcard --><!-- MultiLanguage -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video.dubcard.pt-br">
<md:Type>other</md:Type>
<md:Picture/>
<md:CardsetList>
<md:Cardset>
<md:Type>DubbingCredit</md:Type>
<md:Language>pt-BR</md:Language>
</md:Cardset>
</md:CardsetList>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_video_dubcard_BR-PT.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- Preroll -->
<manifest:Video VideoTrackID="md:vidtrackid:org:iprcenter.gov:video1">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/us-antipiracy-preroll.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- Preroll -->
<manifest:Video VideoTrackID="md:vidtrackid:URI:http://www.movielabs.com/md/ratings/US/MPAA/2/R">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/Rating_MPAA_R.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- Preroll -->
<manifest:Video VideoTrackID="md:vidtrackid:URI:http://www.movielabs.com/md/ratings/CA/CHVRS/1/14A">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/Rating_CHVRS-14A.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- subtitle and caption components for the feature -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.en">
<md:Type>SDH</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_caption_ENG.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- Forced Subtitle -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.en">
<!-- Forced English subtitle - played when SDH subtitle not being presented -->
<md:Type>forced</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_forced_ENG.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- MultiLanguage -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.fr">
<md:Type>normal</md:Type>
<md:Language>fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_caption_FR.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- Forced Subtitle --><!-- MultiLanguage -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.fr">
<md:Type>forced</md:Type>
<md:Language>fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_forced_FR.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.pt-br">
<md:Type>normal</md:Type>
<md:Language>pt-BR</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_caption_PT-BR.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- Forced Subtitle --><!-- MultiLanguage -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.pt-br">
<md:Type>forced</md:Type>
<md:Language>pt-BR</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_forced_PT-BR.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- movie poster artwork is listed as images -->
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_US.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<!-- MultiLanguage -->
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.fr">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_FR.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<!-- MultiLanguage -->
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.pt-BR">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>pt-BR</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_PT-BR.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ru">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>ru</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_RU.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.it">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>it</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_IT.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.de">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>de</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_DE.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>es</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_ES.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es-419">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>es-419</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_MX.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.blx">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>nl-nl</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_BLX.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ko">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>ko</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>file://resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_KR.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<!-- This shows metadata delivered by reference -->
<manifest:Metadata ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:ContainerReference type="common">
<manifest:ContainerLocation>file://resources/ManifestCore-Example1-MEC-movie.xml</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Metadata>
<manifest:Metadata ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1">
<manifest:ContainerReference type="common">
<manifest:ContainerLocation>file://resources/ManifestCore-Example1-MEC-Trailer1.xml</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Metadata>
<manifest:Metadata ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2">
<manifest:ContainerReference type="common">
<manifest:ContainerLocation>file://resources/ManifestCore-Example1-MEC-Trailer2.xml</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Metadata>
</manifest:Inventory>
<!-- presentations are defined for all the inventory that is synched together. they are references of the video, audio, and subtitle inventory -->
<manifest:Presentations>
<!-- the main feature presentation -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video</manifest:VideoTrackID>
</manifest:VideoTrackReference>
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.en</manifest:AudioTrackID>
</manifest:AudioTrackReference>
<!-- MultiLanguage -->
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.fr</manifest:AudioTrackID>
</manifest:AudioTrackReference>
<!-- MultiLanguage -->
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.pt-br</manifest:AudioTrackID>
</manifest:AudioTrackReference>
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.en</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
<!-- Forced Subtitle -->
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.en</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
<!-- MultiLanguage -->
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.fr</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
<!-- Forced Subtitle --><!-- MultiLanguage -->
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.fr</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
<!-- MultiLanguage -->
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.pt-br</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
<!-- Forced Subtitle --><!-- MultiLanguage -->
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.forced.pt-br</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!-- Trailer -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.video.en</manifest:VideoTrackID>
</manifest:VideoTrackReference>
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.audio.en</manifest:AudioTrackID>
</manifest:AudioTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!-- MultiLanguage --><!-- Trailer -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.video.fr</manifest:VideoTrackID>
</manifest:VideoTrackReference>
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.audio.fr</manifest:AudioTrackID>
</manifest:AudioTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!--Dub cards -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.fr.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video.dubcard.fr</manifest:VideoTrackID>
</manifest:VideoTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!--Dub cards -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.pt-br.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video.dubcard.pt-br</manifest:VideoTrackID>
</manifest:VideoTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!--Preroll -->
<manifest:Presentation PresentationID="md:presentationid:org:iprcenter.gov:video1">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:org:iprcenter.gov:video1</manifest:VideoTrackID>
</manifest:VideoTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!--Preroll -->
<manifest:Presentation PresentationID="md:presentationid:URI:http://www.movielabs.com/md/ratings/US/MPAA/2/R">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:URI:http://www.movielabs.com/md/ratings/US/MPAA/2/R</manifest:VideoTrackID>
</manifest:VideoTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!--Preroll -->
<manifest:Presentation PresentationID="md:presentationid:URI:http://www.movielabs.com/md/ratings/CA/CHVRS/1/14A">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:URI:http://www.movielabs.com/md/ratings/CA/CHVRS/1/14A</manifest:VideoTrackID>
</manifest:VideoTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
</manifest:Presentations>
<!--Dub cards --><!-- Preroll -->
<manifest:PlayableSequences>
<manifest:PlayableSequence PlayableSequenceID="md:playablesequenceid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.us">
<!-- Preroll -->
<manifest:Clip sequence="-2">
<manifest:PresentationID>md:presentationid:org:iprcenter.gov:video1</manifest:PresentationID>
</manifest:Clip>
<!-- Preroll -->
<manifest:Clip sequence="-1">
<manifest:PresentationID>md:presentationid:URI:http://www.movielabs.com/md/ratings/US/MPAA/2/R</manifest:PresentationID>
</manifest:Clip>
<manifest:Clip sequence="0">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.presentation</manifest:PresentationID>
</manifest:Clip>
<!-- Dubcards -->
<manifest:Clip sequence="1" audioLanguage="fr">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.fr.presentation</manifest:PresentationID>
</manifest:Clip>
<!-- Dubcards -->
<manifest:Clip sequence="1" audioLanguage="pt-BR">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.pt-br.presentation</manifest:PresentationID>
</manifest:Clip>
</manifest:PlayableSequence>
<manifest:PlayableSequence PlayableSequenceID="md:playablesequenceid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.ca">
<!-- Preroll -->
<manifest:Clip sequence="-1">
<manifest:PresentationID>md:presentationid:URI:http://www.movielabs.com/md/ratings/CA/CHVRS/1/14A</manifest:PresentationID>
</manifest:Clip>
<manifest:Clip sequence="0">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.presentation</manifest:PresentationID>
</manifest:Clip>
<!-- Dubcards -->
<manifest:Clip sequence="1" audioLanguage="fr">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.fr.presentation</manifest:PresentationID>
</manifest:Clip>
<!-- Dubcards -->
<manifest:Clip sequence="1" audioLanguage="pt-BR">
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:dubcard.pt-br.presentation</manifest:PresentationID>
</manifest:Clip>
</manifest:PlayableSequence>
</manifest:PlayableSequences>
<manifest:Experiences>
<!-- Root Experience: Everywhere except Canada -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.us" version="1.0">
<!-- Everywhere except Canada -->
<manifest:ExcludedRegion>
<md:country>CA</md:country>
</manifest:ExcludedRegion>
<manifest:ContentID>md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:Type>Main</manifest:Type>
<manifest:SubType>Feature</manifest:SubType>
<manifest:PlayableSequenceID>md:playablesequenceid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.us</manifest:PlayableSequenceID>
</manifest:Audiovisual>
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
<!-- MultiLanguage -->
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
</manifest:Experience>
<!-- Root Experience: Canada -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.ca" version="1.0">
<manifest:Region>
<md:country>CA</md:country>
</manifest:Region>
<manifest:ContentID>md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:Type>Main</manifest:Type>
<manifest:SubType>Feature</manifest:SubType>
<manifest:PlayableSequenceID>md:playablesequenceid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.ca</manifest:PlayableSequenceID>
</manifest:Audiovisual>
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
<!-- MultiLanguage -->
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
</manifest:Experience>
<!-- Preorder Experience (worldwide) -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.preorder" version="1.0">
<manifest:ContentID>md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:Type>Main</manifest:Type>
<manifest:SubType>Feature</manifest:SubType>
<!-- because offer is early, there is no Presentation. This is not an error because condition is preorder. -->
</manifest:Audiovisual>
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
<!-- MultiLanguage -->
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
</manifest:Experience>
<!-- Child Experiences (international) -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience" version="1.0">
<manifest:ContentID>md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1">
<manifest:Type>Promotion</manifest:Type>
<manifest:SubType>Default Trailer</manifest:SubType>
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.presentation</manifest:PresentationID>
</manifest:Audiovisual>
</manifest:Experience>
<!-- MultiLanguage -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.experience" version="1.0">
<manifest:ContentID>md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2">
<manifest:Type>Promotion</manifest:Type>
<manifest:SubType>Trailer</manifest:SubType>
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.2.presentation</manifest:PresentationID>
</manifest:Audiovisual>
</manifest:Experience>
</manifest:Experiences>
<manifest:ALIDExperienceMaps>
<manifest:ALIDExperienceMap>
<manifest:ALID>md:alid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ALID>
<!-- Preoll (options) -->
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.us</manifest:ExperienceID>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.ca</manifest:ExperienceID>
<!-- Preorder -->
<manifest:ExperienceID condition="Pre-order">md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience.preorder</manifest:ExperienceID>
</manifest:ALIDExperienceMap>
</manifest:ALIDExperienceMaps>
</manifest:MediaManifest>
ALID identifies entitlement权利
中文doi手册
https://www.doi.org/doi_handbook/translations/chinese/hb.html
https://www.movielabs.com/md/class/section1/api.html
https://www.movielabs.com/md/api/
https://movielabs.com/md/qcvocabulary/video/
Using Media Manifest, File Manifest and Avails
for File Delivery (Best Practices)
将文件从工作室(或服务提供商)交付到将使用该媒体的一方(零售商、流媒体服务等)时,如何使用可用邮件、公共媒体清单和公共文件清单。
本节介绍演播室/后期生产和零售商之间的工作流程。
工作室结合后期制作决定哪些资产是可用的。零售商要求交付资产。后期制作,然后交付资产。
虽然工作室和后期制作决定了它希望为标题创建的资产集,但零售商并不一定想要所有的东西。例如,如果有5.1音轨可用,零售商可能不需要2通道的音轨。挑选交付的过程目前超出了本文档的范围,并在后期生产和零售商之间进行双边处理。
一般来说,零售商将知道它需要什么资产,因为基于业务条款和技术能力的区域标准模板。双边商定的交付方式很可能是基于这些模板。
<manifest:MediaManifest xmlns:manifest="http://www.movielabs.com/schema/manifest/v1.8/manifest" xmlns:md="http://www.movielabs.com/schema/md/v2.7/md" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.movielabs.com/schema/manifest/v1.8/manifest manifest-v1.8.1.xsd" ManifestID="SofaSpud.Example" updateNum="1">
<manifest:Compatibility>
<manifest:SpecVersion>1.5</manifest:SpecVersion>
<manifest:Profile>MMC-1</manifest:Profile>
</manifest:Compatibility>
<manifest:Inventory>
<!-- Main audio file for movie -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.en">
<md:Type>primary</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- Trailer -->
<manifest:Audio AudioTrackID="md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.audio.en">
<md:Type>primary</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Audio>
<!-- main video file for the movie -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_feature_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- video files for the trailers -->
<manifest:Video VideoTrackID="md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.video.en">
<md:Type>primary</md:Type>
<md:Picture/>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_trailer_video_ENG.mpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Video>
<!-- subtitle and caption components for the feature -->
<manifest:Subtitle SubtitleTrackID="md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.en">
<md:Type>SDH</md:Type>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_closed_caption_ENG.scc</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Subtitle>
<!-- movie poster artwork is listed as images -->
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>en</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_US.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.fr">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>fr</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_FR.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ru">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>ru</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_RU.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.it">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>it</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_IT.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>es</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_ES.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es-419">
<md:Width>1789</md:Width>
<md:Height>2560</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>es-419</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_ES-419.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Image ImageID="md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ko">
<md:Width>1000</md:Width>
<md:Height>1440</md:Height>
<md:Encoding>jpg</md:Encoding>
<md:Language>ko</md:Language>
<manifest:ContainerReference>
<manifest:ContainerLocation>./resources/CounselorThe_AD07-310C-C59D-6785-C63A-G_art_KO.jpg</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Image>
<manifest:Metadata ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:ContainerReference type="common">
<manifest:ContainerLocation>./resources/ManifestCore_Example1_MEC_movie-simple.xml</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Metadata>
<manifest:Metadata ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1">
<manifest:ContainerReference type="common">
<manifest:ContainerLocation>./resources/ManifestCore_Example1_MEC_Trailer1.xml</manifest:ContainerLocation>
</manifest:ContainerReference>
</manifest:Metadata>
</manifest:Inventory>
<!-- presentations are defined for all the inventory that is synched together. they are references of the video, audio, and subtitle inventory -->
<manifest:Presentations>
<!-- the main feature presentation -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.video</manifest:VideoTrackID>
</manifest:VideoTrackReference>
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.audio.en</manifest:AudioTrackID>
</manifest:AudioTrackReference>
<manifest:SubtitleTrackReference>
<manifest:SubtitleTrackID>md:subtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.caption.en</manifest:SubtitleTrackID>
</manifest:SubtitleTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
<!-- Trailer -->
<manifest:Presentation PresentationID="md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.presentation">
<manifest:TrackMetadata>
<manifest:TrackSelectionNumber>0</manifest:TrackSelectionNumber>
<manifest:VideoTrackReference>
<manifest:VideoTrackID>md:vidtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.video.en</manifest:VideoTrackID>
</manifest:VideoTrackReference>
<manifest:AudioTrackReference>
<manifest:AudioTrackID>md:audtrackid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.audio.en</manifest:AudioTrackID>
</manifest:AudioTrackReference>
</manifest:TrackMetadata>
</manifest:Presentation>
</manifest:Presentations>
<manifest:PictureGroups>
<manifest:PictureGroup PictureGroupID="md:picturegroupid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature">
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en</manifest:ImageID>
<manifest:LanguageInImage>en</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.fr</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.fr</manifest:ImageID>
<manifest:LanguageInImage>fr</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ru</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ru</manifest:ImageID>
<manifest:LanguageInImage>ru</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.it</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.it</manifest:ImageID>
<manifest:LanguageInImage>it</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es</manifest:ImageID>
<manifest:LanguageInImage>es</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es-419</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.es-419</manifest:ImageID>
<manifest:LanguageInImage>es-419</manifest:LanguageInImage>
</manifest:Picture>
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ko</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.ko</manifest:ImageID>
<manifest:LanguageInImage>ko</manifest:LanguageInImage>
</manifest:Picture>
</manifest:PictureGroup>
<manifest:PictureGroup PictureGroupID="md:picturegroupid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1">
<manifest:Picture>
<manifest:PictureID>md:pictureid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en</manifest:PictureID>
<manifest:ImageID>md:imageid:eidr-x:AD07-310C-C59D-6785-C63A-G:art.en</manifest:ImageID>
<manifest:LanguageInImage>en</manifest:LanguageInImage>
</manifest:Picture>
</manifest:PictureGroup>
</manifest:PictureGroups>
<manifest:Experiences>
<!-- Root Experience -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience" version="1.0">
<manifest:ContentID>md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-s:AD07-310C-C59D-6785-C63A-G">
<manifest:Type>Main</manifest:Type>
<manifest:SubType>Feature</manifest:SubType>
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature.presentation</manifest:PresentationID>
</manifest:Audiovisual>
<manifest:PictureGroupID>md:picturegroupid:eidr-x:AD07-310C-C59D-6785-C63A-G:feature</manifest:PictureGroupID>
<manifest:ExperienceChild>
<manifest:Relationship>ispromotionfor</manifest:Relationship>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience</manifest:ExperienceID>
</manifest:ExperienceChild>
<!-- MultiLanguage -->
</manifest:Experience>
<!-- Child Experiences (international) -->
<manifest:Experience ExperienceID="md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.experience" version="1.0">
<manifest:ContentID>md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1</manifest:ContentID>
<manifest:Audiovisual ContentID="md:cid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1">
<manifest:Type>Promotion</manifest:Type>
<manifest:SubType>Default Trailer</manifest:SubType>
<manifest:PresentationID>md:presentationid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1.presentation</manifest:PresentationID>
</manifest:Audiovisual>
<manifest:PictureGroupID>md:picturegroupid:eidr-x:AD07-310C-C59D-6785-C63A-G:trailer.1</manifest:PictureGroupID>
</manifest:Experience>
</manifest:Experiences>
<manifest:ALIDExperienceMaps>
<manifest:ALIDExperienceMap>
<manifest:ALID>md:alid:eidr-s:AD07-310C-C59D-6785-C63A-G</manifest:ALID>
<manifest:ExperienceID>md:experienceid:eidr-x:AD07-310C-C59D-6785-C63A-G:experience</manifest:ExperienceID>
</manifest:ALIDExperienceMap>
</manifest:ALIDExperienceMaps>
</manifest:MediaManifest>
https://baike.baidu.com/item/doi/6776783?fr=aladdin
DOI码由前缀和后缀两部分组成,之间用“/”分开,并且前缀以“.”再分为两部分。
前缀由国际数字对象识别号基金会确定,后缀部分由资源发布者自行指定,用于区分一个单独的数字资料,具有唯一性。发布者可以选择以何单位进行注册,例如,一本书可以注册单一的 DOI,也可以依各章节分别注册,甚至独立注册其中的一个表格或图片。
国际数字对象识别号基金会(International DOI Foundation)是成立于1998年的非营利组织,它是 DOI 系统的行政主体,目的在保障与 DOI 系统相关的知识产权,推广 DOI 的运用,并确保 DOI 系统的一切改进(如创造、维护、注册、解析与相关决策)能为全体注册者使用。
国外的数字文献生产商较早采用唯一标识符来标识其出版的电子文献,并形成了很多应用在不同环境下的标识符方案。例如:连续出版物及其单篇文献的标识SICI(Serial Item and Contribution Identifier)、图书及图书内的内容片断(章节、前言、索引、段落)的唯一标识符BICI(Book Item and Contribution Identifier)以及出版物件标识符PII(Publisher Item Identifier)等。但是大多标识符方案仅仅定义了标识符名称空间及标识符构成机制,尚未构成一个完整的包含解析系统的标识符系统。相对于这些唯一标识符,美国出版协会(The Association of America Publishers, 简称AAP)建立的DOI在技术上比较成熟。它主要是针对因特网环境下如何对知识产权进行有效的保护和管理而产生的。1998年AAP创立非盈利性组织IDF,IDF在CNRI的配合下,制定了DOI标准和相应的解析系统Handle System。
目前已有上千万个已经分配并解析的DOI号码,8个RA(DOI注册代理机构,其中中国科技信息研究所和北京万方数据研究院联合申请为8个代理之一)和几百个使用单位,跨越了美国、欧洲和澳大利亚以及一些非英语国家,应用领域也扩展到政府部门。目前国外Elsevier、Blackwell、John Wiley、Springer等大型出版商大多使用DOI对数字资源进行标识,形成了比较完整的命名、申请、注册、变更等管理机制,DOI的解析系统发展也比较成熟。在此基础上,一些生产商相继推出各种与DOI相关的增值服务。例如CrossRef Search结合Google检索技术与DOI系统的定位服务,实现了CrossRef Search检索结果到生产商全文之间持久、有效的链接。
国内使用DOI尚处于初级阶段,基本都是些自定义的惟一标识符方案,还没有成熟统一的标识符解析系统。2007年初,中国科学技术信息研究所和万方数据联合向IDF(国际DOI基金会)申请取得了DOI的中文注册权,并在此基础上成立了中文DOI注册中心,成为中文信息服务领域的第一个国际DOI基金会(IDF)组织下的中文代理。建立并负责运作中文DOI的推广与应用,作为第一个中文合作式参考链接服务。万方数据研究院则是注册中心的日常管理基地。中心的任务与目标是通过与国内外相关机构的合作 ,推进DOI在国内出版界、信息服务界的应用,并积极探索通过DOI实现中文与英文文献资源的链接;中心不仅提供DOI的注册服务,而且还通过建设一个DOI中文应用平台与门户网站,提供基于DOI命名及应用相关的增值服务。在信息资源整合的基础上通过DOI系统提供更多的附加服务。
持久性
一个数字化对象的DOI标识符一经产生就永久不变,不随其所标识的数字化对象的版权所有者或存储地址等属性的变更而改变。
兼容性
DOI标识符的兼容性体现在DOI号码的后缀中可以包含任何已有的标识符,例如国际标准书号ISBN,国际标准刊号ISSN,国际标准文本代码ISTC,出版物件标识符PII等。
动态更新
DOI系统可对其元数据、应用和服务功能进行快速和简便的动态更新。DOI的主要目的是唯一标识网络环境下的各种信息资源实体(Entity),包括各种物理和数字资源。DOI是从统一资源定位符(Uniform Resource Locator,URL)发展而来,被称为“下一代URL”。它与URL 的最大区别就是实现了对资源实体的永久性标识。
前缀组成
DOI前缀由两部分组成,一个是目录代码,所有DOI的目录都是“10.”,即所有DOI代码都以“10.”开头。另一个是登记机构代码,任何想登记DOI 的组织或单位都可以向IDF申请登记机构代码。登记机构代码的分配也是非常灵活的,如一个出版商可以为其所有的信息资源只申请一个前缀,也可以为其数字图书、音像制品各申请一个前缀。
后缀构成
DOI后缀是一个在特定前缀下唯一的后缀,由登记机构分配并确保其唯一性。后缀可以是任何字母数字码,其编码方案完全由登记机构自己来规定。后缀可以是一个机器码,或者是一个已有的规范码,如ISBN号或ISSN号。
举例
10.1016/j.jphotochem.2018.10.025
10.1039/c7ra08324f
https://en.wikipedia.org/wiki/EIDR
所述娱乐标识符注册表,或者EIDR,是全球唯一的标识符用于视听对象,包括一个广泛的阵列系统的动态影像,电视,和无线电节目。识别系统解决了一个识别符的元数据,其与顶层标题,编辑,相关记录的DVD,编码,夹子和混搭。EIDR 还为视频服务提供商提供标识符,例如广播和有线网络。
截至 2020 年 6 月,EIDR 包含超过 200 万条记录,包括近 40 万部电影,以及来自 40,000 多部电视剧的近 100 万集。
EIDR 是数字对象标识符(DOI) 的实现。
What is an entertainment identifier (EIDR)?
EIDR is a universal Digital Object Identifier (DOI) that uniquely identifies an audiovisual object. It is similar to a UPC code that is used to identify physical packaged goods. EIDR can be used for both physical and digital video objects that are part of the movie and television supply chain.
EIDR is an opaque ID with all information about the registered asset stored in a central registry. Its structure consists of a standard registry prefix, the unique suffix for each asset and a check digit.
EIDR is purely functional without any implication of ownership, making it persistent enough to remain the same despite any change in control or ownership of the underlying asset.
EIDR 是唯一标识视听对象的通用数字对象标识符 (DOI)。它类似于用于识别物理包装商品的 UPC 代码。EIDR 可用于作为电影和电视供应链一部分的物理和数字视频对象。
EIDR 是一个不透明的 ID,其中包含有关存储在中央注册表中的注册资产的所有信息。它的结构由一个标准的注册前缀、每个资产的唯一后缀和一个校验位组成。
EIDR 纯粹是功能性的,没有任何所有权的暗示,使其足够持久,即使基础资产的控制权或所有权发生任何变化,也能保持不变。
创建 EIDR 是为了解决这些问题,以及在视频资产工作流程中遇到的其他问题,无论是在企业对企业环境中还是在内容制作者的校内后期制作活动中。EIDR具有以下特点:
所有参与者均可使用的中央注册表
能够轻松注册新资产
不可变的资产 ID(特别是在资产所有权或元数据位置或资产本身的变化方面)
检测/防止创建的相同资产的重复项
能够创建一组源自抽象作品的视频资产(例如原始戏剧版本、导演剪辑、语言变体)
能够通过更一般的关系对视频资产进行分组(例如电视剧一季的剧集)
一组核心元数据来区分资产,即使是密切相关的
可扩展、不可变、持久
DOI 是一种 Handle System 句柄,它采用字符串的形式,分为两个部分,前缀和后缀,用斜线分隔。
prefix/suffix
前缀标识标识符的注册人,后缀由注册人选择并标识与该 DOI 关联的特定对象。
A Digital Object Identifier (DOI®) is used for identifying content objects in the digital environment. DOI® names are assigned to any entity for use on digital networks. They are used to provide current information, including where they (or information about them) can be found on the Internet. Information about a digital object may change over time, including where to find it, but its DOI name will not change.
The DOI System provides a framework for persistent identification, managing intellectual content, managing metadata, linking customers with content suppliers, facilitating electronic commerce, and enabling automated management of media. DOI names can be used for any form of management of any data, whether commercial or non-commercial. While the DOI system assigns DOIs, the task of creating and maintaining registries to meet specific industry domain needs belongs to Registration Agencies.
An example of a DOI-based ecosystem currently deployed is one used for the identification of articles in research journals. Created by a non-profit association called CrossRef (the DOI Registration Agency in this instance), the system has been operating since 2000 and has registered over 35 million identifiers. CrossRef also operates part of the distributed and redundant handle lookup system. For more information on the DOI system, please see www.doi.org
数字对象标识符 (DOI ® ) 用于识别数字环境中的内容对象。DOI ®名称被分配给任何实体以在数字网络上使用。它们用于提供当前信息,包括在 Internet 上可以找到它们(或有关它们的信息)的位置。关于数字对象的信息可能会随着时间而改变,包括在哪里可以找到它,但它的 DOI 号不会改变。
DOI 系统提供了一个框架,用于持久识别、管理知识内容、管理元数据、将客户与内容供应商联系起来、促进电子商务以及实现媒体的自动化管理。DOI 号可用于对任何数据进行任何形式的管理,无论是商业的还是非商业的。当 DOI 系统分配 DOI 时,创建和维护注册以满足特定行业领域需求的任务属于注册机构。
当前部署的基于 DOI 的生态系统的一个例子是用于识别研究期刊中的文章。该系统由一个名为 CrossRef 的非营利协会(本例中为 DOI 注册机构)创建,自 2000 年以来一直运行,已注册超过 3500 万个标识符。CrossRef 还运行部分分布式和冗余句柄查找系统。有关 DOI 系统的更多信息,请访问www.doi.org
登记处为所有电影和电视资产类型分配 EIDR,包括:
故事片
电视节目、电视剧、季节和剧集
短片
宣传材料(广告、预告片)
互动材料
在最基本的层面上,EIDR 是为“作品”注册的。新对象的 EIDR 可以从中派生或与以前注册的对象相关联。每个对象都由其 EIDR 引用并具有与其关联的元数据。一些示例级别是:
继承的基本对象,例如电影、连续剧、电视节目或商业广告。
衍生和相关资产,例如剪辑、语言版本、剪辑和预告片。
资产的实例或包含编码信息的载体表现。
复合作品,例如混搭或剪辑序列。
附加材料,例如替代内容。
EIDR 旨在为大规模使用提供具有成本效益的机制,旨在提供一种廉价的机制来跟踪微资产,一直到剪辑、编码和组合。为此,注册表所需和存储的元数据仅限于帮助唯一标识正在注册的对象的那些核心元素。
该系统无意取代商业元数据提供商或与商业元数据提供商竞争。EIDR 不会提供:
面向消费者的元数据,
扩展的或非事实的元数据(例如,演员和工作人员、概要、艺术作品、评级等),
一个权限存储库。
相反,EIDR 是一种 B2B 服务,旨在促进和支持这些和其他形式的增值服务。
The EIDR Registry includes a deduplication module to determine whether a given submission or submission update would create a distinct registry entry and should be permitted. For each submission or update, the Registry calls the automated de-duplication module which uses a specified set of rules to determine the uniqueness of the object and then notifies the Registry of one of three outcomes; the object is unique, the object is a duplicate, or that the object has potential duplicate candidates which need further review. For objects requiring further review, the Registry operations support staff perform a manual verification to determine if the object is a duplicate.
EIDR Registry 包含一个重复数据删除模块,用于确定给定的提交或提交更新是否会创建一个独特的注册表项并且应该被允许。对于每次提交或更新,Registry 调用自动重复数据删除模块,该模块使用一组指定的规则来确定对象的唯一性,然后将三个结果中的一个通知 Registry;该对象是唯一的,该对象是重复的,或者该对象具有需要进一步审查的潜在重复候选对象。对于需要进一步审查的对象,注册操作支持人员执行手动验证以确定对象是否重复。
是的。EIDR 是一个全球注册机构,旨在支持全球电影和电视行业。
提交给 EIDR 的处理在几秒钟内完成,结果要么是成功发出 EIDR,要么是因为发现提交重复而失败,要么是需要手动验证以排除重复的通知。人工验证在一个工作日内完成。
https://workflow.frame.io/guide#ch=delivery
File based media delivery has become the industry standard over the past ten years. Tape deliveries have become antiquated and typically only requested for redundancy or for use by legacy systems.
Often, you’ll find file delivery specifications in a “deliverables” document. Strict adherence to the deliverables document is essential to ensuring your media is accurately played back and viewed in the way in which it was intended. Failure to adhere to the specifications defined within a deliverables document may lead to picture artifacts, sound hiccups, or failure to play all together.
Advanced delivery specifications may also include incorporating strict naming conventions of the media files, specific audio channel mapping, the embedding of metadata, and wrapping of various media files into “wrappers”. Lastly, the way that you transfer files from one location to another can take the form of traditional FTP, web-based transfer services, P2P (peer-to-peer) applications, or dedicated accelerated transfer utilities.
在过去十年中,基于文件的媒体交付已成为行业标准。磁带交付已经过时,通常只要求冗余或供遗留系统使用。
通常,您会在“交付物”文档中找到文件交付规范。严格遵守可交付成果文件对于确保您的媒体按预期方式准确播放和查看至关重要。不遵守可交付成果文档中定义的规范可能会导致图片伪影、声音打嗝或无法一起播放。
高级交付规范还可能包括合并媒体文件的严格命名约定、特定音频通道映射、元数据嵌入以及将各种媒体文件包装到“包装器”中。最后,您将文件从一个位置传输到另一个位置的方式可以采用传统 FTP、基于 Web 的传输服务、P2P(点对点)应用程序或专用加速传输实用程序的形式。
https://cinepedia.com/terminology/
dub cards
Dub cards are presented at the end of the video to credit voice actors who have played major roles in the dubbed audio track for a title. Dub cards must be supplied for all titles delivered with dubbed audio and each language dubbed track must be accompanied by a dub card.
会在视频的末尾呈现,以表彰在配音音轨中扮演重要角色的配音演员。必须为所有带有配音的影片提供配音卡,并且每种语言的配音曲目必须附有配音卡。
https://videocentral.amazon.com/home/help?topicId=GA2MQZYXW22HSESY&ref_=avd_sup_GA2MQZYXW22HSESY
The key to a good looking end deliverable is to create your final deliverable(s) from the highest quality master file. Re-compressing media files that have already had a round of compression will yield a worse looking media file. Much like making a photocopy of a photocopy, generational loss can occur with each subsequent re-compression, so it is important to start with the highest quality file available. The highest quality file, from which all other versions will be generated from, is often called a “mezzanine” file.
一个漂亮的最终交付物的关键是从最高质量的主文件创建你的最终交付物。重新压缩已经进行了一轮压缩的媒体文件会产生更糟糕的媒体文件。就像制作影印本的影印件一样,每次后续重新压缩都可能发生代际损失,因此从可用的最高质量文件开始非常重要。生成所有其他版本的最高质量文件通常称为“夹层”文件。
DCI是美国六大电影制作公司的合资企业,它们共同制定了一个数字电影系统的开放规范。本规范的许多部分已被SMPTE采用,也被国际标准化组织ISO转化为标准。
Digital Cinema Initiatives (DCI) is a consortium of the 6 major Hollywood studios: Disney, Fox, Paramount, Sony, Universal Studios, and Warner Bros. Formed in 2002, DCI issued version 1.0 of its Digital Cinema System Specification (DCSS) in July 2005. Numerous changes to the specification have since been issued, known as “errata.” DCI also publishes a Compliance Test Plan (CTP), based on its DCSS. Several testing agencies are authorized to conduct DCI Compliance Testing based on the CTP and DCSS. The latest versions of the DCSS and CTP, as well as a list of authorized testing agencies, are available at the DCI website.
The DCSS is the top-level document for baseline digital cinema system design. It comprises over 150 pages, nearly half of which specify the mechanisms of digital cinema security. To meet DCI’s specification, a Media Block must pass NIST FIPS 140-2 Level 2 testing, as constrained by the DCSS, in addition to DCI’s CTP. DCI also specifies or recommends compliance to numerous SMPTE standards. However, not all SMPTE standards employed in digital cinema are identified by DCI.
DCI Recommendations target new practices in cinema where distributors and exhibitors benefit from uniformity. While enforcement of DCI Compliance is enacted through the Trusted Device List, there is no enforcement mechanism for DCI Recommendations.
SMPTE stands for the Society of Motion Picture and Television Engineers, and is the standards body where the majority of digital cinema standards work takes place. (The JPEG 2000 profiles specified by SMPTE are standardized by ISO.) Standards group activity is managed online and available to SMPTE standards committee members at the SMPTE website. The SMPTE standards effort for digital cinema was initiated in January 2000, and continues to this day.
数字电影计划 (DCI) 是由 6 家主要好莱坞电影公司组成的联盟:迪士尼、福克斯、派拉蒙、索尼、环球影城和华纳兄弟。 DCI 成立于 2002 年,7 月发布了其数字电影系统规范 (DCSS) 的 1.0 版2005. 此后发布了对规范的许多更改,称为“勘误表”。DCI 还根据其 DCSS 发布合规性测试计划 (CTP)。一些测试机构被授权进行基于 CTP 和 DCSS 的 DCI 一致性测试。DCI 网站上提供了最新版本的 DCSS 和 CTP,以及授权测试机构的列表。
DCSS 是基线数字影院系统设计的顶级文档。它包含 150 多页,其中近一半详细说明了数字电影安全机制。为了满足 DCI 的规范,除了 DCI 的 CTP 之外,媒体块还必须通过 NIST FIPS 140-2 2 级测试,受 DCSS 的约束。DCI 还指定或建议遵守众多 SMPTE 标准。然而,并非数字电影中采用的所有 SMPTE 标准都由 DCI 识别。
DCI 建议针对电影院的新做法,发行商和放映商从统一中受益。虽然 DCI 合规性的强制执行是通过受信任设备列表制定的,但 DCI 建议没有强制执行机制。
SMPTE 代表电影和电视工程师协会,是大多数数字电影标准工作发生的标准机构。(SMPTE 指定的 JPEG 2000 配置文件由 ISO 标准化。)标准组活动是在线管理的,SMPTE 标准委员会成员可以在SMPTE 网站上访问。数字电影的 SMPTE 标准工作始于 2000 年 1 月,并一直持续到今天。
数字电影包
https://www.bgteach.com/article/325
一个数字电影包(简称DCP)是数字filmprint,与图像和声音的特殊数据格式。
它的规格已经被设定数字电影倡导联盟的7家大好莱坞电影公司在“数字影院系统规范”合作。目的是为数字电影建立一个标准,以防止不同格式的并发,这会使在全球发行电影时变得更加复杂。另一个目标是建立一个高度安全的反盗版标准。DCI 标准作为 35 毫米胶片的继承者现在被广泛接受,因为它的标准开放、没有任何许可费用、高安全级别以及卓越的图像和声音质量。
DCP 由媒体文件、装箱单 (PKL) 和一个或多个合成播放列表 (CPL) 组成。哪些图片和声音文件放在一起以及它们应该以什么顺序播放的信息包含在这些合成播放列表中。此外,如果存在,应显示哪些字幕。因此,可以在一个 DCP 中存储多种语言版本,而无需两次保存冗余信息(例如图片文件),从而有效利用磁盘空间。根据比特率,数字电影包每分钟消耗大约 1.5 到 2 GB 的存储空间。
https://j2kconversion.com/dcp-format/
(数字电影包)DCP 格式是视频和音频 MXF(材料交换格式)文件的集合,用于在电影/投影服务器上流式传输媒体。此 MXF 文件充当文件包装器,其中包含压缩格式的图像/视频和音频文件,以减小文件大小并以最有效的方式传输。
它是一个类似于 MOV 或 AVI的容器文件。还可以对这些文件进行加密,以避免对数据进行未经授权的访问。
图像文件由图像 -JPEG2000 文件格式和音频 - 24 位线性 PCM 通道组成。
DCP 包包含附加文件以及作为支持文件并与音频和视频 MXF 文件同时运行的音频和视频文件,以提供有关这些文件将如何从头到尾运行的信息。
J2k 指的是 JPEG2000。这是在影院放映广告电影/广告广告所需的图像压缩格式。J2k 转换是后期制作过程的最后一步。剪辑完成并从剪辑时间轴导出电影后,必须经过后期制作过程的最后一步,其中将其转换为另一种称为JPEG2000格式的格式,以使其与影院服务器兼容以进行放映剧院和多厅。
下面提到的这六个文件是 DCP 格式的一部分:
1) 视频/图像 MXF 文件
2) 音频 MXF 文件
3) 资产映射文件
4) 合成播放列表文件 (CPL)
5) 打包列表文件 (PKL)
6) 卷索引文件
https://cinepedia.com/packaging/
A discussion of the DCP would not be complete without mention of the two types of distribution package used in production: Interop DCP and SMPTE DCP. They are functionally similar in that the DCP definitions provided earlier in this chapter apply to both types of packaging formats. But they are substantially different in that they are not interoperable.
Interop DCP is based on an early draft proposal for SMPTE DCP. It was put into practice in 2004, in preparation for the rollout of digital cinema. SMPTE DCP was not finalized until 2009, four years after the rollout began. Interop DCP was intended as a temporary format until the standardized version came into existence. However, the lack of backwards compatibility, as well as the requirement for functionality not available in legacy equipment, has hampered the transition to SMPTE DCP.
Digital cinema owes its success to Interop DCP, which continues to be the primary distribution format at the time of this writing. Despite its success, Interop DCP was not formally standardized, but the documentation is available through Cinepedia at Interop DCP. In contrast, SMPTE DCP is well-defined, and published as a suite of SMPTE standards. Maintenance on Interop DCP continued up until 2012, when it was decided to limit new development to only SMPTE DCP.
There are several differences in SMPTE DCP that prevent backwards compatibility and interoperability. Both formats utilize a Composition Playlist (CPL), but with different, non-interoperable XML structures. There are also structural differences in Subtitle and Audio track files. SMPTE DCP Subtitle track files are encrypted, a valued feature to distributors. But the structure of the subtitle track file is significantly different from its Interop counterpart, as there was an intellectual property issue with the Interop version at the time the standard was created. The result is that DLP Series 1 projectors, the largest concentration of which are in the United States, are incapable of rendering the SMPTE DCP subtitle track file. This incompatibility can be overcome by rendering SMPTE subtitles in the server, a feature which is now commonplace in newer servers and media blocks. Another difference is a reliance on audio channel routing in the server, which also is not supported in many older systems. As a result, practical SMPTE DCP distributions are constrained to bypass the new audio features, falling back to Interop-style audio packaging. This workaround requires the use of “Channel Configuration 4” described in Annex A of SMPTE ST 429-2 DCP Operational Constraints, which was originally included for test purposes. More explanation of digital cinema audio is available in the chapter on Sound.
The DCP type can be most easily recognized by the namespace root called out in the XML-based Composition Playlist (CPL). SMPTE DCP uses the SMPTE-RA.ORG namespace root, while Interop DCP uses DIGICINE.COM. The top-level document that defines SMPTE DCP is SMPTE ST 429-2 DCP Operational Constraints. Interop DCP documentation is available here.
如果不提及生产中使用的两种类型的分发包:Interop DCP和SMPTE DCP,则对 DCP 的讨论将是不完整的。它们在功能上相似,因为本章前面提供的 DCP 定义适用于两种类型的包装格式。但它们的本质区别在于它们不可互操作。
Interop DCP 基于 SMPTE DCP 的早期草案提案。它于2004年投入使用,为数字影院的推出做准备。SMPTE DCP 直到 2009 年才最终确定,即推出四年后。Interop DCP 旨在作为一种临时格式,直到标准化版本出现。然而,缺乏向后兼容性,以及对传统设备不具备的功能的要求,阻碍了向 SMPTE DCP 的过渡。
数字电影的成功归功于 Interop DCP,在撰写本文时,它仍然是主要的分发格式。尽管 Interop DCP 取得了成功,但它并未正式标准化,但可通过 Cinepedia 在Interop DCP获得该文档。相比之下,SMPTE DCP 定义明确,并作为一套 SMPTE 标准发布。Interop DCP 的维护一直持续到 2012 年,当时决定将新开发仅限于 SMPTE DCP。
SMPTE DCP 中存在一些阻止向后兼容性和互操作性的差异。两种格式都使用合成播放列表 (CPL),但具有不同的、不可互操作的 XML 结构。字幕和音轨文件也存在结构差异。SMPTE DCP 字幕轨道文件已加密,这是发行商的一项重要功能。但是字幕轨道文件的结构与其 Interop 对应文件明显不同,因为在创建标准时 Interop 版本存在知识产权问题。结果是 DLP 系列 1 投影机(其中最集中在美国)无法渲染 SMPTE DCP 字幕轨道文件。这种不兼容性可以通过在服务器中渲染 SMPTE 字幕来克服,现在在较新的服务器和媒体块中很常见的功能。另一个区别是依赖于服务器中的音频通道路由,这在许多旧系统中也不支持。因此,实用的 SMPTE DCP 分发被限制为绕过新的音频功能,退回到互操作式音频打包。此变通方法需要使用附件 A 中描述的“通道配置 4”SMPTE ST 429-2 DCP 操作约束,最初包含用于测试目的。有关数字电影音频的更多解释可在声音一章中找到。
DCP 类型可以通过在基于 XML 的合成播放列表 (CPL) 中调用的命名空间根来最容易地识别。SMPTE DCP 使用SMPTE-RA.ORG命名空间根,而 Interop DCP 使用DIGICINE.COM。定义 SMPTE DCP 的顶级文档是SMPTE ST 429-2 DCP Operational Constraints。Interop DCP 文档可在此处获得。
An Asset map file will list all the files that are created in a DCP in XML format :
The Asset Map15 describes the location of each asset on the storage media. It contains for each asset an entry that maps the UUID of the asset to a path on a file system. It is also possible to split assets that are too big for one single storage medium. In that case the asset map contains information of where to find all the chunks of one file on a
multi‐volume set of storage media. In that case the VolumeIndex16 shall be used to identify each volume.
This file is also in XML format and consist of sequence in which the playback will be presented on the cinema screen.
该文件也是 XML 格式,并由播放将在影院屏幕上呈现的序列组成。
The Composition Playlist (CPL)12 is a “self‐contained representation of a single complete D‐Cinema work, such as a motion picture, or a trailer, or an advertisement, etc.”13 It specifies in which combination and order the assets (image, sound and subtitle track files) are played back to form this D‐Cinema work. A DCP can contain more than one CPL and each track file can be referenced by more than one CPL. This makes it possible to create multi‐language versions that reference the same picture track files but different sound or subtitle track files. It is even possible to create multi‐language versions where some parts of the image differ for each language. To accomplish this it is necessary to put the differing scenes in separate image track files that can then be addressed by the appropriate CPL. Figure 3 gives a principle overview of the relations between CPL and track files.
组成播放列表(CPL)12是“一个完整的D电影作品的独立表现,如电影、预告片或广告等”。13它指定回放资产的组合和顺序(图像、声音和字幕轨道文件),以形成这个D电影工作。一个DCP可以包含多个CPL,每个跟踪文件可以被多个CPL引用。这使得创建引用相同的图片跟踪文件但引用相同的声音或字幕跟踪文件的多语言版本成为可能。甚至可以创建多语言版本,其中图像的某些部分因每种语言不同。为了实现这一点,有必要将不同的场景放在单独的图像跟踪文件中,然后适当的CPL可以对这些文件进行处理。图3给出了CPL和跟踪文件之间关系的原理概述。
https://cinepedia.com/packaging
<?xml version="1.0" encoding="UTF-8"?>
<cpl:CompositionPlaylist xmlns:cpl="http://www.smpte-ra.org/schemas/429-7/2006/CPL"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<cpl:Id>urn:uuid:6922e3fe-98de-4347-b832-92e400509d5b</cpl:Id>
<cpl:AnnotationText>First D-Cinema Feature</cpl:AnnotationText>
<cpl:IssueDate>2001-12-17T09:30:47-05:00</cpl:IssueDate>
<cpl:Issuer>Major US domestic distributor</cpl:Issuer>
<cpl:Creator>Reliable Packaging Software v1.4</cpl:Creator>
<cpl:ContentTitleText>The Jazz Singer</cpl:ContentTitleText>
<cpl:ContentKind>Feature</cpl:ContentKind>
<cpl:ContentVersion>
<cpl:Id>urn:isan:0123-1230-3210-2310-1</cpl:Id>
<cpl:LabelText>English (Theatrical)</cpl:LabelText>
</cpl:ContentVersion>
<cpl:RatingList>
<cpl:Rating>
<cpl:Agency>http://www.mpaa.org/2003-ratings</cpl:Agency>
<cpl:Label>PG</cpl:Label>
</cpl:Rating>
<cpl:Rating>
<cpl:Agency>http://rcq.qc.ca/2003-ratings</cpl:Agency>
<cpl:Label>G</cpl:Label>
</cpl:Rating>
</cpl:RatingList>
<cpl:ReelList>
<cpl:Reel>
<cpl:Id>urn:uuid:adac28b2-67ac-4c3d-a9e5-dca87ae92596</cpl:Id>
<cpl:AnnotationText>Reel #1 of The Jazz Singer</cpl:AnnotationText>
<cpl:AssetList>
<cpl:MainMarkers>
<cpl:Id>urn:uuid:be7d56ea-7c6b-4ec0-958a-e7af0cc3d8c4</cpl:Id>
<cpl:EditRate>24 1</cpl:EditRate>
<cpl:IntrinsicDuration>3600</cpl:IntrinsicDuration>
<cpl:MarkerList>
<cpl:Marker>
<cpl:Label>FFOC</cpl:Label>
<cpl:Offset>0</cpl:Offset>
</cpl:Marker>
<cpl:Marker>
<cpl:Label>LFOC</cpl:Label>
<cpl:Offset>3600</cpl:Offset>
</cpl:Marker>
</cpl:MarkerList>
</cpl:MainMarkers>
<cpl:MainPicture>
<cpl:Id>urn:uuid:e76f1738-a8be-4d4c-8d69-84333e01812d</cpl:Id>
<cpl:AnnotationText>Picture for Reel #1 of The Jazz Singer</cpl:AnnotationText>
<cpl:EditRate>24 1</cpl:EditRate>
<cpl:IntrinsicDuration>3800</cpl:IntrinsicDuration>
<cpl:EntryPoint>100</cpl:EntryPoint>
<cpl:Duration>3600</cpl:Duration>
<cpl:KeyId>urn:uuid:e848beaa-4189-47e1-bc92-cf6eef09f05a</cpl:KeyId>
<cpl:FrameRate>24 1</cpl:FrameRate>
<cpl:ScreenAspectRatio>185 100</cpl:ScreenAspectRatio>
</cpl:MainPicture>
<cpl:MainSound>
<cpl:Id>urn:uuid:20e892d8-1126-4979-8403-39e95ba5571f</cpl:Id>
<cpl:AnnotationText>Soundtrack for Reel #1 of The Jazz Singer</cpl:AnnotationText>
<cpl:EditRate>24 1</cpl:EditRate>
<cpl:IntrinsicDuration>3600</cpl:IntrinsicDuration>
<cpl:KeyId>urn:uuid:e02befe4-06b1-40a1-ad3f-bde6fa05cd50</cpl:KeyId>
<cpl:Language>en-us</cpl:Language>
</cpl:MainSound>
</cpl:AssetList>
</cpl:Reel>
</cpl:ReelList>
</cpl:CompositionPlaylist>
All the file are basically Hashed and their Hash is stored in this File. This is the file is important at the time of ingestion of the DCP in the cinema server to check for consistency and ensure that the file is not corrupted.
所有的文件基本上都是散列的,它们的散列存储在这个文件中。这是在影院服务器中摄取 DCP 时检查一致性并确保文件未损坏的重要文件。
The Packing List (PKL)14 is an XML file that contains information about all files that belong to a DCP. The Packing List contains the identifiers of all assets in the DCP and includes further information regarding the issuer of the package, the system type that was used to create the package, etc. The PKL furthermore contains hash values for each asset in the package. Hash values or checksums are numbers of a certain length that are calculated from a file that is to be hashed and that can be used to identify manipulations or transmission errors. A playback server should recalculate the hash values from the asset files and compare them to those in the Package List to ensure the integrity of the package.
包装列表(PKL)14是一个XML文件,它包含关于属于DCP的所有文件的信息。装箱列表包含DCP中所有资产的标识符,并包括关于包的发行者、用于创建包的系统类型等的进一步信息。PKL还包含包中每个资产的散列值。散列值或校验和是从要散列的文件中计算出的一定长度的数字,可用于识别操作或传输错误。回放服务器应该从资产文件中重新计算哈希值,并将其与包列表中的值进行比较,以确保包的完整性。
资产地图15描述每个资产在存储媒体上的位置。它为每个资产包含一个将资产的UUID映射到文件系统上的路径。也可以拆分对一个单一存储介质来说太大的资产。在这种情况下,资产映射包含了在哪里找到一个文件的所有块的信息
这是一个 XML 文件,用于检查在硬盘驱动器上创建和存储的 DCP 文件的卷顺序。
Encrypting the DCP package:
The DCP package comes with the option of encryption. This is required in order to avoid unauthorized distribution of the commercial film/ Ad-films.
The (MXF File- audio and video) are encrypted using the AES encryption. Asymmetric 2048 bit RSA is used to encrypt these AES keys. This AES encryption has its own public and private key. The private key is stored with the playback system and the public key is shared the owner/distributor.
After the encryption is done, A KDM(Key Delivery Message) is generated. These KDM’s are nothing but an XML file which contains these AES keys which can be played on the destination device only with the private key of the devices.
These KDM’s also provide the facility of creating time and date limits on the data with projection system on which it will be played, which simply means that the projection system will not be able to play the package outside the time and date defined for that content, which ensures that the date cannot be played prior or beyond the specified time and date, thus putting a check on unauthorized distribution of the data.
DCP 软件包带有加密选项。这是为了避免商业电影/广告电影未经授权的分发所必需的。
(MXF 文件-音频和视频)使用 AES 加密进行加密。非对称 2048 位 RSA 用于加密这些 AES 密钥。这种 AES 加密有自己的公钥和私钥。私钥与播放系统一起存储,公钥由所有者/分发者共享。
加密完成后,会生成一个 KDM(Key Delivery Message)。这些 KDM 只不过是一个 XML 文件,其中包含这些 AES 密钥,只能使用设备的私钥在目标设备上播放。
这些 KDM 还提供了使用投影系统对数据创建时间和日期限制的便利,这仅意味着投影系统将无法在为该内容定义的时间和日期之外播放包,这可确保不能在指定的时间和日期之前或之后播放日期,从而检查未经授权的数据分发。
3.4Encryption and access control
Encryption of a DCP is an optional possibility, but one that is used for most commercially distributed movies in order to enforce access control for the content. The DCI Specification contains many details of the complete access control and content security concept that encompasses encryption of the file in a DCP as well as mechanisms to ensure that only authorized playback systems are able to decrypt the content. The Specification also takes care of measures to prevent and detect manipulations of the playback systems. In this section of the discussion we will focus on the encryption and key delivery mechanism because this is the most important part for content producers and archives that receive encrypted DCPs.
The encryption‐based content security and access control mechanism consists of two separate parts that are important here: 1) The encryption of the track files including digital signatures to ensure the authenticity of the CPLs and PKL and 2) The mechanism to deliver the cryptographic keys that were used to encrypt the track files to the playback system to enable the decryption and projection of the DCP. The encryption systems and algorithms that are used are standardized and have been commonly employed in information technology, encrypted emails, other documents and data for many years.
MXF track file essence encryption17 makes use of the AES18 system with 128‐bit keys. AES is a symmetric encryption system, in which a single key is used both to encrypt and to decrypt a file. This means of course that if someone has the key that was used to encrypt a file he can also use it to decrypt the file. The conclusion is that the AES keys have to be kept secret and they should only be made available to the playback server systems that are authorized to decrypt and playback a DCP. Normally, the only point where these AES keys exist in plaintext is during production of an encrypted DCP. In a DCP each MXF track file shall be encrypted with its own key and with only one key per MXF track file.
Since the AES keys have to be kept secret they must be encrypted themselves before their transmission to the cinemas and to the D‐Cinema playback servers. This is accomplished by using a second, substantially different cryptographic algorithm called the RSA public key algorithm19. This is an asymmetric system. That means that a pair of two different keys is used: the receiver of an encrypted message holds a private key that must be kept secret and that is used to decrypt an encrypted message. The second key in the pair is the public key that is only used to encrypt a message but cannot be used to decrypt it again. This asymmetric system makes it possible to send an encrypted message to a receiver without the necessity to arrange the secure exchange of a secret key.
In the case of a D‐Cinema playback server the asymmetric key pair is created by the manufacturer of the server during production of the device. The private key is stored tamper‐proof in a special hardware part of the server and there shall be mechanisms in place that ensure that the secret private key is automatically erased if someone tries to manipulate the system in any way. This means that not even the owner of such a server has the possibility of retrieving this private key. On the other hand, the public key that belongs to the private key of a playback server is available from the manufacturer or delivered together with the server, and this key is used to create Key Delivery Messages (KDM20) for DCPs that are specific for this server and that in turn contain the now RSA‐encrypted, secret AES keys that were used to encrypt a DCP.
A KDM can contain the keys for one or more playback servers. It is also possible that a KDM might only contain the keys for one language version of a multi‐language DCP while you would need another KDM to be able to playback another language. KDMs may also contain restrictions that define the time during which a DCP can be played back. In theory an end point very far in the future is possible. Additionally, hashing and signature mechanisms are in place to ensure authenticity of a KDM and to prevent manipulation of KDMs during delivery to the cinema. Figure 4 gives an overview of the encryption, key delivery and decryption process.
The advantage of this two‐stage approach is that a DCP only has to be encrypted once and not individually per cinema or per playback server. The connection to the playback servers is only established at the point where a KDM is created. Since each AES key has a size of 128 bits the size of a KDM usually is only a few kilobytes. Therefore a KDM can
17 see SMPTE ST 429-6:2006
18 Advanced Encryption Standard (FIPS 197), http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf 19 see “PKCS #1: RSA Cryptography Specifications Version 2.1” By B. Kaliski. February 2003. RFC 3447, http://www.ietf.org/rfc/rfc3447.txt
be easily and quickly created and also transmission of the KDM to the cinema can be achieved via email or small USB memory sticks.
DCP的加密是一种可选的可能性,但它用于大多数商业发行的电影,以强制执行对内容的访问控制。DCI规范包含了完整的访问控制和内容安全概念的许多细节,其中包括在DCP中对文件的加密,以及确保只有授权的回放系统能够解密内容的机制。该规范还负责防止和检测回放系统操作的措施。在本节的讨论中,我们将重点关注加密和密钥传递机制,因为这是接收加密dcp的内容生产者和存档的最重要的部分。
基于加密的内容安全和访问控制机制由两个重要的独立部分组成:1)跟踪文件的加密,包括数字签名,以确保CPL和PKL的真实性;2)将用于加密跟踪文件的加密密钥传递到回放系统,以使DCP的解密和投影。所使用的加密系统和算法是标准化的,多年来一直被广泛应用于信息技术、加密电子邮件、其他文档和数据中。
MXF跟踪文件本质加密17利用AES18带有128SBUR位键的系统。AES是一个对称的加密系统,其中单个密钥被用于加密和解密一个文件。这当然意味着,如果有人有用来加密文件的密钥,他也可以使用它来解密文件。结论是,AES密钥必须保密,它们应该只提供给被授权解密和播放DCP的播放服务器系统。通常,这些AES密钥在纯文中存在的唯一点是在生产加密的DCP期间。在DCP中,每个MXF跟踪文件应使用自己的密钥加密,每个MXF跟踪文件只有一个密钥。
由于AES密钥必须保密,它们必须在传输到影院和D影院播放服务器之前进行加密。这是通过使用第二种本质上不同的加密算法称为RSA公钥算法来实现的19。这是一个非对称的系统。这意味着使用了一对两个不同的密钥:加密消息的接收器持有一个必须保密的私钥,并用于解密加密消息。对中的第二个密钥是仅用于加密消息但不能再次解密消息的公钥。这种非对称系统使得向接收器发送加密消息成为可能,而不需要安排密钥的安全交换。
在D影院回放服务器的情况下,由设备生产期间的服务器制造商创建非对称密钥对。私钥存储在服务器的特殊硬件部分,应有机制,确保如果有人试图以任何方式操作系统,密钥将自动擦除。这意味着即使是这样的服务器的所有者也不可能检索此私钥。另一方面,属于回放服务器私钥的公钥可从制造商获得,或与服务器一起交付,此密钥用于创建密钥传递消息(KDM20),用于特定于此服务器的dcp,并依次包含现在的RSA加密的、用于加密DCP的秘密AES密钥。
KDM可以包含一个或多个播放服务器的密钥。也有可能一个KDM可能只包含一个多语言DCP的一种语言版本的密钥,而您需要另一个KDM才能能够播放另一种语言。kdm还可能包含定义可以回放DCP的时间的限制。理论上,在未来的终点是可能的。此外,哈希和签名机制已经到位,以确保KDM的真实性,并防止在交付到电影院期间对kdm的操纵。图4概述了加密、密钥传递和解密过程。
这两阶段方法的优点是,DCP只需要加密一次,而不是每个电影院或每个播放服务器。与回放服务器的连接仅在创建KDM的点上建立。由于每个AES密钥的大小为128位,所以KDM的大小通常只有几千字节。因此,KDM可以轻松快速地创建,也可以通过电子邮件或小u盘传输到电影院。
THE EVOLUTION OF IMF AND WHAT IT HOLDS FOR THE FUTURE OF POST
https://ownzones.com/blog/the-evolution-of-imf-and-what-it-holds-for-the-future-of-post/
https://www.youtube.com/watch?v=wf5svn4Yhgs&t=8s&ab_channel=HPAIMFUserGroup
Getting started with component-based workflows? Interested in learning more about IMF? This session is for you: learn about IMF use cases and technology, get to know some of the latest IMF products on the market and listen to a Q&A with experts.
With:
Bruce Devlin, Mr MXF
Aaron Sloman, OWNZONES Entertainment Technologies
Erik Dobberkau, Rohde & Schwarz
Scott Matics, Telestream
Julián Fernández-Campón, Tedial
Fereidoon Khosravi, Venera Technologies
Pierre-Anthony Lemieux, Chairman, IMF UG
IMF standards(a summary)
telestream
pulsar imf valadition
Hyper IMF
互操作主格式 (IMF) 是一种标准,允许将单个内容集合转换为多个版本,同时共享相同的材料。一个很好的例子是一部电影,它分发了三个不同的版本:用于电视广播的原版、航空公司剪辑版和用于另一个地区的不同语言版本。
IMF 的工作始于电影领域,但也可能与各种广播公司用例相关,例如交换和存档。
https://tech.ebu.ch/publications/imf
The Interoperable Master Format (IMF),a standardfor multi-version audio-visual contentoften used in cinema content distribution,is making inroads into television and onlinedistribution with a new SMPTE Technical Specification.
It’s these business requirements that were used to create“Application DPP (ProRes)”(SMPTE TSP 2121-1) which simplifies the use of IMF for TV and online programme production, mastering, delivery and exchange.
https://netflixtechblog.com/imf-a-prescription-for-versionitis-e0b4c1865c20
https://www.youtube.com/watch?v=7oyJFhgIrzw&ab_channel=HPAIMFUserGroup
IMF 用户组网站上还有一个 IMF 开源软件列表。
https://www.imfug.com/suppliers/
https://www.imfug.com/open-source/
https://github.com/sandflow/regxmllib
IMF: Interoperable Mastering Format - Dalet Academy Webinar Recording
https://www.youtube.com/watch?v=XxR0Ys_EXgE&ab_channel=DaletAcademy
https://www.avid.com/zh/resource-center/what-is-the-interoperable-master-format
对在线平台和数字观看设备的内容需求不断增加,这让团队面临复杂的交付流程、成本增加和制作时间长。可互操作主格式 (IMF) 通过提供标准包来解决这些挑战,该包简化了为不同受众创建相同内容的多个定制版本的过程。
IMF 已经存在几年了,越来越多的编辑工具使得导出素材以满足 IMF 交付规范变得更加容易。然而,业内对它仍然存在相当大的困惑。本指南将对 IMF 的运作方式以及使其成为必需的独特行业挑战进行高级概述。
定义可互操作的主格式
IMF 是一个基于文件的框架,由美国电影电视工程师协会 (SMPTE) 制定为标准 2067-2。它旨在通过创建用于分发的单个主文件来简化文件交换过程。然而,这意味着在企业之间分发内容,而不是直接交付给消费者。
IMF 实际上是数字电影包 (DCP) 的演变,DCP 自 2012 年以来一直是分发戏剧内容的标准。在过去几年中,IMF 已经适应了广播和在线分发的特殊挑战。具体来说,它可以更轻松地管理和处理电影或宣传片的多个版本,以适应例如航空公司剪辑、特别版、替代语言或地域合规性。
IMF 为团队提供了可靠的工作流程,帮助他们在处理制作的质量控制、母带制作和版本控制时保持一致(即使在不同国家/地区)。
如何运作
IMF 包不是包含特定版本程序的单个主文件,而是包含与一段内容相关的所有要素(音频和视频)和元数据(包括字幕和字幕)。这些被视为个人资产。
当以各种方式组合时,这些资产会在作品中创建不同版本的内容,例如中国戏剧剪辑或航空公司剪辑。乐曲播放列表 (CPL) 定义乐曲的播放时间线。Prime Focus Technologies使用了一个很好的类比:如果资产是成分,那么 CPL 就是配方。
IMF 可以包含无限的 CPL。每个代表包中包含的文件的唯一组合,例如程序的不同剪辑。CPL 并非旨在包含媒体本身,而是引用包含实际要素的外部轨道文件。这种结构使得管理多个合成和处理它们成为可能,而无需复制通用的本质文件。
由于 IMF 可以帮助从相同的组合中创建许多不同的分发格式,因此它需要一组技术说明来使所有内容井然有序。输入输出配置文件列表 (OPL)。OPL 指定了 CPL 的处理和转码指令,并结合了其他修改,如大小调整、音频和通道混合以生成成品。
https://www.etcenter.org/interoperable-master-format/
互操作主格式 (IMF) 项目的目标是为一组可互操作的主文件(和相关元数据)开发自愿规范,以实现下游分发包的标准交换和自动创建。我们希望创建一个自愿性规范,该规范将在 2010 年秋季提交给 SMPTE,以启动正式的标准制定过程。
IMF 的一些好处应该是:
单一、可互换的主文件格式
自动化包装和交付
最小化存储
简化后期制作转码
IMF 将存储一组基于文件的主元素集,以便使用多个合成播放列表(配方)为任何下游分发进行组装,类似于当今数字电影包装 (DCP) 中使用的内容。高质量、统一的 IMF 的广泛概念应该降低成本,缩短上市时间,并提高现有生产流程和需求的互操作性。当然,任何内容创建者、服务提供商或分发合作伙伴都可以实施和定制基于 IMF 文件的工作流。
IMF 媒体管理 API
IMF 通过将媒体存储为组件来提供极大的效率,然后可以将这些组件打包在一起以制作特定版本,然后可以将其转换为各种输出格式。这意味着需要管理更多的单个文件,但 IMF 使这更容易,因为每个文件都有一个通用标识符。尽管如此,它提出了一个问题:如果产品和服务只有一个 ID ……或两个……或一千个,您如何获得产品和服务来交换资产?
这就是 IMF 媒体管理 API (imf-mm-api) 的用武之地。它是一个开源 API(应用程序编程接口),允许交换 IMF 资产。该项目是制造商、广播公司和其他参与 IMF 开发和标准化的公司的合作项目。
https://www.thedpp.com/imf/imf-mm-api
创建和分发内容的过程一直是一个复杂的过程,但随着内容发布者必须解决的分发渠道和交付机制的数量的增加,这种复杂性在过去几年中呈指数级增长。在此之前,媒体公司将他们的节目以少数语言分发到少数地区,并在有限的设备上播放(通常只有2个影院版本和电视版本)。相比之下,现代分销链由多个全球区域组成——每个区域都有自己的一套监管要求——以及一套更广泛的播放设备。某些类型的内容——例如裸体和/或亵渎——可能需要被删除,以便交付内容能够被某些文化所接受。此外,素材必须针对这些区域内(和跨区域)的多个独立播放平台进行定制。通常还需要多种可选的发行版本,如“航空公司削减”(同样具有其独特的需求)。事实上,一个大型的长期项目创建者和分销商已经公开表示,他们被迫为每一项主要资产创建3500个独立版本,以满足他们所有的分销点!满足所有这些不同的需求所需要的处理出现了许多问题,不仅仅是需要配音和添加字幕——而且这些功能需要针对所需的每种语言和播放平台执行。这显然是一个低效的场景。IMF(可互操作主格式)就是为了解决这个问题而设计的。
IMF是SMPTE规范的框架,旨在简化面向全球分销渠道的多种版本材料的管理和处理。这里需要注意的是,该框架的目的不是作为最终交付给消费者的机制——而是为了简化公司间(“B2B”)交付的过程,以便随后以最终格式交付给消费者。
为IMF确定的主要成果有:
1.支持多种音频和视频格式,与相关/语言特定的图形,字幕,字幕等;
2.支持动态元数据,期望同步到本质;
3.使用众所周知的标准化技术,将媒体包装到单个轨道中,并识别创建单个交付所需的轨道
This last point was satisfied through the use of a combination of 2 existing technologies. Essence files are wrapped using SMPTE standard MXF (Media eXchange Format) wrapping – specifically OP1a – and the files making up a deliverable are identified using technology derived from the DCP standards which were also developed by SMPTE and released in 2009.
最后一点通过结合使用两种现有技术得到了满足。Essence文件使用SMPTE标准的MXF(媒体交换格式)包装——具体来说是OP1a——而构成可交付成果的文件使用来自于同样由SMPTE开发并于2009年发布的DCP标准的技术进行识别。
当解析IMF Composition时,设备首先查找一个名为Composition Playlist (CPL)的文件。CPL类似于一个编辑决策列表——它定义了复合的回放时间线,并包含了整个复合的元数据。这里非常重要的一点是,CPL不是设计来包含本质的,而是包含实际本质的外部(MXF)跟踪文件的引用(见图1)。
使用这种机制大大简化了之前提到的版本控制问题:为了创造一段内容的不同语言版本,所需要的只是另一个CPL,它将指向不同的音频文件和图像文件。所有其他指针可以保持不变(见图2)。这个CPL及其相关的附加媒体轨道可以包含在原始包中,也可以稍后在所谓的“补充包”中发送。
https://www.youtube.com/watch?v=O1U-0nS73So&ab_channel=Dalet
下一代数字媒体文件交付标准--IMF封包
https://zhuanlan.zhihu.com/p/32095083
https://107cine.com/stream/60248/
When IMF assets are at rest, the files can be moved, renamed, put into object storage or otherwise processed, and the ID inside the file remains unchanged despite a potential change in file name or file path.
当 IMF 资产处于静止状态时,文件可以被移动、重命名、放入对象存储或以其他方式处理,并且文件内的 ID 保持不变,尽管文件名或文件路径可能发生变化。
To locate moveable assets in a large system, you really need a Media Asset Management (MAM) system to handle IMF at scale. The imf-mm-api provides a basic way for an App to ask the MAM questions, such as:
要在大型系统中定位可移动资产,您确实需要一个媒体资产管理 (MAM) 系统来大规模处理 IMF。imf-mm-api 为应用程序提供了一种基本的方式来询问 MAM 问题,例如:
“What Asset IDs are needed to process Title with ID XXX?”
“What Asset IDs do you know about?”
“Where can I find the file with Assets ID YYY?”
“What is the minimum amount of data I need to send you to deliver package ZZZ?”
“处理 ID 为XXX 的Title 需要哪些资产 ID ?”
“您知道哪些资产 ID?”
“我在哪里可以找到资产 ID 为YYY的文件?”
“我需要发送给你的最低数据量是多少才能交付包裹ZZZ?”
https://githubmemory.com/repo/cinelexi/amazing-digital-cinema
How to monetize video – AVOD, SVOD, TVOD & PVOD Explained
https://corp.kaltura.com/blog/avod-svod-tvod-explained/
SVOD – 点播订阅视频
SVOD 或基于订阅的模式就像传统的付费电视套餐一样工作。SVOD 服务向用户收取月度或年度订阅费,以无限制地访问整个系列、电影、电视节目,甚至直播频道和播客。SVOD 服务的示例包括 Netflix、Disney+ 或 HBO Max。
AVOD – 基于广告的视频点播
AVOD 或基于广告的视频点播是观众用眼球“付费”的一种模式——它包括由广告资助的免费内容。就像广播电视一样,收入 100% 来自在视频上销售广告。AVOD 平台的一些示例是 YouTube、Roku、Pluto TV 或 Dailymotion。
TVOD – 点播交易视频
TVOD 模式也称为按次付费,向客户出售或出租个人视频,就像过去的视频商店一样。因此,对于希望出售一组特定视频的版权持有者来说,这是一个很好的模式——例如,想一想想要出售其最新大片版权的发行公司。TVOD 模型的示例包括 Amazon Prime Video 或 Google Play 上的电影。
在 TVOD 模型下可以找到两个子类别:
电子销售量 (EST),用户只需支付一次即可永久访问内容。
Download to Rent (DTR),观众只需支付较低的费用即可在有限的时间内访问内容。
PVOD – 优质视频点播
付费模式是 TVOD 的一种变体,最终用户可以比其他人更快地付费访问内容。与电影首映一样,他们可以在内容进入大众市场前几个月率先观看,当然票价更高。 迪斯尼的花木兰 就是一个很好的例子。这部电影只提供给迪士尼+订阅者,他们额外支付了 30 美元才能获得首映。
https://www.cnblogs.com/deliver/p/3300634.html
XML 声明:如
CDATA:在一个块内,用把内容包住,使在该块中可以不用xml实体。
DTD:文档类型定义 (document type definition)
XSD(XML Schema Definition):即XML Schema ,是W3C 支持一种DTD代替者,它的语法基于XML 。
XSL :指扩展样式表语言(EXtensible Stylesheet Language),它的初衷是给xml提供样式显示。由XSLT、XPath 以及 XSL-FO组成。XSLT的主旨更一般化,指可将一种 XML 文档转换为另外一种 XML 文档。口头中,常把XSLT称为XLS。
XSLT:指 XSL 转换(XSL Transformations), 可将一种 XML 文档转换为另外一种 XML 文档,其中一种特例是把XML转换成HTML输出。
Xpath:Xpath是一门在 XML 文档中查找信息的语言,在 XML 文档中通过元素和属性进行导航。 XSLT使用 XPath 在 XML 文档中进行导航,在XSLT中,除开导航,就只剩下怎么替换的问题了。
Xquery:一种xml的查询语言,Xquery之于xml就像sql之于数据库。XQuery是基于XPath上的,单独的 XPath 位置路径本身就是有效的 Xquery。
xml schema xsd 入门
http://blog.sina.com.cn/s/blog_4c6245400100bhbq.html
xml schema 教程
https://www.runoob.com/schema/schema-complex-empty.html
https://www.w3schools.com/xml/schema_schema.asp
视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门
https://blog.csdn.net/jinking01/article/details/119895433
零基础入门:实时音视频技术基础知识全面盘点
https://baijiahao.baidu.com/s?id=1673078065774743785&wfr=spider&for=pc
视频专家之路【一】:音视频入门知识基础
https://www.cnblogs.com/codescrew/p/9030144.html
RESTful API 设计指南
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
RESTful API 最佳实践
http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html
https://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html
RESTful APIs: Tutorial of OpenAPI Specification
https://medium.com/@amirm.lavasani/restful-apis-tutorial-of-openapi-specification-eeada0e3901d
https://www.youtube.com/watch?v=Qo5z77Q6ySw&ab_channel=HaiderMalik
官方教程:
https://swagger.io/docs/specification/describing-parameters/