pskov.lesohranitel.ru отслеживать лесные пожары
чуваки крутую штуку на флюссонике сделали: netStream.close();
netStream.attachAudio(null);
то получите ошибку на сервере и дисконнект клиента. Сервер не терпит вольностей со стороны клиента, и по любому поводу готов наказать его дисконнектом :) Поэтому, не удивляйтесь, когда запустив флэш-клиента, прекрасно работающего с любым другим медиа-сервером, увидите, как erlyvideo оплевывает вас исключениями :)
Далее, вы не можете в одном NetStream делать и publish и play. Такое не катит:
netStream.publish("some.flv", "record");
// some time passed
netStream.close();
netStream.play("some.flv");
Нужно, во-первых, публиковать так
netStream.publish("some.flv?clients_timeout=0", "record");
а для проигрывания использовать другой стрим
netStream.close();
netStream2.play("some.flv");
По дефолту записываемый файл не сразу пишется на диск, а сперва кешируется в памяти, и не доступен для проигрывания. client_timeout отключает это кеширование.
Ну и до кучи: повторно писать в файл с тем же именем нельзя, поэтому так:
nextId++;
var name : String = streamName + nextId + ".flv?clients_timeout=0";
streamPublish.publish(name, "record");
Ну вот так можно реализовать запись аудиоподкаста :)
apt-get install ncurses-dev
apt-get install openssl libcurl4-openssl-dev
download erlang.org
untar
configure --with-ssl
make
make install
Хоть так:
mic.codec = SoundCodec.NELLYMOSER;
mic.rate = 44;
хоть эдак:
mic.codec = SoundCodec.SPEEX;
mic.setSilenceLevel(0);
mic.encodeQuality = 10;
Но если на erlyvideo получается просто говнецо, то на Red5 получается говно полное и неюзабельное. Например, запускаешь запись, считаешь от одного до десяти, останавливаешь, воспроизводишь, и в случае с Red5 получаешь:
несколько секунд тишины (NetStream.seek выдает 0), один-два-три-четыре-семь-восемь, стоп.
"пять-шесть" теряется, "девять-десять" теряется. В 10 случаях из 10 стабильный результат — тишина в начале, и выпадение данных в середине и в конце.
Тот же самый клиентский код с erlyvideo выдает совсем другой результат — слышишь ровно то, что записывал. Никакой тишины, никакой потери данных. Только звук корявый, глухой, с шумами. Но это уже вопрос к кодеку и к микрофону.
yzh44yzh.com продолжаю тему разработки плагинов к erlyvideo в своем блоге
То бишь, у второго клиента registerClassAlias не сработал. Если второй клиент теперь отправит сообщение, то дальше оба будут получать нормальный Message.
А все потому, что я сделал так:
public class Message
{
registerClassAlias("com.flashdevs.textChatLib.Message", Message);
...
А нужно было так:
registerClassAlias("com.flashdevs.textChatLib.Message", Message);
public class Message
{
...
и registerClassAlias у меня вызывался только при инстанциировании Message, а не раньше. (Причем вызывался многократно при каждом инстанциировании :)
В очередной раз убеждаюсь, что debian более тру, чем fedora. Надо набраться решимости, и на работе тож заменить.
red5: 518 классов, 86596 строк кода
erlyvideo: 199 файлов (erl и hrl), 40393 строк кода.
Они, конечно, не идентичны по возможностям. У erlyvideo возможности больше ) Но можно утверждать, что для реализации одинакового функционала на Erlang нужно в 2 раза меньше кода, чем на Java.
Сперва попробовали заюзать simplecdn.com А оно упало и лежало 72 часа :( Народ ищет что-нибудь другое, а я вожусь с Erlyvideo.
И скажу, что это весьма безпроблемный видео сервер. Установился и запустился с полпинка, стриминг сразу заработал. Я только потратил N минут, чтобы найти на форуме, как его запустить демоном. Тож просто — make start )
Ну и при сборке кроме очевидной зависимости от Erlang, есть неочевидная (и недокументированая) от Ruby, который используется где-то в недрах make.
@maxlapshin
Максим Лапшин сейчас разрабатывает RTMP сервер erlyvideo написанный на ерланге
оф. сайт erlyvideo.org
подробнее на русском здесь flasher.ru
если вам не чужды такие слова как FMS, Wowza, Red5, rtmp протокол, то рекомендую подписаться на Максим Лапшин сейчас разрабатывает RTMP сервер erlyvideo написанный на ерланге
оф. сайт erlyvideo.org
подробнее на русском здесь flasher.ru