Am o problemă de calitate încercând să transmit în flux în serverul local de icecast din aplicația mea.
Aici este mp3-ul înregistrare chiar înainte de trimitere la serverul icecast
și aici este mp3-ul inregistrat de la vlc media player.
După cum puteți auzi, se aude un sunet tremurând între bucăți.
Ce poate cauza această problemă?
Perioada pe care am ales-o este de 744 msec
Frecvența de eșantionare este de 44,1 KHz
Folosesc modulul python-shout pentru a trimite date audio către serverele icecasts.
Fișierul de configurare icecast este:
<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>
iar modulele python pentru a mixx sunetul mp3 sunt pyaudio și pydub.
Editați | ×: Rata de biți cu care conectez aplicația la serverul icecast este de 128Kbps, dar nu cred că datele mp3 codificate sunt de 128Kbps. Oricum, înregistrarea înainte de transmisii sună bine, deci ce poate cauza problema de calitate?
Editați | ×: Dacă încerc să retransmit doar un post de radio, atunci nu există nicio problemă:
cu requests.get("https://impradio.bytemasters.gr/8002/LIVE", stream=True) ca peradio:
pentru bucată în peradio.iter_content(chunk_size=4096):
pentru conectare în sine.conexiuni:
if connection["status"]=="conectat":
conexiune[„conexiune”].send(bucătură)
connection["conexiune"].sync()
deci cred că nu există nicio eroare de icecast, dar ceva nu merge bine cu aplicația mea.
Orice ajutor ar fi foarte apreciat.
Editați | ×: În format ogg calitatea este aproape excelentă.