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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.10.2006, 15:37
ak_s вне форума Посмотреть профиль Отправить личное сообщение для ak_s Найти все сообщения от ak_s
  № 1  
Ответить с цитированием
ak_s

Регистрация: Jun 2006
Сообщений: 13
По умолчанию Генерация flv потока

Вобщем во flash технологиях я можно сказать полный ноль, поэтому не судити строго.
Такая ситуация: есть у нас java-сервер на который приходят в реальном времени кадры какого то видео. Видео может идти сколько угодно долго. Формат кадра не столько важен - можно на лету его представить обычным битмапом или jpeg-ом. Суть в том, что заказчик хочет чтобы это видео транслировалось еще во flash на сайте.
Как я понял немного поразбиравшись, единственный нормальный способ сделать это - передавать видео в flv формате через rmtp. Тоесть когда у меня есть уже готовый flv файл на сервере, нет проблемм проигрывать его во flash. А вот есть ли нормальный конвертор или код, способный постоянно генерировать на сервере flv поток из последовательности кадров (тупо картинок) который бы нормально можно было бы передать во flash? Кто нибудь сталкивался с такой проблеммой? Понимаю можно покапать формат flv или существующие кодеки с открытым кодом, но время поджимает и не хотелось бы его тратить на такое, причем не зная заведомо даст ли это результат.
Что посоветуете?


Последний раз редактировалось ak_s; 19.10.2006 в 15:40.
Старый 20.10.2006, 11:01
ak_s вне форума Посмотреть профиль Отправить личное сообщение для ak_s Найти все сообщения от ak_s
  № 2  
Ответить с цитированием
ak_s

Регистрация: Jun 2006
Сообщений: 13
Что, никто не сталкивался с такой проблеммой? (

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

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
На лету добавлять картинки в rtmp поток, кодируя на лету в flv - это, наверное, сложно, решений не видел (написать видеодрайвер и дать бродкастить самому флэш-плееру на сервер как поток с веб-камеры? ). Но просто набор jpg перекодировать в отдельно лежащий flv довольно просто с помощью ffmpeg:
ffmpeg -i %04.jpg -f flv -s 320x240 video.flv
__________________
Верить никому нельзя. Мне - можно. :)

Старый 22.10.2006, 10:46
ravenco вне форума Посмотреть профиль Отправить личное сообщение для ravenco Найти все сообщения от ravenco
  № 4  
Ответить с цитированием
ravenco
[+ 1.1 30.08.2005]
 
Аватар для ravenco

Регистрация: Mar 2002
Адрес: не скажу
Сообщений: 440
Отправить сообщение для ravenco с помощью ICQ
Цитата:
Сообщение от ak_s
Что, никто не сталкивался с такой проблеммой? (
а ты не слышал про red5 бесплатный аналог (FCS,FMS)?
работает с Apache, java как раз для твоей проблемы...
__________________
не надо читать, это подпись(все-таки прочли, да?)

Старый 22.10.2006, 11:03
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 5  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Цитата:
Сообщение от ravenco
а ты не слышал про red5 бесплатный аналог (FCS,FMS)?
работает с Apache, java как раз для твоей проблемы...
А что, этот "аналог" уже умеет кодировать в flv на лету (чего не умеет, собственно, сам FMS)? Удивительно. Недавно он даже не умел менять папку, откуда можно брать проигрываемые flv...
__________________
Верить никому нельзя. Мне - можно. :)

Старый 22.10.2006, 11:41
ravenco вне форума Посмотреть профиль Отправить личное сообщение для ravenco Найти все сообщения от ravenco
  № 6  
Ответить с цитированием
ravenco
[+ 1.1 30.08.2005]
 
Аватар для ravenco

