Здесь нужно решить несколько проблем. Давайте рассмотрим их один за другим.
Неизвестные ошибки
Чаще всего «произошла неизвестная ошибка» происходит из-за обращений к API-интерфейсам DirectShow, которые завершаются неудачей по любой неожиданной причине (странное устройство захвата, ЦП не успевает за кодированием и, в основном, любое событие, которое может прервать фрейм графика DirectShow). поток). Попробуйте другой источник захвата и посмотрите, изменятся ли ваши результаты. Кроме того, выполните длинное кодирование со своего устройства в локальный файл Windows Media, чтобы убедиться, что все в порядке.
Сетевые ошибки / запрос не понят сервером
Сетевые ошибки в моем опыте были в основном связаны с пропускной способностью; однако «Запрос не понят» может означать, что вы что-то меняете в своих HTTP-запросах (промежуточный прокси и т. д.).
Сначала проверка по требованию
Сначала протестируйте поток по требованию с вашего сервера EC2. Скачайте Big Buck Bunny или закодируйте что-нибудь самостоятельно и убедитесь, что вы можете получить доступ к http://example.com/BigBuckBunny.ism/Manifest в своем браузере. Протестируйте его с помощью Smooth Streaming Health Monitor на стороне клиента и производительности серверного блока с помощью IIS Smooth Streaming Performance Testing Tool . Это позволит убедиться, что службы IIS Media Services работают правильно.
Порядок запуска
Убедитесь, что вы запускаете прямой поток точек публикации в следующем порядке:
- На сервере EC2 перейдите к точке прямой публикации и запустите ее. Это переведет точку публикации в состояние, готовое принять поток.
- В Expression Encoder нажмите Connect после ввода URL точки публикации. На этом этапе вы должны увидеть успешное соединение, если открыт порт 80.
- Нажмите Start и кодирование должно начаться. (Лучше всего начинать с 1 или 2 битрейтов при тестировании вашего потока; поддерживайте низкую пропускную способность.)
Альтернативная настройка
Если ничего не помогает, настройте Smooth Stream на вашем локальном хосте (выражение передает поток в IIS Media Services на localhost) и настройте точку публикации на локальном хосте, чтобы передать поток в ваш экземпляр EC2. Это также хороший метод для использования, если вам нужно более устойчивое к сбоям решение для сетей для долгосрочных потоков или если ваше соединение не такое надежное, как хотелось бы.
Удачи и, надеюсь, часть этой информации сузит ее.