Тема: Скачки при прослушивании музыки по сети.  (Прочитано 8384 раз)

03 Декабрь 2011, 12:56:37 am
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Есть такая проблема. Если просто слушать один файл по сети, то вроде как всё нормально. Но если на тот же диск по сети писать с совсем небольшим потоком файл (торрент), то начинаются заедания вплоть до 2-3 секунд. И это при прослушивании mp3 160 кбит/с который теоретически можно целиком весь в буфер закачать.
Допускаю что это проблема именно звукового модуля, а не самого плеера.

Кстати, такая же проблема была и в aimp. По сети работал еще хуже. Он даже не мог ровно проигрывать один файл flac. И почему-то изменения настроек не особо помогали.

03 Декабрь 2011, 08:04:04 am
Ответ #1
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #1 : 03 Декабрь 2011, 08:04:04 am »
И это при прослушивании mp3 160 кбит/с
Он даже не мог ровно проигрывать один файл flac.
Так скачки только на файлах с низким битрейтом или на всех?

С другими плеерами нормально?

03 Декабрь 2011, 08:59:34 am
Ответ #2
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #2 : 03 Декабрь 2011, 08:59:34 am »
Честно говоря не проводил этих исследований. Другие плееры тоже так подробно не тестировал (знаю, что в aimp та же проблема была если не исправили, а вот в winamp-е вроде не было). Могу протестировать когда будет время, так как нужно создать определенные условия.
Дело в том что заедания нерегулярные. Ну то есть за 5 минут может заесть скажем 1-2 раза в середине, но по 2-3 секунды.
Предполагаю что на больших битрейтах ситуация будет еще хуже. Если сеть и винчестер второго компьютера не нагружать, то скачков не бывает.

А какие сейчас стоят параметры буфера?

03 Декабрь 2011, 09:43:15 am
Ответ #3
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #3 : 03 Декабрь 2011, 09:43:15 am »
А какие сейчас стоят параметры буфера?
1 секунда. Дело в том что я не уверен решится ли эта проблема увеличением размера буфера, именно поэтому нужно более подробное тестирование чтобы выяснить зависимость этих рывков. То есть что будет если не торрент будет качаться, а просто будет копироваться большой файл, у меня пока подозрение на то что это именно торрент полностью забивает весь канал и другим приложениям ничего не остается.

Также в данном случае возможно лучшим решением будет изменить приоритеты трафика в настройках роутера, если это возможно, торрент вообще сильно забивает сеть.

03 Декабрь 2011, 11:04:24 am
Ответ #4
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #4 : 03 Декабрь 2011, 11:04:24 am »
Одна секунда для условно среднего мп3 файла это ну допустим 30 кб. Что на мой взгляд при текущей технике вообще капля информации. Не знаю по какому алгоритму работает декодер в плане буфера. Но думаю 200-1000 кб вообще не проблема подгрузить сразу. А это было бы 7-33 секунд мп3. При которых как бы не был забит канал думаю можно уложиться с запасом.
Если даже при одной секунде декодер почти справляется в данном случае.

03 Декабрь 2011, 04:23:02 pm
Ответ #5
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #5 : 03 Декабрь 2011, 04:23:02 pm »
Плеер работает с сетевыми дисками как с обычными и не загружает данных прозапас. В других плеерах также.

03 Декабрь 2011, 06:01:48 pm
Ответ #6
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #6 : 03 Декабрь 2011, 06:01:48 pm »
Так а разве хоть какой-то размер буфера - это уже не есть загрузить данные "про запас" пускай даже на 1 секунду.
И почему другие плееры так не делают. Обратно же исследований я не проводил, но как-то давно пользовался каким-то плеером, боюсь соврать, может winamp, а может нет. Там видимо можно было задавать размер буфера. В общем он был такой что секунд на 20-30. Места раньше было мало. И немало музыки было на сд. В общем можно было включить музыку, достать компакт диск, с которого играет, покрутить в руках, поставить назад, подождать пока определиться, музыка дальше подхватывалась.

03 Декабрь 2011, 08:19:53 pm
Ответ #7
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #7 : 03 Декабрь 2011, 08:19:53 pm »
Грубо говоря, 1 секунда это буфер аудио устройства, при чтении с диска данные передаются сразу в устройство, то есть плеер не читает с диска данные наперед. Но вот к примеру при воспроизведении радиостанции есть еще 1 промежуточный буфер равный 5 секундам, в которые данные сначала закачиваются, а после этого уже из этого промежуточного буфера передаются в буфер устройства. С CD который играет 30 секунд, скорее всего такая же ситуация. При чтении с диска нет промежуточного буфера т.к. задержки там минимальны.