Регистрация: Mar 2002
Адрес: не скажу
Сообщений: 440
Отправить сообщение для ravenco с помощью ICQ
Цитата:
Сообщение от Dendroid
А что, этот "аналог" уже умеет кодировать в flv на лету (чего не умеет, собственно, сам FMS)? Удивительно. Недавно он даже не умел менять папку, откуда можно брать проигрываемые flv...
обрати внимание на вопрос
Цитата:
Сообщение от ak_s
Такая ситуация: есть у нас java-сервер на который приходят в реальном времени кадры какого то видео. Видео может идти сколько угодно долго.
переключить поток видео на ред5. кстати, файлы в каком формате?
З.Ы.знакомый случай:
заказчик начинает проект, незная как это делается и чем(это его право, а то не был бы заказчиком )
испольнитель так же, начинает проект...(троеточие)
__________________
не надо читать, это подпись(все-таки прочли, да?)

Старый 23.10.2006, 13:15
ak_s вне форума Посмотреть профиль Отправить личное сообщение для ak_s Найти все сообщения от ak_s
  № 7  
Ответить с цитированием
ak_s

Регистрация: Jun 2006
Сообщений: 13
Цитата:
Сообщение от Dendroid
На лету добавлять картинки в rtmp поток, кодируя на лету в flv - это, наверное, сложно, решений не видел (написать видеодрайвер и дать бродкастить самому флэш-плееру на сервер как поток с веб-камеры? ). Но просто набор jpg перекодировать в отдельно лежащий flv довольно просто с помощью ffmpeg:
ffmpeg -i %04.jpg -f flv -s 320x240 video.flv
К сожалению вся проблемма в том что на мой сервер приходят видеопотоки в реальном времени, каждый видеопоток надо так же на лету отправлять во flash. =((
Тоесть из потока я могу вычленять отдельные кадры, но не могу получить сразу все видео, так как оно в идеале может быть хоть бесконечное. Статические архивные видео данные я примерно таким образом, только программно и конвертирую в flv.

Цитата:
Сообщение от ravenco
а ты не слышал про red5 бесплатный аналог (FCS,FMS)?
работает с Apache, java как раз для твоей проблемы...
Блин =)) Red5 я итак исспользую для передачи видео. Прблемма не в том как передать, а в том как получить нужный видеопоток. Можете посоветовать что нибудь?

Цитата:
Сообщение от ravenco
переключить поток видео на ред5. кстати, файлы в каком формате?
З.Ы.знакомый случай:
заказчик начинает проект, незная как это делается и чем(это его право, а то не был бы заказчиком )
испольнитель так же, начинает проект...(троеточие)
Файлов никаких нет. Есть просто постоянно поступающие видео данные на сервер. В нашем собственном формате. Я конечно могу вычленить из этих видеоданных отдельные кадры хоть в виде просто попиксельной растровой матрицы, хоть сконвертить в какой либо формат изображений - это не проблемма. При необходимости даже можно писать изображения файлами на диск, только это лишнее на мой взгляд - ибо будет ужасно тормозить систему. Представте нагрузку на диск когда туда постоянно пишется кадры кучи видеопотоков причем каждый хотя бы 25 раз в секунду. =)
По поводу не знания как это делается. Так тут сарказма не надо ) Проект уже завершен впринципе. Он довольно большой из разных систем состоит и никак не связан с флэшем, а писался на Java и C++. Флэеш - это уже прихоть заказчика сейчас. Дополнительная фича. Вот хочется ему, чтоб наши видеоданные можно было в предварительном просмотре на сайте смотреть (и именно через flash), если лень аппликуху запускать =)) Очень настойчиво хочет, вот и пробуем разобратся. Не так давно он хотел смотреть архивные видео во флеше, это и побудило меня зарегестрироваться на этом сайте, сейчас хочет живое видео смотреть )

Вобщем спасибо всем кто откликнулся. Сейчас пробую поразбираться с исходниками ffmpeg, может успею написать Live-конвертор )
Так же буду рад любым идеям и предложениям по этому поводу. Может возможно как то не через rmtp это решить? Или всеже у кого то был опыт? Может кто то разбирался каким образом генерируется этот flv поток в самом flash и передается на сервер?


Последний раз редактировалось ak_s; 23.10.2006 в 13:18.
Старый 23.10.2006, 20:22
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 8  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Ну если всего лишь предпросмотр надо во флэше - можно ведь и жпеги посылать, а флэш там их пусть собирает и показывает. Зато можно получить часть потока, остановить, покрутить туды-сюды (настоящим потоком такое сделать не получится) - заказчику должно понравиться.
__________________
Верить никому нельзя. Мне - можно. :)

