中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

將視頻平臺(tái)Kaltura集成到CMS客戶端

發(fā)布于:2021-01-29 17:06:52

0

139

0

adobe flash javascript java Kaltura CMS

Web內(nèi)容管理系統(tǒng)中視頻資產(chǎn)的集成和管理對(duì)用戶和運(yùn)營(yíng)商都提出了挑戰(zhàn)。將現(xiàn)有的視頻管理平臺(tái)與所采用的CMS連接起來(lái)是實(shí)現(xiàn)此目標(biāo)的有效方法,同時(shí)又不會(huì)浪費(fèi)時(shí)間,也不會(huì)縮短用戶培訓(xùn)的時(shí)間。這家德國(guó)公司的Subshell選擇了這條路徑,并將開(kāi)源視頻平臺(tái)Kaltura集成到他們流行的內(nèi)容管理系統(tǒng)Sophora的客戶端應(yīng)用程序中。

有幾種方法可以增強(qiáng)具有視頻相關(guān)功能的Web內(nèi)容管理系統(tǒng)。一種方便且常見(jiàn)的方法是將視頻上傳到領(lǐng)先的視頻門(mén)戶之一,然后借助HTML或JavaScript片段將其嵌入到您自己的網(wǎng)站中。即使該變體需要相對(duì)最小的技術(shù)努力,但對(duì)于用戶來(lái)說(shuō)仍然不是很舒適。此外,對(duì)實(shí)際視頻數(shù)據(jù)的控制權(quán)交給了第三方服務(wù)提供商,您通常必須向該第三方服務(wù)提供商授予使用和發(fā)布這些源的權(quán)利。集成視頻的另一種選擇可能是為您的CMS實(shí)施自己的解決方案。但是,這種解決方案的時(shí)間和精力以及維護(hù)費(fèi)用很高,并且大多缺乏互換性。

出于這些原因,subshell的開(kāi)發(fā)團(tuán)隊(duì)選擇了第三種方法:開(kāi)源視頻平臺(tái)Kaltura與CMS Sophora的集成。為了更好地理解兩個(gè)系統(tǒng)的連接,首先將分別介紹它們。之后,突出顯示集成的功能和技術(shù)細(xì)節(jié)。 

什么是Sophora?

Sophora是基于Apache Jackrabbit(基于JCR規(guī)范(Java的內(nèi)容存儲(chǔ)庫(kù)API)的實(shí)現(xiàn))構(gòu)建的基于Java的內(nèi)容管理系統(tǒng)。為了播放內(nèi)容,Sophora專(zhuān)注于Apache Tomcat服務(wù)器中的Java服務(wù)器頁(yè)面(JSP)。編輯用戶界面是一個(gè)稱(chēng)為“ DeskClient”的Eclipse Rich Client Platform應(yīng)用程序。有關(guān)Sophora在德國(guó)領(lǐng)先新聞網(wǎng)站之一tagesschau.de中的使用的文章,已在《德國(guó) 日?qǐng)?bào)》雜志的2.11版中發(fā)布,并在jaxenter.com上在線發(fā)布。

什么是Kaltura?

Kaltura平臺(tái)是一個(gè)開(kāi)源視頻資產(chǎn)管理系統(tǒng),Universal,Sony,Pepsi和可口可樂(lè)等著名客戶已經(jīng)在使用它。有兩種不同的版本。除了免費(fèi)的社區(qū)版, 您還可以購(gòu)買(mǎi)包括托管和支持服務(wù)的變體。此時(shí),subshell與合作伙伴公司進(jìn)行了合作;nacamar GmbH負(fù)責(zé)Kaltura系統(tǒng)的托管,包括流和轉(zhuǎn)碼。該產(chǎn)品稱(chēng)為正中酸。

Kaltura的架構(gòu)

