2012-02-07 120 views
0

我試圖從python中訪問視頻數據(例如,幀,視頻長度)。 產生類似mplayer的東西不是一個選項,因爲一個奇怪的bug顯然存在於mod_wsgipython之間。在Python中訪問視頻數據時不會產生子進程

pyffmpegffvideo不再編譯,並且與最新的ffmpeg版本不同步。 我想要一個簡單的庫,如果有人知道它。

+0

你能詳細說明你所看到的錯誤嗎?我在'mod_wsgi'上有多個web應用程序,並且始終運行'subprocess.Popen',沒有任何問題。 – Simon 2012-02-07 15:37:50

+1

除此之外,您可以編寫一個簡單的守護程序,與您的WSGI請求處理程序進行通信,例如通過'BaseHTTPServer'模塊? – Simon 2012-02-07 15:40:38

+0

西蒙,截至目前我已經完成了你提到的事情,但它不是一個非常漂亮的解決方案 – Darioush 2012-02-09 09:01:05

回答

1

被引用的錯誤必須是Python 2.7.2中的錯誤。簡而言之,他們打破了從一名副翻譯員內部進行分岔的能力。請參閱:

http://bugs.python.org/issue13156

解決方法在mod_wsgi的是強迫你的WSGI應用在主Python解釋器運行。這是用做:

WSGIApplicationGroup %{GLOBAL} 

如果你正在主持與嵌入模式多WSGI應用程序,並做到這一點比一個更需要的話,你就需要開始使用守護進程模式,而不是和委託各WSGI應用到獨立的守護進程所有人都被迫在他們各自的守護進程組的主要解釋器中運行。

那麼,你不是簡單地使用這個工作來解決Python 2.7.2中的bug?

+0

我不知道這是一個可能的解決方案,適用於多個WSGI應用程序。因此,你說如果爲每個應用程序指定了一個'WSGIProcessGroup',它會起作用嗎? – Darioush 2012-02-09 09:04:03

+0

假設您開始使用守護進程模式並將每個WSGI應用程序委派給一組單獨的進程。這是最安全的做法,因爲一些WSGI應用程序可能不喜歡與其他解釋器一起運行。例如,在Django中,您不能在一個解釋器中運行兩個不同的Django項目。 – 2012-02-09 21:21:28