Старый 24.10.2006, 09:55
ak_s вне форума Посмотреть профиль Отправить личное сообщение для ak_s Найти все сообщения от ak_s
  № 9  
Ответить с цитированием
ak_s

Регистрация: Jun 2006
Сообщений: 13
Цитата:
Ну если всего лишь предпросмотр надо во флэше
Ну предпросмотр предпросмотром. Но при этом должно быть нормальное видео. Тоесть чтобы заказчик смотрел и видел видо а не мерцающие картинки. Предпросмотр в том смысле, что видео это не самая основная часть системы. И если не охото или нет возможности грузить все, то чтоб видео можно было просмотреть с сайта на флеше. Но при этом видео должно показываться на ура, не хуже чем в аппликухе или хотя бы относительно на то похоже ))

Цитата:
можно ведь и жпеги посылать, а флэш там их пусть собирает и показывает.
А вот как это сделать? Я говорил - с флешем никогда не работал. Но прежде чем задать вопросы немного поизучал литературу и форумы. К сожалению не нашел ничего подобного. Единственные 2 способа как я еще могу представить такую реализацию:
1. Очередной кадр сохраняется на сервере в директории сайта так, чтобы к нему можно было обратится по HTTP. Через сокет отсылается на флеш сообщение типа: грузить картинку с такого то URL. Делается loadMovie этой картинки по ее URL.
Но этот способ сразу не катит по своей неэффективности. Во первых обмен идет через диск сервера, а не напрямую - сразу будет тормазиться система. Да и потом пока запишется кадр и придет сообщение об этом (плюс пока пошлется запрос на HTTP серер, пока он обработает, считает файл с диска и выдаст его в ответе), надо будет грузить уже новый чтобы не было задержки. Ну и плюс каждый новый загруженный кадр (если он все же успешно загрузится) будет перерисовываться и ужастно мерцать, что сразу неприемлимо. Я для развлечения и обучения (сразу не воспринимал это серьезно) что то подобное делал в самом начале. ничего хорошего не вышло.

2. способ - поробовать послать просто весь кадр во флеш целиком. допустим даже в jpeg формате. Например через сокет (но мне кажется не получится - так как сообщения обрываются по нулю там, а изображение вполне может содержать нулевой байт) или через вызов серверного метода в rmtp (там же можно передавать такие данные? ). Но тут я даже не знаю как это обработать. Тоесть во флешь приходит в какую то переменную после вызова серверного метода какой то массив байт. Этот массив байт на самом деле просто полная побайтная копия jpeg файла, если бы он был на диске. Как такое обработать? Как распознать его как картинку и нарисовать поверх старого кадра во флеше? Может есть какой способ? Если он будет работать, я бы не брезговал и такой реализацией.

Или может я что то упустил, как вы имели ввиду организовать это: "можно ведь и жпеги посылать, а флэш там их пусть собирает и показывает". Буду очень благодарен за любой работающий совет.

Цитата:
Зато можно получить часть потока, остановить, покрутить туды-сюды (настоящим потоком такое сделать не получится) - заказчику должно понравиться.
Нет, вот этого как раз не надо. Должна быть именно трансляция того видео которое сейчас приходит на сервер. Как телевизор - включил и видешь то что сейчас вещают, без всякой возможности перемотки и паузы. Паузу, промотку и т.п. требовалось в проигрывании видеоархивов хранящихся на сервере - это я уже сделал. Но там есть все видео, которое сначала можно сконвертить на сервере в flv файл, а потом показывать. Поэтому таких проблемм не возникало.


Последний раз редактировалось ak_s; 24.10.2006 в 09:59.
Старый 31.10.2006, 07:09
ak_s вне форума Посмотреть профиль Отправить личное сообщение для ak_s Найти все сообщения от ak_s
  № 10  
Ответить с цитированием
ak_s

Регистрация: Jun 2006
Сообщений: 13
Ну так что ни у кого нет идей? Ато возвращаюсь к этой задаче, надо бы ее за день-два по быстренькому реализовать. )

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

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

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


 


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


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