視頻平臺(tái)的體系結(jié)構(gòu)基本上由四層組成。底層包含充當(dāng)云中軟件即服務(wù)(SaaS)的Web服務(wù)。除此之外,還有一層用于編程語(yǔ)言(例如C#,Ruby或Java)的客戶端庫(kù)。這些庫(kù)從Web服務(wù)中抽象出來(lái),從而簡(jiǎn)化了相應(yīng)的通信。下一層包括所謂的小部件,這些小部件可用于某些任務(wù),例如播放或上傳視頻。這些由Kaltura提供的小部件通常基于Adobe Flash,因此可以將它們嵌入到自定義應(yīng)用程序中。最后,頂層由第三方應(yīng)用程序的插件組成,例如Drupal,WordPress,MediaWiki和Joomla。最后一層還包含Kaltura管理控制臺(tái),它將幾乎所有小部件聚集在一個(gè)Web界面中,從而可以管理整個(gè)系統(tǒng)。在此控制臺(tái)的幫助下,您可以上傳視頻,管理現(xiàn)有視頻,更改配置,創(chuàng)建視頻集合(稱(chēng)為“混合”),分析點(diǎn)擊率等等。

想法

在這一點(diǎn)上,您可能想知道連接視頻平臺(tái)(在本例中為中值)和CMS Sophora的好處是什么。最大的優(yōu)點(diǎn)之一是,每天使用此CMS的編輯記者無(wú)需熟悉其他應(yīng)用程序,而可以在已知環(huán)境中使用新功能。新工具到用戶界面的簡(jiǎn)化集成是Sophora的核心要素,對(duì)用戶來(lái)說(shuō)特別方便。由于Sophora基于文檔,因此將不同的內(nèi)容類(lèi)型(如新聞報(bào)道,圖像庫(kù),鏈接,音頻或視頻)建模為單個(gè)文檔。通過(guò)這種方式,用戶可以通過(guò)撰寫(xiě)相應(yīng)的文檔來(lái)創(chuàng)建頁(yè)面,而不是編輯整個(gè)網(wǎng)站。因此內(nèi)置了CMS功能,

與用戶無(wú)關(guān)的配置詳細(xì)信息(例如所應(yīng)用的視頻編解碼器)可以從某些角色中隱藏。不同角色的管理還可以使編輯工作流中的職責(zé)明確分開(kāi):多媒體記者處理視頻資產(chǎn)的配置和提供,而他們的同事照常提供常規(guī)內(nèi)容。  

中位數(shù)的另一個(gè)優(yōu)點(diǎn)是對(duì)實(shí)際視頻數(shù)據(jù)的控制權(quán)掌握在您手中,因?yàn)榭梢圆皇芟拗频卦L問(wèn)視頻平臺(tái)內(nèi)的所有資產(chǎn)。您可以確定視頻的生命周期以及可以以某種質(zhì)量使用的格式。由于Kaltura實(shí)例在您的管理下,因此您無(wú)需向托管公司授予外部使用或發(fā)布權(quán)限,這與使用領(lǐng)先的視頻門(mén)戶之一時(shí)通常是一樣的。

整合

因此,集成的主要思想是允許用戶留在自己熟悉的工作臺(tái)中,即CMS本身,并像其他任何Sophora文檔一樣對(duì)待視頻,即使它們實(shí)際上存儲(chǔ)在外部Kaltura實(shí)例中也是如此。對(duì)于用戶而言,附加的應(yīng)用程序在后臺(tái)管理視頻數(shù)據(jù)并不重要。

編輯記者的新程序僅包含以下步驟。首先,通過(guò)在向?qū)е袆?chuàng)建一個(gè)新的Sophora視頻文檔(參見(jiàn)圖1)(如Eclipse所知),方法是單擊主菜單中的File→New。在此向?qū)е校脩艨梢詮腒altura服務(wù)器中選擇現(xiàn)有的視頻資產(chǎn),然后將其與Sophora中的新文檔鏈接。一旦用戶單擊列出的視頻條目之一,它將與相應(yīng)的元信息(持續(xù)時(shí)間,格式,Kaltura條目ID等)一起顯示在預(yù)覽部分中。

單擊完成按鈕后,新的Sophora文檔將自動(dòng)在編輯器中打開(kāi)(請(qǐng)參見(jiàn)圖2)。有些字段已經(jīng)填充了從Kaltura服務(wù)器獲得的數(shù)據(jù),而其他字段則為空,因此可以由用戶完成。Sophora文檔和視頻資產(chǎn)之間的連接由唯一的標(biāo)識(shí)符Kaltura條目ID保證。創(chuàng)建后,此ID在Sophora文檔中自動(dòng)設(shè)置(并且不能修改)。

現(xiàn)在,該視頻已準(zhǔn)備就緒,可以進(jìn)一步使用,并且可以通過(guò)拖放將其包含在其他Sophora文檔中。在圖3中可以看到一個(gè)示例,其中在文章的正文中插入了Sophora視頻文檔。結(jié)果將立即顯示在窗口右側(cè)的預(yù)覽中。

