Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.10.2013, 03:07
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 1  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию [red5] Кто-нибудь знает как сменить имя файла во время записи потока ?

Здравствуйте
Нашел такое решение http://sziebert.net/posts/server-sid...ing-with-red5/
Но нерабочее (не получилось у меня)
Вместо запуска публикации на стороне AS (NetStream.publish("streamName","record")) с параметром "record" мне нужно файлы чтобы сохранялись не по имени потока, а с такими именами, которые я назначу в серверном скрипте.

Я публикую поток так
Код AS3:
outStream.publish(publishStreamName,"live");
Карлуша рекомендует вот так запускать запись потока
Код AS3:
nc.call("streamManager.recordShow",null);

У него же код функции для записи потока такой
Код AS3:
/**
     * 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);
        }
    }
а у меня stream равен null каста его к (ClientBroadcastStream)

ps кстати, нужно попробовать каст убрать

-------------------------------------------------------
Работает верно, нужно было nc.call("streamManager.recordShow",null); после NetStream.Publish.Start


Последний раз редактировалось djyamato; 28.10.2013 в 12:36.
Старый 10.11.2013, 18:59
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 2  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
не надо делать никаких nc.call
в Application переопределяем следущее
Код AS3:
	@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);
		}
	}
А вот для именования юзаем streamFilenameGenerator (читай про DefaultStreamFilenameGenerator)
для этого надо добавить его в red5-web.xml
Код:
<bean id="streamFilenameGenerator" class="StreamNameGenerator" />
вот моя реализация для сервера версии 1.0.0 (приложено), в этой вресии ред5 немного глючно генерятся папки если есть subscopes, поэтому StreamNameGenerator нужно было юзать обязательно иначе писало не туда и невозможно было прочитать потом записанный файл. А более поздние версии тупо не дописывают запись, файлы получаются битыми.
Сейчас юзая этот класс если ты конектишься например в your_app/scope123 то запись будет вестись в webapps/your_app/streams/scope123/mystream.flv
В 52ой строке я внешним классом приписываю таймштамп в конце имени, там надо подредактировать если нужно.
Вложения
Тип файла: zip StreamNameGenerator.zip (883 байт, 18 просмотров)
__________________
smival.com

Старый 10.11.2013, 21:38
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 3  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
Спасибо за совет, не заметил в доках этого по невнимательности.
P.S. Кстати, ты не сталкивался с проблемой для версий 1.0.. когда запись получалась битой. То есть, или звук не соответствует картинке или каринка после нескольких секунд записи вообще залипает.А бывало и такое - сервак просто несколько первых секунд записывал Причем, эти все симптомы я лечу одним способом - даунгрэйтом до 0.8. Может есть какие-либо более корректные способы ?

Старый 11.11.2013, 10:44
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 4  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
к счастью мне пока нужно писать только голос, из версий 1.Х это единственная которая дописывает файл до конца.
__________________
smival.com

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.