草庐IT

视频CMS是什么?你为什么需要它?

LiveVideoStack_ 2024-05-13 原文

▲扫描图中二维码了解音视频技术大会更多信息▲


作者:Barry Owen

翻译:姜金元

编辑:Alex

Easy-Tech #034#

现在的视频内容比以往任何时候都多,已占据当今互联网80%的流量。但是,如果没有一个简单的方法来组织、存储和访问这些内容,它们只不过就是一堆数字杂物而已。通过充当媒体资产的中央存储库和提高在线视频发行效率,视频内容管理系统(CMS,content management system)可以有效改善视频内容的混乱状态。

什么是视频CMS?


视频内容管理系统,即视频CMS,是用于管理视频资产的应用平台,与任何优秀的内容管理工具一样,视频CMS充当了数据库的角色,简化了数字资产存储、查找和传播的过程。

具有可组织性是视频CMS的一个关键能力,而可搜索则是它的直接优势。这些数字库对于托管、分类和访问整个内容发布商视频档案非常重要。内容发布商和终端用户都能够根据标题、关键字或内容类别等属性来快速找到他们正在搜索的视频。

通过使用视频CMS平台,这些数据既可以自动提取,也可以手动输入。对于更先进的视频CMS平台还可以利用人工智能(AI)来快速分析内容并相应地编入索引。

最后,CMS的界面也可以包含与视频性能和观看者数据相关的分析,这有助于为未来的决策提供帮助信息,并使整个工作流更加直观。

所有这些都使得直播公司更容易在内部管理内容和在外部共享内容。

为什么使用视频CMS?


想象一下,你买了一栋新房子,却发现阁楼上堆满了没有做标记的DVD。更糟糕的是,如果这些DVD散布在整个房子里,而不是集中放在一个位置呢?

这些DVD很可能具有一定的收藏价值(毕竟,《龙珠Z套装》在eBay上价值800美元)。但是,如果没有办法对这些DVD进行快速的整理和分类,你可能会更倾向于处理掉它们。毕竟,难以组织、存储和共享的视频内容又有什么价值呢?

视频CMS通过多个自动化内容管理流程以及在一个地方托管在线视频来解决上述的需求。企业依靠视频CMS工具可以轻松地传输和管理视频文件,而无须担心遇到任何IT问题。

对于发行商来说,这意味着提升数据输入效率。CMS可以快速提取、标记和存储内容,在此过程中将自动执行所有的任务。例如,通过生成和存储有关上传视频的元数据,CMS分去了直播公司原本需要承受的一部分负担。

对于终端用户来说,这意味着可以更快地发现内容。CMS允许观众在系统中搜索内容并支持随时播放,从而为用户留出更多时间来观看搜索的视频。

对于双方来说,CMS可用于根据用户的历史观看记录来生成推荐的视频内容。这为内容制作者带来更多的浏览量(浏览量就是收益),也为观众带来更好的个性化体验。换句话说,所有参与者都是双赢的。

视频CMS的优点


总而言之,CMS的价值与媒体数据和随之而来的更容易发现内容息息相关。具体来说,CMS就是:

  • 集中管理: 当内容存储在单一系统中时,更容易跟踪、管理和定位。

  • 重复和扩大使用: 视频CMS允许直播公司重复使用可能在存储过程中丢失的内容。

  • 用户友好访问: 视频CMS平台为终端用户提供了搜索和发现内容的简单方法。

视频CMS的工作原理


提取和标记

视频CMS的核心是用于管理视频资产的API,它通过对元数据的提取、存储和标记视频内容来区分每个文件。直播公司可以上传一个或多个文件到系统中,甚至可以使用 live-to-VOD功能在直播流中录制视频。

视频CMS通过以下三种方式收集与每个文件相关的数据:

  1. 提取的数据: 可以从文件中自动提取有关视频的信息,如持续时间、分辨率和所使用的编解码器。

  2. 用户输入的数据: 基于组织内部结构的视频标签,如主题或参与者,可以由个人在上传每个文件时手动输入。

  3. 机器生成的数据: 人工智能 (AI) 和机器学习 (ML)也可用于收集更多的信息。通过captioning技术、目标检测和其他计算机视觉技术获取音频数据来实现。

通过管理界面,发布者还可以自定义视频的类别和层次结构,以及通过设置状态可以将用户和每个文件相关联,甚至可以更新单个和批量视频。例如,管理员可能希望将视频标记为已发布/未发布状态或者为终端用户生成播放列表。

视频处理

视频CMS通过对每个文件进行处理来为视频传输做准备。这包括对视频进行转码和打包,以便发送到任何端点。这样,每当有人选择观看视频文件时, CMS都会提供最适合他们设备和连接的视频格式。

开启搜索功能

最后,该API还可以实现视频的发现功能。这使得用户可以轻松地访问内容。用户可以输入与视频主题相关的关键字,或者根据类别和标签进一步深入和细化他们的搜索。一旦用户选择了一个视频,得益于ABR技术,他们就可以随时随地进行观看。

视频CMS能够提供哪些功能?