如果所需的視頻在Kaltura服務(wù)器上尚不可用,則用戶可以首先從本地硬盤(pán)驅(qū)動(dòng)器上載該視頻。在上傳時(shí),視頻將自動(dòng)轉(zhuǎn)換為先前配置的配置文件,即所謂的“風(fēng)味”(例如,標(biāo)準(zhǔn),移動(dòng)或高清)。另外,從視頻數(shù)據(jù)生成縮略圖像。從現(xiàn)有的Kaltura來(lái)源創(chuàng)建新的Sophora文檔時(shí),此縮略圖將從Kaltura復(fù)制到Sophora。

由于其在網(wǎng)絡(luò)上的免費(fèi)可用性,后續(xù)視頻中顯示的示例性視頻取自Blender Foundation的“ Big Buck Bunny ”電影。

實(shí)施

當(dāng)考慮將現(xiàn)有的Kaltura插件用于Drupal,Joomla或WordPress等系統(tǒng)時(shí),您將認(rèn)識(shí)到客戶端的集成基于Kaltura提供的Adobe Flash小部件。在Java / RCP應(yīng)用程序(例如Sophora DeskClient)中,建議您選擇其他方法,因?yàn)镕lash窗口小部件的使用對(duì)用戶不友好。因此,選擇取決于直接使用Kaltura平臺(tái)的Web服務(wù),可以通過(guò)Java客戶端庫(kù)進(jìn)行訪問(wèn)。

連接到Kaltura服務(wù)器的功能已封裝在一個(gè)獨(dú)特的Eclipse插件中,該插件提供創(chuàng)建新Sophora視頻文檔的向?qū)б约靶乱曨l的上傳對(duì)話框。兩者都通過(guò)擴(kuò)展點(diǎn)集成到DeskClient中。

文檔創(chuàng)建向?qū)?/strong>

在向?qū)У淖髠?cè)(參見(jiàn)圖1),顯示了所有視頻的列表,這些視頻在Kaltura服務(wù)器上可用。對(duì)于此列表的說(shuō)明,使用了JFace TableViewer,它直接從Kaltura平臺(tái)檢索要顯示的內(nèi)容。為了通過(guò)調(diào)用相應(yīng)的服務(wù)KalturaMediaService來(lái)獲取可用的視頻, 在這種情況下,必須首先建立連接。因此,需要通常的連接詳細(xì)信息,包括用戶名,密碼和服務(wù)URL。用戶必須在“首選項(xiàng)”頁(yè)面中預(yù)先提供此信息 。

與Kaltura服務(wù)器的實(shí)際連接由KalturaConnection類(lèi)實(shí)現(xiàn),該類(lèi)封裝了Java客戶端庫(kù)的KalturaClient對(duì)象。然后,基本上,將使用KalturaClient對(duì)象訪問(wèn)視頻平臺(tái)的Web服務(wù)。

該方法getAllVideos()中的 KalturaConnection對(duì)象有被調(diào)用來(lái)檢索來(lái)自服務(wù)器的可用視頻。如清單1所示, KalturaMediaService用于返回KalturaMediaType.Video類(lèi)型的條目列表。這些條目將傳遞到TableViewer,并最終顯示在向?qū)У牧斜碇小?/span>

清單1

private final KalturaClient client;   KalturaConnection(KalturaClient client) {   this.client = client; }   public List<KalturaMediaEntry> getAllVideos() throws KalturaException {   try {     /* get media service from KalturaClient */     KalturaMediaService mediaService = client.getMediaService();               /* create a filter and a pager to choose how many entries and which type to receive */     KalturaMediaEntryFilter filter = new KalturaMediaEntryFilter();     filter.mediaTypeEqual = KalturaMediaType.VIDEO;     KalturaFilterPager pager = new KalturaFilterPager();     pager.pageSize = MAX_PAGESIZE;       /* execute list action of the mediaService object to get the list of entries */     KalturaMediaListResponse listResponse = mediaService.list(filter, pager);     mediaService.list(filter);     return listResponse.objects;   } catch (KalturaApiException e) {     throw new KalturaException(e);   } }

預(yù)覽視頻播放器

