2014-02-23 80 views
0

我有我的電腦,這與該碼流MP3的ffmpeg的設置:ffmpeg的和Python的使用

ffmpeg -f dshow -i audio="Input device" -c:a libmp3lame -f mpegts udp://192.168.1.2:7777 

而且我有一個服務器,我想我的Python腳本,服務器和啓動全天候運行/每次打開/關閉PC時,停止將文件流寫入mp3文件。每次打開電腦時都需要新文件(例如,使用時間和日期來表示文件名)以繞過覆蓋。使用Python的子模塊和ffmpeg的,我可以在我的服務器上保存的文件是這樣的:

subprocess.call('ffmpeg -y -i udp://192.168.1.2:7777 -acodec copy output.mp3') 

但我需要的條件,當開始錄製(聽,如果7777端口reciving數據或類似的東西),它甚至有可能使用python來實現這樣的事情? P.S.對不起,我的英語不好。

回答

0

你將要遇到的基本問題是UDP是無連接協議。換句話說,很難確定何時「連接」不再存在(發送數據的程序已經消失)。

如果您切換到TCP,您應該能夠編寫一個Python腳本,該腳本在循環中運行您的subprocess.call(),每次都會給它一個新的文件名。每當PC關閉並且TCP連接關閉時,運行在服務器上的ffmpeg應該(您需要測試它以確保)退出,並且循環將以新的輸出文件名啓動一個新的。