У меня проблема с качеством при попытке потоковой передачи на локальный сервер icecast из моего приложения.
Вот мп3 запись непосредственно перед отправкой на сервер icecast
и вот записанный мп3 из медиаплеера vlc.
Как вы можете слышать, звук дрожит между фрагментами.
Что может вызвать эту проблему?
Период чанка, который я выбрал, составляет 744 мс.
Частота дискретизации 44,1 кГц.
Я использую модуль 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>
и модули python для микширования звука mp3 пиаудио и pydub.
Редактировать: Битрейт, с которым я подключаю приложение к серверу icecast, составляет 128 Кбит/с, но я не думаю, что закодированные mp3-данные имеют скорость 128 Кбит/с. В любом случае запись перед трансляцией звучит хорошо, так в чем может быть проблема с качеством?
Редактировать: Если я попытаюсь просто ретранслировать радиостанцию, то проблем не будет:
с request.get("https://impradio.bytemasters.gr/8002/LIVE", stream=True) как peradio:
для чанка в peradio.iter_content(chunk_size=4096):
для подключения в self.connections:
если соединение["статус"]=="подключено":
соединение["соединение"].отправить(фрагмент)
соединение["соединение"].sync()
поэтому я думаю, что ошибки icecast нет, но что-то не так с моим приложением.
Любая помощь приветствуется.
Редактировать: В формате ogg качество почти отличное.