NetStream.publish() для AMS заканчивается файлом 1 КБ

Я использую Adobe Media Server 4.5 и FLEX 4.6.0 SDK.

У меня есть приложение.swf, которое подключается к серверу Adobe Media Server по протоколу RMTP, принимает аудио- и видеосигналы с веб-камеры и микрофона пользователя и выполняет NetStream.publish() для потоковой передачи файла на сервер. Размер файла увеличивается по мере того, как пользователь записывает видео. Иногда полученный файл будет иметь размер 1 КБ.

Что является причиной этого, и как я могу предотвратить это или иным образом завершить сеанс и сообщить пользователю, что что-то пошло не так?

Редактировать:

Некоторые дополнительные вопросы / комментарии / мнения, которые могут помочь определить проблему:

Это происходит только в 1% случаев, и я не уверен, что я могу использовать для устранения неполадок. Я никогда не мог уловить, когда это происходит до истечения срока действия файлов журнала, созданных AMS.

Моя теория заключается в том, что это происходит, когда клиент теряет связь где-то.

Пока NetStream публикует правильно, размер файла будет увеличиваться. Если файл не увеличивается, это должно означать, что NetStream потерял соединение. Поскольку размер файла составляет 1 КБ, поток должен потерять соединение сразу после начала публикации.

Я также открыл файл в Notepad++ и получил это:

FLV [SOH][NUL][NUL][NUL][NUL] [NUL][NUL][NUL][NUL]

Другая теория состоит в том, что что-то может перезаписать мой файл, но это вряд ли

1 ответ

Решение

Возникают те же проблемы, но в 0,001% случаев.

Наиболее распространенная проблема возникает из-за микрофона. Необходимо проверить микрофон перед публикацией потока.

Еще одна возможная проблема:

  • Клиент прерывает поток - NetStream.Record.Stop
  • Выход из приложения - onDisconnect
  • Клиент отключает микрофон / камеру
  • "Кэш сегмента FLV заполнен"

Может предупредить, если позвонил onUnpublish событие на сервере.

Я также использую таймер после publish () метод на стороне клиента, если через 3-5 секунд NetStream.Record.Start событие не вызывается, значит у клиента возникла проблема и ее следует предотвратить.

Другие вопросы по тегам