2012-08-27 158 views
0

我正在嘗試創建一個通過UDP連接傳輸音樂(MP3文件)的程序。到目前爲止,我已經創建了一個程序來發送整個MP3文件並將其寫入客戶機器上的文件。然後客戶端用pygame.mixer播放文件。通過UDP流式傳輸音樂Python

這顯然不是流式傳輸。我不能爲了我的生活而想出如何將音樂流式傳輸到客戶端。

如果有人能指出我的方向會很棒。

+0

我只是好奇而已,我覺得它可能是一個有趣的項目。 – Max00355

+0

請閱讀:http://www.jejik.com/articles/2007/01/streaming_audio_over_tcp_with_python-gstreamer/ –

+0

您可以將MP3文件分解爲各個幀,編號併發送。如果一幀丟失,也許你可以認爲它是全零或什麼。 –

回答

0

使用udp進行直播就意味着像rtsp流媒體一樣。看看live555,如果你想要做一些。在它裏面有一個服務器[live555mediaServer或者類似的名字],你可以用它來做rtsp streaming。

Gstreamer還可以讓你使用純粹的rtp來做基本的流。像下面的管道可以讓你做到這一點。

gst-launch filesrc location=<yourfile> ! mp3parse ! rtpmpapay <someoptions> ! udpsink port=<someport> 

,你可以接受她,並消除抖動,然後depay它,然後解碼和播放

gst-launch udpsrc port<the-some-port in the sender> ! gstrtpjitterbuffer ! rtpmpapay ! decodebin2 ! queue ! autoaudiosink 

或者你可以使用ffserver的做流媒體。有一點谷歌搜索rtp/rtsp會幫助你理解這些東西。有很多服務器可用來發送數據。 [達爾文,Live555]

還有其他形式的流[rtmp將需要flv文件]和流暢的流和HLS。 RTSP是真正的直播流協議。

相關問題