Рейтинг:0

Запаздывание звука Icecast

флаг bd

У меня проблема с качеством при попытке потоковой передачи на локальный сервер 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 качество почти отличное.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.