视频CMS的关键功能包括:

  • 转码和打包: 如果每个观众都拥有一个连接到高带宽互联网的4K家庭影院,那么视频内容的传输将会是很容易的事情。但事实并非如此。如今的观众会随时随地使用各种设备来访问流媒体。不同的屏幕和不同的网络带宽使得对视频的转码和处理变得至关重要。除了启用自适应码流外,此功能还允许你将内容重新打包为各种格式,以便在任何设备上进行有效播放。

  • live-to-VOD: 如果你经常观看直播内容,但希望能够从直播流中实时创建视频点播(VOD)内容,你会希望找到一个支持live-to-VOD的视频平台。通过该功能,你可以快速将实时内容添加到你的视频库中,并通过对内容再利用来获取额外的盈利机会。

  • 灵活的元数据建模: 不要让你的视频CMS提供商对你的视频数据的结构施加限制。添加新字段和类别的能力为定义你的业务最有意义的内部组织结构提供了灵活性。

  • 元数据自动生成: 针对诸如编解码器、分辨率和持续时间等元数据的自动生成可以加速内容标记。信息越多越好——这也是你需要一个视频CMS来自动化部分流程的原因。

  • 简单、灵活的搜索: 本杰明 ·富兰克林说过:你花在组织事务上的每一分钟,都可以为你赢来一个小时。然而,这句话只适用于这样的视频CMS工具:每个使用该技术的人都可以快速定位他们想要找到的内容。简单、灵活的搜索确保了这一点。

  • API 访问: 对视频CDN的API访问确保你可以轻松地将该工具与其他系统集成并控制你的视频托管体验。虽然大多数视频CMS平台都有一个直观的用户界面(UI),但是API访问意味着你不受特定UI的束缚。

高级视频CMS包含的功能更加复杂,其中包括:

  • 工作流建模: 工作流建模允许自定义内容角色和状态来恰当地发送视频。通过描述作者、编辑和发布者以及未发布和已发布的生命周期状态等,该功能有效简化了跨组织的管理。

  • 批量传输: 任何希望从另一个平台迁移视频的人都将受益于具有批量传输功能的视频CMS,一次就可以移动数十万个文件。

  • 播放列表生成和播放: 播放列表可以将多组视频编程为线性频道在规定的时间段内进行播放。该功能支持创建任何内容,从数字广告到企业新闻资讯,再到具有精选线性频道的OTT平台的全天候播放服务。高级播放列表功能还包括对广告(前、中、后贴片广告)的支持,以及具备混合直播内容的功能。

  • 人工智能/机器学习: 用于自动转录、主题检测、目标识别和字幕生成的AI/ML工具有望取代人工来分类视频内容。因此,AI/ML可以提高内容的可搜索性,为使用平台的每个人提供更好的用户体验。例如,所有包含提及医疗相关的关键字的视频,可能会被自动分组到某个组织的“医疗”类别中。或者,如包含非法内容(如裸体等)的视频可能会被自动标记,以便进一步审查。

  • 集成分析: 数据分析有助于提升QoE、内容分类、广告定位等。如果你拥有一个内置了此功能的视频CMS,这意味着你可以在整个工作流程中做出由数据驱动的可视化决策。

  • 视频片段剪辑和编辑: 用于片段、精彩内容的剪辑以及对视频库中的视频进行简单编辑的工具,它提供了一种重新利用内容和提升视频价值的方法。通过这种方法,你可以在Instagram等社交媒体平台上发布短视频、制作现场活动的精彩片段、剪辑录制的视频或者以其他方式修改内容,同时也使得各个版本的核心视频都可用。

独立服务与集成解决方案


视频CMS软件既可以作为独立产品购买,也可以作为企业视频平台的集成组件来购买。集成的解决方案通常更受青睐,因为它简化了发布商的基础设施,并且更容易创建混合直播和点播内容的线性频道。

此外,为你的所有视频技术需求寻找单独一家供应商解决方案是提高整个视频交付工作流程可观察性的关键。长期以来,复杂的多供应商工作流一直困扰着在线视频。集成的视频CMS解决方案减轻了这种复杂性,最终也为终端用户提供了更加流畅的体验。

一段时间以来,我们的客户一直在寻求视频CMS的功能,这也是我们建立集成了具备视频CMS、分析等功能的Wowza视频平台的原因。

References:

https://www.wowza.com/video/cms

https://www.wowza.com/video/vod-and-live-streaming

https://www.wowza.com/video/analytics

https://www.wowza.com/blog/vod-streaming-what-it-is-and-how-it-relates-to-ott

https://www.wowza.com/blog/adaptive-bitrate-streaming

https://www.wowza.com/blog/artificial-intelligence-transforming-live-streaming

作者简介:

Barry Owen, Wowza的视频流专家和解决方案工程副总裁,Barry拥有超过25年的SaaS、基于云的和实时流媒体平台的经验,致力于为客户打造创新型解决方案。

致谢:

本文已获得作者Barry Owen授权翻译和发布,特此感谢。

原文链接:

https://www.wowza.com/blog/video-cms-what-it-is


有关视频CMS是什么?你为什么需要它?的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  3. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  4. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  5. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  6. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  7. ruby - rspec 需要 .rspec 文件中的 spec_helper - 2

    我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只

  8. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  9. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  10. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

随机推荐