有一點背景,我被賦予修復一些「小」錯誤並維護這個解決方案以在我們的應用的兩個實例之間通過網絡流式傳輸視頻的任務。這個解決方案是由不再在這裏的人編寫的,所以代碼中有一些神祕的地方,以及一些非常有趣的陷阱。該解決方案使用ffmpeg編寫,其中編寫的C++代碼用於封裝與編碼/解碼相關的代碼以及一些流式代碼。然後用SWIG包裝這個C++,以便它可以與C#互操作,並將視頻幀傳遞到使用位於WPF控件中的VideoRendererElement呈現的位置。幀傳遞的主要原因是因爲我們有一些我們需要發送視頻數據的自定義協議,並且這些協議是使用C#編寫的,因此在傳輸視頻幀時,我們將它們包裝在我們自己的數據包中,並通過線路發送出去。這個解決方案的工作原理和我們可以使用我們的自定義協議流式傳輸視頻,儘管這是一個噩夢來維護和使用。如何使用C#編碼/解碼視頻?
我的問題是否有更好的方法來解決這個問題?我正在尋找方法,使用視頻數據(使用C#)在較低級別上工作,以便我可以將視頻幀封裝到我們自己的數據包中,並將它們發送出去,並能夠接收並重建視頻另一邊。 ffmpeg似乎是常見的解決方案,但我遇到了很多與它有關的問題以及我認爲是問題的GPL/LGPL問題。
我期望實現的基本流程, 視頻文件 - >編碼 - >封裝在數據包中 - >在協議X上通過導線發送 - >從數據包獲取視頻數據 - >解碼 - >渲染/保存到磁盤
LGPL爲什麼是你的問題?即使您的應用程序適用於商業客戶,也不應該成爲問題。 – 2009-12-02 18:39:35
可能重複:http://gackoverflow.com/questions/271003/anyone-know-of-a-set-of-c-bindings-for-ffmpeg – 2009-12-02 18:52:17
GPL/LGPL的東西是由另一個同事提出的,但他們聽起來好像我們正在使用ffmpeg及其依賴庫的方式打破許可證。至於重複的帖子,我試圖擺脫ffmpeg如果可能的話,尖銳的ffmpeg似乎並不像它的工作或它已被支持了。 – 2009-12-02 19:01:41