|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
[red5] Кто-нибудь знает как сменить имя файла во время записи потока ?
Здравствуйте
Нашел такое решение http://sziebert.net/posts/server-sid...ing-with-red5/ Но нерабочее (не получилось у меня) Вместо запуска публикации на стороне AS (NetStream.publish("streamName","record")) с параметром "record" мне нужно файлы чтобы сохранялись не по имени потока, а с такими именами, которые я назначу в серверном скрипте. Я публикую поток так Карлуша рекомендует вот так запускать запись потока У него же код функции для записи потока такой /** * Start recording the publishing stream for the specified * IConnection. * * @param conn */ public void recordShow(IConnection conn) { log.debug("Recording show for: " + conn.getScope().getContextPath()); String streamName = String.valueOf(System.currentTimeMillis()); // Get a reference to the current broadcast stream. ClientBroadcastStream stream = (ClientBroadcastStream) app.getBroadcastStream(conn.getScope(),"имя потока"); try { // Save the stream to disk. stream.saveAs(streamName, false); } catch (Exception e) { log.error("Error while saving stream: " + streamName, e); } } ps кстати, нужно попробовать каст убрать ------------------------------------------------------- Работает верно, нужно было nc.call("streamManager.recordShow",null); после NetStream.Publish.Start Последний раз редактировалось djyamato; 28.10.2013 в 12:36. |
|
|||||
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
не надо делать никаких nc.call
в Application переопределяем следущее @Override public void streamBroadcastStart(IBroadcastStream stream) { String file = stream.getPublishedName(); try { stream.saveAs(file, false); } catch (Exception e) { logger.error("Error while saving stream: {}", stream.getPublishedName()); } finally { super.streamPublishStart(stream); } } для этого надо добавить его в red5-web.xml вот моя реализация для сервера версии 1.0.0 (приложено), в этой вресии ред5 немного глючно генерятся папки если есть subscopes, поэтому StreamNameGenerator нужно было юзать обязательно иначе писало не туда и невозможно было прочитать потом записанный файл. А более поздние версии тупо не дописывают запись, файлы получаются битыми. Сейчас юзая этот класс если ты конектишься например в your_app/scope123 то запись будет вестись в webapps/your_app/streams/scope123/mystream.flv В 52ой строке я внешним классом приписываю таймштамп в конце имени, там надо подредактировать если нужно.
__________________
smival.com |
|
|||||
Спасибо за совет, не заметил в доках этого по невнимательности.
P.S. Кстати, ты не сталкивался с проблемой для версий 1.0.. когда запись получалась битой. То есть, или звук не соответствует картинке или каринка после нескольких секунд записи вообще залипает.А бывало и такое - сервак просто несколько первых секунд записывал Причем, эти все симптомы я лечу одним способом - даунгрэйтом до 0.8. Может есть какие-либо более корректные способы ? |
|
|||||
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
к счастью мне пока нужно писать только голос, из версий 1.Х это единственная которая дописывает файл до конца.
__________________
smival.com |
Часовой пояс GMT +4, время: 21:56. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|