2011-08-23 89 views
4

我在這個問題上有一年多的時間。我想你們可能會有答案。使用Python管理多平臺視頻流的最佳方式是什麼?

在某些Python GUI應用程序中,我需要顯示一個視頻流。 我需要記錄此流的某些部分以便稍後重讀。

而且,我需要這條巨蟒多應用平臺(OSX,GNU,Windows)中

我可以有很多的解決方案:

  • 將相機連接到流和讀取與流python應用程序。 (RTP + VLC可以訣竅)
  • 使用聲子讀取相機
  • 創建一個抽象類來定義不同讀取器,並在OS的函數中使用Quicktime,Win32或GStreamer。

你有什麼經驗,你會用什麼來做到這一點?

+0

看看http://pymedia.org/ –

回答

2

我也定期研究過這個問題,看起來底層任務的複雜性太高了,無法爲您的主題問題提供一個簡單的快捷方式抽象庫。不過,我會建議使用pyopencv來完成特定的任務。它有一個網絡攝像頭輸入/捕獲類,它跨平臺工作,並有一個合理的用戶基礎,在Python中,張貼示例。最新的是2.3.1,並且是最近的。你可以得到它的Windows版本,爲您編制,在令人難以置信的有用的網站(不是我的,只是說):

http://www.lfd.uci.edu/~gohlke/pythonlibs/

既然你問了一些庫的經驗,我會說: gstreamer在linux上爲我工作,但是在windows上設置非常痛苦,並且不適合我。這是相當一段時間以前,也許現在它運轉得更好。 vlc.py是一個簡單的庫,用於測試vlc是否適合您。它目前在64位Windows平臺上不起作用;不知道爲什麼,但似乎很多人報告了類似的錯誤,所以它取決於您需要多少跨平臺支持。

+1

好的我接縫,使用OpenCV是一個很好的決定,即使在第二次流操作。 http://linuxconfig.org/introduction-to-computer-vision-with-opencv-on-linux – Natim

+0

偉大的鏈接,感謝分享它 – Profane

0

不幸的是,這並不容易。我編寫了大部分的程序,可以在3個主要桌面操作系統上進行視頻錄製/回放。除了HTML嵌入之外,以「開箱即用」方式進行視頻回放/錄製的狀態對於跨平臺仍然沒有解決。這有很多事情要做的事實是:

  • 編解碼器是專有
  • 操作系統的不支持常見的編解碼器
  • ffmpeg的和類似的項目都需要您的許可釋放你的源代碼,如果包括它們以某種方式
  • 許多存在的視頻播放播放器都是手動重寫以處理每一幀,緩衝,流式傳輸,音頻同步等。

所以,你可以用HTML去,或者您也可以通過跨平臺的問題有以下編碼libaries苦:

  • Python中的mplayer
  • Python的VLC
  • Python的OpenCV的
  • Python pyaudio
  • Python pyside/pyqt phonon或qtmultimedia

一旦你得到它的工作一個開發機器上,期望它打破當它涉及到安裝在最終用戶的機器上(通過分發:pyinstaller/appdmg /公寓/巧克力味/ Inno Setup的)

在OSX, brew仍然有很多問題,但macports運行得更好(我仍然不得不做很多修補)

Linux是迄今爲止最簡單的。

Windows處於兩者之間的,以儘可能難度

我很渴望聽到的iOS /安卓/ Windows的RT /點燃如何

的問題是不是唯一的,因爲即使是Netflix公司還沒有一個跨平臺的視頻應用程序:https://www.quora.com/Is-Netflix-building-an-app-for-the-Mac-App-Store?share=1

相關問題