Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоковое вещание видео, в формате NSV 
:(
    Опции темы
Lеstat
Дата 17.9.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.12.2005
Где: Москва

Репутация: нет
Всего: нет



Вобщем есть такая штука как NSV
Если кто не знаком с этим, то кратко объясню как смогу...

nsv формат видео файлов... что-то вроде контейнера. Есть программа, которая перегоняет обычные видео файлы в файлы с расширением nsv. Есть спецификация формата этого... можете ее почитать ТУТ
NSV файлики предназначены для потокового вещания видео. 
Официальная программа берет папку и вещает по очереди все файлы, которые там лежат!
Поток она передает на Shoutcast или Icecast серверы, а дальше его можно смотреть через Winamp или VCL
Это очень не удобно... мне необходимо контролировать очередь вещаемых файлов!
Поэтому я пробовал написать свою "вещалку". 
Написал ее на java, она даже работала, но не совсем корректно...
Я столкнулся со следующей проблемой: в nsv файлик записаны фреймы... своей програмкой я брал эти фреймы и отправлял ShoutCast'у.
Видео воспроизводится клиентом, но за счет того что я не знаю как правильно отсылать фреймы происходит рассинхронизация и поток обрывается!  smile  Необходима определенная задержка при отправлении фреймов... ее я высчитывал исходя из битрейта видео и звука, но это наверно не совсем правильно. После долгих мучений я забил на свою "вещалку". У меня родилась новая идея  smile  и я пошел другим путем!
Я кидал в папку два NSV файла и вещал их, пока вещался один файлик другой я заменял сохраняя имя файла... кое-что этим я добился! Вещание стало стабильным, но появилась другая проблема... Название трека отображалось в клиенте как 1.nsv 2.nsv
Впринципе я думаю можно это поправить немного переписав IceCast сервер... благо исходники открыты
Но я не могу его скомпилить на VS2005... да и разобраться с ним мне очень сложно!
Исходников официальной вещалки нет... пробовал ее декомпилить, но разобраться с исходниками так и не смог =(
Есть аналогичные проекты, которые пытаются повторить официальную вещалку
они написаны на VB даже с исходниками, но у них теже проблемы что и у моего проЭкта =)

Теперь я пишу под .NET на C#
Я вижу два варианта решение проблемы:
1) Написать программу, которая будет правильно вещать nsv файлы
2) Написать программу, которая будет управлять стандартной вещалкой... а именно подменивать содержимое файлов, сохраняя тэги

По поводу первого варианта: 
Возможно кто-нибудь знает как осуществляется синхронизация вещания или как воспроизводятся nsv плеером... он же тоже синхронизируется со временем! Охото узнать как вычислить задержку между отправками фреймов на сокет ShoutCast'а!
Есть библиотечка для работы с NSV файликами 
скачать ее можно ТУТ, но я с ней не разобрался

Ну и по поводу второго варианты первый гавный вопрос темы относящийся к С# с которым мне ОЧЕНЬ важно разобраться:
Могу ли я перехватить запрос кинутый стандартной вещалкой на порт 8001 ShouCast'y так чтобы ShoutCast его не получил, а получила моя прога, которая изменит его и отправит Shoutcast'у?
Отсылает он что-то вроде "GET /admin.cgi?pass=пароль&mode=updinfo&song=ТРЕК...."
Я не знаю можно ли токе сделать и если можно, то как?


С проектом вожусь в течении года переодически забивая на него, но он потихоньку продвигается
Буду рад любым советам!
Если вы хотя бы дочитали огромное вам спасибо! =)

вот немного ссылок по этой тематике
форум по NSV 
http://www.scvi.net/

PS: Не знал в какой раздел написать... возможно тема немного отличается от тематики данного раздела, но я думаю возникнет много вопросов конкретно по C# не только в области работы с сокетами/сетями
PM MAIL ICQ   Вверх
$tatic
Дата 17.9.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 28.1.2005

Репутация: 2
Всего: 22



Цитата(Lеstat @  17.9.2006,  18:15 Найти цитируемый пост)

Могу ли я перехватить запрос кинутый стандартной вещалкой на порт 8001...

А ты можешь поменять на Шоуткасте порт с 8001 на какой-нибудь другой? Если да, то просто в "переходнике" надо будет слушать 8001 порт, а потом отправлять на шоуткастовский.
PM MAIL   Вверх
Lеstat
Дата 17.9.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.12.2005
Где: Москва

Репутация: нет
Всего: нет



чтобы поменять нужно будет иззменить порт на который коннектятся клиенты по умолчанию... 
шоуткаст получает этот порт прибавляя единицу к порту клиентов (8000)
Это хорошая идейка! думаю тогда нужно сделать что-то вроде прокси и вещать не на шоуткаст, а на "переходник", который повесить на какой-нибудь другой порт
Только бы задержек не было бы...
спасибо за идею! попробую реализовать!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.