Вопрос

Задержка в 1–2 секунды между видео с телефона и аудио в автомобиле, подключённом к телефону через Bluetooth

Когда я вожу своих детей, они часто смотрят мультфильмы на моём телефоне Android, а звук из мультфильма идёт через автомобильные динамики, подключённые к аудиосистеме автомобиля через Bluetooth. К сожалению, между видео (которое отображается на экране телефона) и звуком есть заметная задержка в 1–2 секунды. Такой задержки нет, когда звук идёт напрямую из динамика телефона. Также нет заметной задержки, когда телефон подключён к той же машине для совершения телефонных звонков. Однако при воспроизведении видео с YouTube на экране телефона и звука из динамиков автомобиля возникает раздражающая задержка в 1–2 секунды.



Отсюда возникает вопрос: что может быть причиной этого и как мне перенастроить всё, что нужно настроить, чтобы это исправить?



Если вам важна конкретика, то телефон — Samsung Galaxy S5, а автомобиль — Honda Odyssey 2013 года выпуска со встроенной аудиосистемой.



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/41751/1-2-sec-delay-between-phone-video-and-car-audio-connected-to-phone-via-bluetooth

22 Комментария

  1. Это известная проблема автомобилей Honda. В автомобилях других марок синхронизация по Bluetooth работает намного лучше. Проблема не в телефоне, а в Honda.


  1. Не хочу поднимать мёртвую тему, но это известная проблема с Bluetooth-аудиосистемой Honda.



    В процессе установления соединения по Bluetooth есть ошибка, которая приводит к передаче только данных. Доказательство.



    Это означает, что телефон кодирует звук в данные, а затем автомобиль декодирует эти данные обратно в звук. В результате возникает задержка при кодировании и декодировании. Компания Honda знает об этой проблеме, но по состоянию на 2018 год ещё не выпустила обновление прошивки для автомобилей с этой проблемой. Я не знаю, встречается ли эта ошибка в автомобилях Honda 2018 года выпуска.


  1. Насколько мне известно, так работает Bluetooth. На протяжении всех этих лет при использовании Bluetooth всегда возникала задержка звука.



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



    Думаю, вам стоит найти видеоплеер, в котором можно вручную синхронизировать видео и аудио.



    Возможно, VLC на Android справится с этой задачей:
    https://play.google.com/store/apps/details?id=org.videolan.vlc


  1. Это проблема с программным/аппаратным ограничением. Вы можете попробовать использовать более качественное приложение для потоковой передачи на своём телефоне, если ваша стереосистема поддерживает другие приложения. Проблема в том, что потоковая передача аудио через Bluetooth требует больших усилий.



    Телефонный процесс



    Получать аудио в steam -> конвертировать в кодек для плеера -> отправить через blue tooth



    стереопроцесс



    приём сигнала Bluetooth —> преобразование кодека в аудиопоток —> воспроизведение аудио



    Таким образом, для воспроизведения звука необходимо выполнить эти 6 шагов. Преобразование аудио — относительно медленный процесс, который ещё больше замедляется из-за дешёвых/бесплатных кодеков.



    и, скорее всего, проблема в вашем телефоне, как вы и сказали, с YouTube что-то не так, так что это может быть связано с загрузкой видео, а затем с декодированием видеокодека для отображения и обработкой звука для Bluetooth. Возможно, процессор телефона не справляется с такой нагрузкой одновременно


  1. Хотя у меня нет причин сомневаться в ваших словах, можете ли вы привести примеры, чтобы показать, о чём вы говорите?
  1. У меня Odyssey 2007 года выпуска, и я разработчик программного обеспечения с пятилетним опытом работы с Bluetooth. Задержка в 1–2 секунды — это ненормально. Для Bluetooth следует ожидать задержку в диапазоне от 100 до 200 миллисекунд. Однако устройства, поддерживающие A2DP 1.3, могут компенсировать эту задержку буферизации. Чтобы это сработало, и источник, и приёмник звука должны поддерживать A2DP 1.3.
  1. Для 99 % людей, читающих этот пост, ваш ответ будет бесполезен. И он введёт в заблуждение человека, не разбирающегося в технологиях, который не знает ничего лучше. На дворе 2018 год, эпоха медленных смартфонов прошла.
  1. Пожалуйста, прочтите: meta.stackexchange.com/questions/184154/… Я не должен объяснять это пользователям сети Stack Exchange.
  1. В вопросе конкретно указано: Honda Odyssey. Ваши доводы не ошибочны, но вероятность того, что причина в этом, крайне мала. Я не хотел принизить ценность вашего ответа, а лишь указал на сторону, которая, скорее всего, виновата, и в данном случае это Honda. Это дискуссия, и я не понимаю, зачем нужны нецензурные выражения.
  1. Приложение «Музыка» на моём iPhone отлично работает с любым другим Bluetooth-динамиком, заметной задержки нет. Кроме того, Bluetooth использует кодек (SBC), который оптимизирован для минимального использования ресурсов процессора, а не для обеспечения качества. Также см. мой комментарий к ответу Cucumber.
  1. Да, но, как вы и отметили, автомобиль не принимает аудиопоток. Как вы и отметили, автомобиль принимает необработанный поток байтов WAV, а это значит, что 2 секунды могут быть отбуферизированы, если приложение, отправляющее аудиовизуальный контент, знает о задержке. Но из-за ограничений в Android и iOS связь между приложением и оборудованием отсутствует, поэтому приложение не знает, что нужно сдвинуть/задержать видео на 2 секунды. Я много знаю об архитектуре процессоров и о том, почему для разных процессов используются разные процессоры. В частности, я занимаюсь исследованиями и специализируюсь на оптимизации памяти для приложений.
  1. Итак, в обоих сценариях автомобиль должен добавлять задержку в 2 секунды. Возможно, у телефона тоже есть задержка в 2 секунды, но я буквально протестировал сотни телефонов и Bluetooth-колонок, и у этого фургона самая большая задержка, которую я когда-либо видел. Впрочем, если подумать, это не опровергает вашу теорию о неисправном телефоне, но доказывает, что автомобиль как минимум частично является причиной задержки в 2 секунды. Возможно, вы имели в виду, что Honda нужен был двухсекундный буфер для компенсации двухсекундной задержки некоторых телефонов.
  1. Похоже, вы много знаете о процессорах ARM. Вот ещё один способ взглянуть на это, который опровергает вашу теорию о том, что телефон не справляется с задачей. Если бы у телефона была задержка в 2 секунды, то для компенсации автомобилю понадобился бы буфер с задержкой в 2 секунды. Если бы буфер был меньше, вы бы слышали прерывания звука. Но мы этого не слышим. Значит, либо в автомобиле установлен 2-секундный буфер джиттера, либо и в телефоне, и в автомобиле установлен 2-секундный буфер задержки. Не может быть так, что только в телефоне установлена 2-секундная задержка, тогда у вас были бы пропуски буфера.
  1. У них всё тот же недостаток, что и у любого другого процессора ARM: он не предназначен для быстрой обработки больших объёмов памяти, так как не использует память напрямую, а работает через хранилища. Набор команд ограничен, а это значит, что приложениям приходится использовать больше места в памяти, так как в ней больше команд, что, в свою очередь, означает, что приложения работают медленнее. И это ещё до того, как приложение начнёт считывать аудио в свою память, преобразовывать его с помощью большого количества операций ввода-вывода в память, а затем записывать его в выходной буфер и передавать в ОС для передачи по Bluetooth. и они не уступают X86 с той же частотой/количеством ядер
  1. Потому что даже то, что вы предложили, является нарушением правил Stack Exchange: ни вопрос, ни ответ не должны быть слишком конкретными. Они должны быть пригодны для повторного использования. Я уже во второй раз объясняю то, что чётко прописано в правилах Stack Exchange. Я не против того, чтобы этот ответ не был отмечен как правильный, и не против того, чтобы кто-то комментировал информацию, которая отпугнёт людей, не разбирающихся в технике, и при этом мой ответ будет выглядеть совершенно неверным для тех, кто сталкивается с подобными проблемами. Комментарии нужны для того, чтобы давать обратную связь и препятствовать использованию ответа, если он неправильный.
  1. Ни один из этих ответов не помог. У меня была такая проблема со многими автомобилями. Дело не в телефоне, если видео отлично синхронизируется с Bluetooth-гарнитурами и некоторыми автомобильными стереосистемами. Похоже, дело в особенностях конструкции стереосистемы. Но в чём же дело? Чего не хватает некоторым автомобильным стереосистемам, что есть у других и у Bluetooth-гарнитур?
  1. Подключите наушники к разъёму для наушников и к дополнительному стереоразъёму, проверьте, сохраняется ли проблема.
  1. Я напомню тем, кто поставил дизлайк и проголосовал против, что вопросы об автомобильных аксессуарах относятся к теме этого сайта. Автомагнитола — это аксессуар.
  1. У меня Odyssey. Я использовал свой телефон с множеством других Bluetooth-устройств. Задержка не связана с моим телефоном. У Honda слишком большой буфер джиттера. Возможно, они сделали это, чтобы обойти аппаратную проблему, например, из-за неудачной конструкции антенны. Или, может быть, процессор Odyssey перегружен, и это был самый простой способ избежать прерывания звука. В любом случае, это проблема Odyssey. Почитайте несколько форумов, многие люди сообщали об этой проблеме. Вот пример: driveaccord.net/forums/138-audio-electronics-lighting/….
  1. Любой смартфон, будь то Apple или Android, выпущенный, вероятно, с 2010/2011 года, обладает более чем достаточной вычислительной мощностью для решения этой задачи. В Bluetooth есть два профиля для передачи звука: HFP и A2DP. HFP предназначен для телефонных звонков. Он обеспечивает низкую задержку, но с потерей качества. A2DP обеспечивает высокое качество, но с потерей задержки. Автор вопроса не упомянул о задержке при использовании отдельного музыкального приложения. Музыкальное приложение и YouTube используют A2DP с высокой задержкой. Для телефонных звонков используется HFP с низкой задержкой.
  1. О, ваше знание названия кодека не меняет обоснованности моего ответа, OP сказал, что при использовании youtube было больше задержек, что означает, что есть проблема с загрузкой процессора, не имеет значения, насколько он оптимизирован, процессор ARM на самом деле не создан для многозадачных процессов с высокой нагрузкой, и только потому, что он более низкого качества, чем MP3 или какой-либо другой кодек, не означает, что это не относительно медленный процесс по сравнению с обработкой ввода., и последнее: не все аудио Bluetooth использует SBC, это один из немногихsoundguys.com/understanding-bluetooth-codecs-15352
  1. Вы пробовали повторно подключить телефон к Odyssey?
Вы уже ответили на этот вопрос