我正在從 iheartradio 上的流中創建一個 wav 檔案。我能夠獲取流 url,但是一旦我將資料寫入 wav 檔案,我就無法在我嘗試過的任何媒體播放器上播放它。我沒有太多使用 wav 檔案的經驗,因此將不勝感激。到目前為止,這是我從查看類似帖子中得到的:
import requests
stream_url = "http://stream.revma.ihrhls.com/zc2525"
r = requests.get(stream_url, stream=True)
with open('stream.wav', 'wb') as f:
try:
for block in r.iter_content(1024):
f.write(block)
print(block)
except KeyboardInterrupt:
f.close()
uj5u.com熱心網友回復:
我已經測驗了你的代碼,它似乎作業正常。我一點問題都沒有。問題一定是您的音頻播放器。您是否使用已知有效的 wav 檔案對其進行了測驗?
uj5u.com熱心網友回復:
您假設回應包含 WAV 標頭,后跟 PCM(脈沖編碼調制)樣本。事實并非如此。如果您列印回應標頭,您會看到回應包含 AAC(高級音頻編碼)音頻資料,這是一種有損壓縮音頻格式 - 與無損 WAV 完全不同。AAC 是互聯網廣播流的標準。
話雖如此,您的代碼對我來說很好,并且生成的“.wav”檔案確實可以在我的 Windows 10 Windows Media Player / VLC 中播放。但是,僅僅因為您為檔案提供了“.wav”擴展名,并不意味著它實際上是一個 WAV 檔案。可能只是您的媒體播放器比我的更迂腐,并且拒絕播放檔案標題和文??件擴展名之間存在差異的檔案。我的媒體播放器似乎忽略了擴展名,并嘗試通過檢查檔案頭來確定格式 - 您甚至可以將其重命名為stream.mp3or stream.foobar,它會播放相同的內容。同樣,檔案擴展名并不重要,重要的是您寫入檔案的實際資料(標題和樣本)。不要假設一切都是 WAV 檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/406001.html
標籤:
