#streaming #rtmp #amazon-cloudfront
#потоковая передача #rtmp #amazon-cloudfront
Вопрос:
Я транслирую видео через rtmp из Amazon Cloudfront. Для начала воспроизведения видео требуется слишком много времени, и у меня нет никакого способа выяснить, почему. Обычно я использую панель «Сеть» в Firebug или Web Inspector, чтобы получить хорошее первое представление о том, когда ресурс начинает загружаться и сколько времени требуется для отправки (что может указывать на то, является ли проблема на стороне сервера или сети по сравнению с отображением браузера). Но поскольку видео воспроизводится в Flash Player (в данном случае Flowplayer), невозможно получить какую-либо информацию о состоянии потока. Кроме того, поскольку он обслуживается с Amazon Cloudfront, я не могу разместить на сервере какие-либо инструменты отладки или измерения (если такой инструмент вообще существует).
Итак … мой вопрос: какими способами я могу исследовать эту проблему? Я надеюсь, что будут некоторые настройки, которые я смогу настроить либо на интерфейсе (flowplayer), либо на серверной части (Cloudfront), но, не имея возможности что-либо измерить или даже понять, в чем проблема, я не понимаю, что это может быть.
Есть идеи по устранению неполадок в производительности потокового видео?
Ответ №1:
Вы можете использовать WireShark (может отключить RTMP) или Fiddler, чтобы проверить, что происходит … еще один момент (помимо клиента и сервера), о котором следует помнить, — это ваш интернет-провайдер.
Чтобы копнуть глубже, вы можете использовать это http://rtmpdump.mplayerhq.hu / ИЛИ http://www.fluorinefx.com / ИЛИ http://www.broccoliproducts.com/softnotebook/rtmpclient/rtmpclient.php .
Вы должны иметь в виду, что RTMP не идеален, поскольку обычно он обходит прокси и пытается установить прямое соединение… если это не сработает, это может привести к сбою, но это означает, что уже прошло некоторое время (ожидание тайм-аута соединения и т. Д.) … если у вас есть возможность установить для CloudFront / Flowplayer значение RTMPT, я бы рекомендовал сделать это, поскольку для подключения используется порт 80.
Комментарии:
1. Не могли бы вы объяснить, как ваше утверждение о том, что «RTMP не идеален, поскольку он обычно обходит прокси и пытается установить прямое соединение», имеет какое-либо отношение к скорости загрузки? Я не понимаю, как переключение на RTMPT, который использует порт 80, ускорит что-либо. У меня нет никаких проблем с подключением людей — просто скорость загрузки. Спасибо.
2. RTMP пытается подключиться напрямую… и если это невозможно, оно возвращается… но время до его возврата может быть довольно заметным, поскольку в зависимости от конкретного сетевого сценария это может означать, что RTMP ожидает, пока не наступит тайм-аут… вы описали, что до начала воспроизведения требуется много времени… то, что я описал, может быть объяснением…
3. Хорошо, спасибо за ваш ответ. Я еще не пробовал ни одно из ваших предложений, но они кажутся очень многообещающими — и никто другой не ответил, так что вы получаете награду! Еще раз спасибо за помощь.
4. просто установите для моей потоковой ссылки значение RTMPT, и это сократило время загрузки часового видео до 1-3 секунд, чтобы начать с 10-30 секунд до начала спасибо за предложение, это было легко исправить! Редактировать: это также использует подписанные URL-адреса с пользовательской политикой
Ответ №2:
Предположительно — если вы идете и пытаетесь просмотреть видео, а затем вернетесь через 20 минут и снова нажмете на него — оно быстро загружается?
SAN -> Пограничные серверы —> Клиент
Это все хорошо и хорошо в конкретном случае использования (например, небольшой размер исходного содержимого, большой длительный кэш), но это становится проблемой, когда оно масштабируется, когда множество медиа-хостов запускают контент через систему, например, CloudFront.
Медиа-кэш, который они хранят на своих пограничных серверах, сбрасывается довольно часто — после заполнения кэша начните сброс с самого старого файла в кэше — поэтому, если у вас есть большие видеофайлы, которые просматриваются нечасто, они не будут храниться в кэше пограничного сервера, и передача займет много временидо краев — таким образом, предоставляя совершенно ужасающий пользовательский интерфейс.
То же самое можно сказать, например, о YouTube — зайдите и посмотрите какое-нибудь случайно непонятное видео большой продолжительности — и попробуйте его через пару прокси, так что вы попадаете на разные пограничные серверы, и вы увидите, что происходит то же самое.
Комментарии:
1. Нет, кажется, что он загружается с одинаковой медленностью независимо от того, сколько раз запрашивается одно и то же видео. Я понимаю, что вы говорите о том, что его нужно часто перезагружать из кэша, если его не часто просматривают — если это так, значит ли это, что мне просто не повезло и не следует использовать Amazon CloudFront? Я думал, что потоковое видео будет быстрее, потому что оно может начать отправлять содержимое без необходимости сначала загружать весь файл (но, возможно, серверу сначала нужно загрузить весь файл?). Спасибо за помощь.
Ответ №3:
Я заметил очень заметную задержку при потоковой передаче RMTP из cloudfront. Я обнаружил, что переключение на прямой http progressive из корзины Amazon S3 привело к сокращению времени задержки.