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
событие не вызывается, значит у клиента возникла проблема и ее следует предотвратить.