2010-01-08 42 views
4

我想端口礦井的ActiveX(Silverlight的),其具有以下特點:如何使用Silverlight執行視頻編輯?

  • 在任何視頻文件中嵌入一個標誌形象。
  • 在任何視頻文件中嵌入字幕。
  • 裁剪任何視頻文件(例如:裁剪1分鐘視頻中的10秒)。
  • 保存視頻文件結果(由客戶端的當前編碼器)。

當前的ActiveX使用DirectShow - 不幸的是,它不能在Silverlight中使用。我如何放棄新的Silverlight技術的舊ActiveX技術?

回答

2

簡單的答案是:你不能。

Silverlight是針對兩種主要類型的應用程序: -

  • 內容呈現,是視頻,音頻和圖像,所有創造有趣和引人入勝的方式與這類內容交互的視圖。
  • 最近的業務線應用程序,即數據輸入和數據顯示。再次,爲了使這至少比以前的技術做出這些類型的應用程序更直觀的刺激。

視頻編輯並沒有真正落入這兩個陣營,也沒有照顧到。

我不確定它是否真的說ActiveX是舊的,畢竟用什麼技術在Internet Explorer中託管Silverlight插件?的ActiveX。

+0

我認爲視頻編輯是可能的,因爲以下視頻的創建:http://www.youtube.com/watch?v=My3E58s_Bik – 2010-01-09 02:10:43

+0

@Eran:最後20秒是非常暴露。沒有生成實際的新視頻,也沒有修改任何現有的媒體。它真的在創建一個XML文件來定義現有媒體文件依次播放每個視頻中的一些開始和結束時間偏移量。結果是切片和拼接單個視頻的外觀,但實際上回放需要所有發起媒體的全部內容。在我的書中,這不是視頻編輯。 – AnthonyWJones 2010-01-09 14:29:20

1

我不知道這是否很容易實現。 Silverlight本身可用的各種編解碼器都由Silverlight MediaElement控件包裝,據我所知,它們不是通過API直接公開的,例如,您無法獲取原始解碼的RGBA比特流。 (如果我錯了,我很想知道,但是我已經探索過了,我不知道該怎麼做。)Mono源代碼樹僅有一個解碼執行代碼,該代碼執行代碼爲Dirac ,但據我所知,沒有任何東西可以輕易讓你解碼,例如WMV或AVI文件。即使你能以某種方式獲取原始的解碼後的RGBA(或YCbCr)比特流,以便能夠將所需的任何數據插入這些幀中,仍然必須將視頻流重新編碼爲好吧,Silverlight不提供任何本地支持。你必須編寫自己的編碼器(根本不重要),將它們從ffmpeg庫中移出(也不是微不足道的),或者等待別人去做。

總之,我懷疑你現在需要堅持使用你的ActiveX解決方案 - 儘管有一些聰明的JavaScript編碼,有可能將它包裝在一個漂亮的Silverlight UI中。