f = os.popen("gst-launch -q whateversrc ! ... ! fdsink")
f.read(1024);
在GNU/Linux上工作得很好,但是導致了\ x0d \ x0a而不是每個Windows \ x0a。怎麼修?如何從Windows上的Gstreamer子進程讀取二進制數據?
我也試過在控制檯中只有gst-launch -q ..... ! matroskamux streamable=true ! fdsink > qqq3.mkv
而qqq3.mkv也是亂碼。 gst-launch -q filesrc location=file ! fdsink > file2
也轉換爲CRLF。
怎麼辦? Gstreamer爲Windows生成沒有tcp {服務器,客戶端}接收器...
可能有辦法在Windows(或給定應用程序)中全局關閉LF-> CRLF轉換?
你應該考慮使用[subprocess module](http://docs.python.org/library/subprocess.html#module-subprocess)而不是'os.popen'。另外,你使用的是什麼版本的Python? – srgerg 2012-04-19 00:01:46
Cygwin中的「Python 2.6.5」 – 2012-04-19 00:20:28
您是否嘗試過在'os.popen'調用中指定模式?例如,你可以嘗試'os.popen(「gst-launch ...」,「r」)或者os.popen(「gst-launch ...」,「rb」)'。前者應該是默認行爲,而後者則明確指定讀取二進制數據。 – srgerg 2012-04-19 01:04:30