• erlyvideo Касательно записи аудио-видео средствами Erlyvideo. Этот сервер более строгий, чем другие медиа сервера, и более сурово относится к клиентскому коду. Например, если вы напишите такой код:
    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");

    Ну вот так можно реализовать запись аудиоподкаста :)

Replies (5)

  • @yzh44yzh, не, не проще. Проще написать немного несложного кода на клиенте :)
  • @yzh44yzh, а потом на сервере разворачивать более сложную инфраструктуру. ffmpeg еще устанавливать ;)
  • @yzh44yzh, ну вот как-то так
    github.com

    ничего сложного, но нужно знать пару нюансов )
  • @yzh44yzh, это автоматически сгенереный код. Из MPS, вернее, из Realaxy :)
  • @yzh44yzh, Это еще ничего код, раньше было хуже. Раньше генерилось куча Logger-классов, по отдельному классу на каждый экземпляр логера :)