04 Декабрь 2011, 03:10:07 am
Ответ #8
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #8 : 04 Декабрь 2011, 03:10:07 am »
То есть существует теоретически два вида буфера для файла и для аудиоустроства. Так?
А какой 2 словах примерно алгоритм проигрывания файла мп3 именно в этом плеере?
Ну вот скажем запустили файл. Сколько байт и куда загружаются, где декодируются, куда потом помещаются, при каком условии идет загрузка следующей порции?

Я так понимаю получить нужный результат можно и за счет увеличения уже конечного буфера?

04 Декабрь 2011, 10:33:34 am
Ответ #9
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #9 : 04 Декабрь 2011, 10:33:34 am »
То есть существует теоретически два вида буфера для файла и для аудиоустроства. Так?
Да. Про тонкости я точно не скажу, за это отвечает BASS (аудиодвижок). Вкратце стандартный принцип, получили данные из файла, расшифровали, загрузили их в буфер устройства, пошло проигрывание этих данных, буфер опустел, пока играет первая секунда загрузили в буфер следующую секунду данных и т.д.

Я так понимаю получить нужный результат можно и за счет увеличения уже конечного буфера?
Да, только так. Кстати в винампе по умолчанию буфер равен 2 секундам, возможно именно это сгладило проблему.

04 Декабрь 2011, 10:55:59 am
Ответ #10
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #10 : 04 Декабрь 2011, 10:55:59 am »
пока играет первая секунда загрузили в буфер следующую секунду данных и т.д.

Ну вот момент когда начинают новые данные попадать в буфер не совсем ясен. Если когда буфер уже опустел прошла секунда, то запаса уже нет. По идее буфер всегда должен быть полон.

Кстати в винампе по умолчанию буфер равен 2 секундам, возможно именно это сгладило проблему.

Я пользовался версией 2. Там в плагине directsound можно задавать вплоть до 20 секунд. Помню точно, что увеличивал.
Сейчас вот запустил, посмотрел. Там есть интересная вещь статистика. Так вот если буфер 2 секунды. То запаздывание меняется скачками и в среднем 50 миллисекунд. И колеблется от 20-30 до 100-110 мс.
Только что родилась идея. Нагрузить сеть, винты, запустить винамп, с его статистикой и большим буфером и сразу будет видно какое отставание в секундах. Позже проверю.

Может добавить такую настройку (секунды) в плеер?

04 Декабрь 2011, 11:00:34 am
Ответ #11
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #11 : 04 Декабрь 2011, 11:00:34 am »
К предыдущему сообщению. То есть для буфера 2 секунды, он всегда полон на 1900-1980 миллисекунд.

P.S. Неудобно что нет редактирования своих сообщений )

04 Декабрь 2011, 11:53:51 am
Ответ #12
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #12 : 04 Декабрь 2011, 11:53:51 am »
Ну вот момент когда начинают новые данные попадать в буфер не совсем ясен. Если когда буфер уже опустел прошла секунда, то запаса уже нет. По идее буфер всегда должен быть полон.
Не совсем понял, запас есть, сам буфер это и есть запас.
Я кстати не совсем верно описал принцип, давно уже с этим разбирался. Вкратце в буфере всегда есть данные достаточные на 1 секунду (размер буфера) проигрывания.

Только что родилась идея. Нагрузить сеть, винты, запустить винамп, с его статистикой и большим буфером и сразу будет видно какое отставание в секундах. Позже проверю.
Тут зависит от такого насколько долго будет сохраняться сильная загрузка сети, если больше тех же 20 секунд, то буфер это уже никак не компенсирует и начнутся заикания. На сети с Wi-Fi довольно просто такую ситуацию создать.

Может добавить такую настройку (секунды) в плеер?
Возможно будет добавлена либо такой настройкой, либо просто галочкой для увеличения буфера секунд до 5.

07 Декабрь 2011, 02:39:04 pm
Ответ #13
  • Full Member
  • ***
  • Сообщений: 133
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #13 : 07 Декабрь 2011, 02:39:04 pm »
Ну вот кстати были заедания и не при работе в сети. Раза два, по 3-4 секунды.
Правда программа графическая одна работала с винчестером.
Может там что-то еще с приоритетами?

07 Декабрь 2011, 03:15:23 pm
Ответ #14
  • Administrator
  • Sr. Member
  • *****
  • Сообщений: 484
    • Просмотр профиля
Re: Скачки при прослушивании музыки по сети.
« Ответ #14 : 07 Декабрь 2011, 03:15:23 pm »
Хм, то есть заедания были при прослушивания музыки напрямую с винчестера компьютера на котором Winyl установлен? Тогда возможно проблема совсем не в этом, скорости чтения с винчестера точно хватит, как бы он ни был нагружен.
Какая у вас звуковая карта? При работе других приложений, которые звук выводят, никогда никаких заеданий, щелчков не было?