ฉันมีปัญหาด้านคุณภาพในการพยายามสตรีมในเซิร์ฟเวอร์ icecast จากแอปพลิเคชันของฉัน
นี่คือ mp3 บันทึกก่อนส่งไปยังเซิร์ฟเวอร์ icecast
และ นี่คือ mp3 ที่บันทึกไว้ จากเครื่องเล่นสื่อ vlc
ดังที่คุณได้ยิน มีเสียงสั่นระหว่างชิ้น
สิ่งที่อาจทำให้เกิดปัญหานี้?
ช่วงเวลาที่ฉันเลือกคือ 744 มิลลิวินาที
ความถี่ในการสุ่มตัวอย่างคือ 44.1KHz
ฉันใช้โมดูล python-shout เพื่อส่งข้อมูลเสียงไปยังเซิร์ฟเวอร์ icecasts
ไฟล์กำหนดค่า icecast คือ:
<icecast>
<hostname>localhost</hostname>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>8</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>0</burst-on-connect>
<burst-size>65536</burst-size>
</limits>
<authentication>
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
</http-headers>
<mount type="normal">
<mount-name>/test.mp3</mount-name>
<username>username1</username>
<password>password1</password>
<max-listeners>100</max-listeners>
<dump-file>/tmp/dump-example1.mp3</dump-file>
<burst-size>25536</burst-size>
<fallback-mount>/test2.mp3</fallback-mount>
<fallback-override>0</fallback-override>
<fallback-when-full>0</fallback-when-full>
<!--<intro>111.mp3</intro>-->
<hidden>0</hidden>
<public>1</public>
<http-headers>
<header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
<header name="baz" value="quux" />
</http-headers>
</mount>
<fileserve>1</fileserve>
<paths>
<logdir>./log</logdir>
<webroot>./web</webroot>
<adminroot>./admin</adminroot>
<alias source="/" destination="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
<!-- <logarchive>1</logarchive> -->
</logging>
</icecast>
และโมดูลหลามเพื่อผสมเสียง mp3 เสียง และ พีดับบ์.
แก้ไข: อัตราบิตที่ฉันเชื่อมต่อแอปพลิเคชันกับเซิร์ฟเวอร์ icecast คือ 128Kbps แต่ฉันไม่คิดว่าข้อมูล mp3 ที่เข้ารหัสคือ 128Kbps อย่างไรก็ตาม การบันทึกก่อนการส่งสัญญาณให้เสียงที่ดี ดังนั้นสิ่งที่อาจทำให้เกิดปัญหาด้านคุณภาพ?
แก้ไข: ถ้าฉันพยายามส่งสถานีวิทยุอีกครั้ง ก็ไม่มีปัญหา:
ด้วย request.get("https://impradio.bytemasters.gr/8002/LIVE", stream=True) เป็น peradio:
สำหรับก้อนใน peradio.iter_content(chunk_size=4096):
สำหรับการเชื่อมต่อใน self.connections:
ถ้าการเชื่อมต่อ["สถานะ"]=="เชื่อมต่อ":
การเชื่อมต่อ ["การเชื่อมต่อ"] .send (chunk)
การเชื่อมต่อ ["การเชื่อมต่อ"].sync()
ดังนั้นฉันคิดว่าไม่มีข้อผิดพลาดของ icecast แต่มีบางอย่างผิดปกติกับแอปพลิเคชันของฉัน
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก
แก้ไข: ในรูปแบบ ogg คุณภาพเกือบจะยอดเยี่ยม