“ 當(dāng)您從向?qū)е械目捎靡曨l列表中選擇一個(gè)條目時(shí),相應(yīng)的視頻將立即在位于該列表右側(cè)的預(yù)覽視頻播放器中開(kāi)始播放。該播放器是集成到DeskClient中的Kaltura小部件(Kaltura Dynamic Player)之一。由于播放器是Flash小部件,因此此處將應(yīng)用SWT瀏覽器組件。瀏覽器組件接收要顯示的本地HTML文件,該文件將Flash播放器用作 SWFObject。

播放器的控制是通過(guò)HTML中的JavaScript方法完成的,然后可以從DeskClient的Java方法中調(diào)用它。HTML文件和所需的JavaScript庫(kù)也包含在DeskClient插件中。

清單2描繪了播放器通過(guò)調(diào)用swfobject.embedSWF()將HTML文件的(縮短的)內(nèi)容嵌入到ID為kdp3的DIV 元素中 。如該代碼片段所示,F(xiàn)lash對(duì)象位于Kaltura服務(wù)器上,并且可以通過(guò)HTTP URL訪問(wèn)。該URL包含幾個(gè)參數(shù),例如 wid和uiconf_id, 它們控制播放器的配置。 

例如,您可以使用參數(shù) uiconf_id更改播放器的外觀和提供的控件。 可以調(diào)用JavaScript函數(shù)changeMedia() 來(lái)播放具有匹配的Kaltura條目ID的視頻。在此JavaScript函數(shù)中, sendNotification() 方法用于發(fā)送 changeMedia 事件。除了事件的類(lèi)型之外,還將傳遞要顯示的視頻的ID。

清單2 – player_embed.html

<html xmlns="http://www.w3.org/1999/xhtml">   <head>     <script type="text/javascript" src="jquery.js"></script>     <script type="text/javascript" src="swfobject.js"></script>     <script type="text/javascript">       function changeMedia(id) {         $('#kdp3').get(0).sendNotification('changeMedia', {entryId:id});       }     </script>     <script type="text/javascript">       [...]                swfobject.embedSWF("http://medianac.nacamar.de/index.php/kwidget/wid/_123/uiconf_id/1234567", "kdp3", ...);     </script>   </head>   <body>     <div id="kdp3" />   </body> </html>

為了最終將播放器集成到向?qū)е校褂昧薖layerWidget類(lèi)(請(qǐng)參見(jiàn)清單3)。在那里,實(shí)例化了SWT瀏覽器組件,方法 setUrl()從清單2中接收HTML文件。為了檢測(cè)所述HTML文件的路徑,使用了Eclipse類(lèi) FileLocator,并且在URL前面加上了關(guān)鍵字platform :(平臺(tái):需要關(guān)鍵字-如果冒號(hào)多余,則保留關(guān)鍵字),以便在DeskClient的工作空間中搜索此特定的HTML文件。確保通過(guò)腳本將HTML文件以及所需的JavaScript庫(kù)嵌入HTML代碼中元素通過(guò)此機(jī)制可靠地檢測(cè)到,則不得將插件以JAR存檔的形式添加到產(chǎn)品中。而是必須將其添加為解壓縮的文件夾。

通過(guò)實(shí)例化類(lèi)PlayerWidget的對(duì)象, 最初會(huì)生成一個(gè)空的視頻播放器。在調(diào)用changeMedia()方法之前,此視頻播放器不會(huì)播放任何視頻。此方法通過(guò)SWT瀏覽器對(duì)象的execute()方法將請(qǐng)求轉(zhuǎn)發(fā)到相同的命名JavaScript函數(shù),并傳遞要播放的視頻的Kaltura條目ID。向?qū)У目捎靡曨l列表中的每個(gè)單獨(dú)選擇都會(huì)通知PlayerWidget類(lèi)的changeMedia()方法,從而觸發(fā)相應(yīng)視頻的播放。

通常,將Flash對(duì)象集成到Eclipse RCP應(yīng)用程序時(shí),必須注意SWT瀏覽器組件會(huì)調(diào)用系統(tǒng)瀏覽器(Windows中的Internet Explorer)。因此,為了顯示Flash內(nèi)容,需要用于系統(tǒng)瀏覽器的相應(yīng)Flash插件。

清單3 – PlayerWidget

/* Widget which displays a Flash based video player within a Browser component. */ public class PlayerWidget {             private Browser browser;     public PlayerWidget(Composite parent) {     browser = new Browser(parent, SWT.NONE);     String urlString = StringUtils.EMPTY;     try {       URL url = new URL("platform:/plugin/com.subshell.sophora.eclipse.kaltura/etc/player_embed.html");       urlString = FileLocator.toFileURL(url).toURI().toString();     } catch(IOException e) {       // Exception Handling ... }     browser.setUrl(urlString);   }             /* Play media with passed id. An invalid ID will lead to a javascript error. */   public void changeMedia(String entryId) {     browser.execute("changeMedia('" + entryId  + "');");   } }

上傳對(duì)話框

除了用于創(chuàng)建新的Sophora視頻文檔的向?qū)е猓€有另一個(gè)對(duì)話框可將視頻文件上傳到Kaltura服務(wù)器。打開(kāi)此對(duì)話框后,可以使用與主菜單中的“新建”向?qū)嗤姆绞皆L問(wèn)該對(duì)話框,您可以提供一個(gè)名稱(chēng)并選擇一個(gè)本地文件。確認(rèn)對(duì)話框后(單擊“確定”),在后臺(tái)建立與Kaltura平臺(tái)的連接,然后傳輸文件。對(duì)于這一點(diǎn),該方法addNewMediaEntry()的的KalturaConnection 類(lèi)被調(diào)用它訪問(wèn)KalturaBaseEntryService(比較清單4)。

首先,傳輸新視頻的二進(jìn)制數(shù)據(jù),然后將條目添加到Kaltura系統(tǒng)中。借助addFromUploadedFile()方法,新條目將與之前保存的視頻數(shù)據(jù)連接起來(lái)。根據(jù)視頻的大小,上載新視頻文件和創(chuàng)建新條目可能是一項(xiàng)耗時(shí)的操作。除了傳輸二進(jìn)制數(shù)據(jù)外,上傳還會(huì)自動(dòng)觸發(fā)其他過(guò)程,這些過(guò)程會(huì)將上傳的視頻轉(zhuǎn)換為不同的格式。為避免同時(shí)阻止UI,此操作在DeskClient的后臺(tái)運(yùn)行。此后臺(tái)任務(wù)完成后,上載的視頻將在“新建”向?qū)У乃幸曨l列表中可用。

清單4 – KalturaConnection(繼續(xù))

public void addNewMediaEntry(File videoFile, String entryName) throws KalturaException {   try {     /* get base entry service from KalturaClient */     KalturaBaseEntryService baseEntryService = client.getBaseEntryService();                               /* upload new file and get a token that identifies it */     String token = baseEntryService.upload(videoFile);       /* create a new entry */     KalturaBaseEntry entry = new KalturaBaseEntry();     entry.name = entryName;     entry.type = KalturaEntryType.MEDIA_CLIP;   /* attach uploaded file to newly created entry */     baseEntryService.addFromUploadedFile(entry, token);   } catch (KalturaApiException e) {     throw new KalturaException(e);   } }

在網(wǎng)站上顯示視頻

由于Sophora中的內(nèi)容播放是通過(guò)JSP模板實(shí)現(xiàn)的,因此需要相應(yīng)的模板。該模板具有與DeskClient向?qū)е杏糜陬A(yù)覽播放器的HTML文件類(lèi)似的機(jī)制。SWFObject嵌入視頻播放器,并接收Kaltura條目ID作為參數(shù)。模板從必須播放的Sophora文檔中接收此ID。視頻的大小,高度和首選配置的其他參數(shù)允許更改視頻播放器的外觀。

結(jié)論:通過(guò)兩個(gè)系統(tǒng)的連接實(shí)現(xiàn)增值

Sophora和Kaltura這兩個(gè)系統(tǒng)的交互在各個(gè)方面都提供了明顯的好處。如前所述,該連接有助于用戶輕松地將視頻集成到網(wǎng)站中,而無(wú)需離開(kāi)二手CMS熟悉的環(huán)境。在后臺(tái),系統(tǒng)受益于視頻平臺(tái)的寶貴功能,例如流媒體,視頻播放器小部件或自動(dòng)格式轉(zhuǎn)換。

該解決方案為將來(lái)的擴(kuò)展提供了許多選擇??赡艿淖凅w可能是CMS中的在線視頻平臺(tái)設(shè)計(jì)或通過(guò)網(wǎng)站將視頻作為用戶生成的內(nèi)容上傳。

從技術(shù)角度來(lái)看,Kaltura平臺(tái)與Sophora CMS的連接一直在進(jìn)行,沒(méi)有任何嚴(yán)重障礙。Java庫(kù)提供了對(duì)平臺(tái)功能的輕松訪問(wèn)。