![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Lеstat |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 28.12.2005 Где: Москва Репутация: нет Всего: нет |
Вобщем есть такая штука как NSV
Если кто не знаком с этим, то кратко объясню как смогу... nsv формат видео файлов... что-то вроде контейнера. Есть программа, которая перегоняет обычные видео файлы в файлы с расширением nsv. Есть спецификация формата этого... можете ее почитать ТУТ NSV файлики предназначены для потокового вещания видео. Официальная программа берет папку и вещает по очереди все файлы, которые там лежат! Поток она передает на Shoutcast или Icecast серверы, а дальше его можно смотреть через Winamp или VCL Это очень не удобно... мне необходимо контролировать очередь вещаемых файлов! Поэтому я пробовал написать свою "вещалку". Написал ее на java, она даже работала, но не совсем корректно... Я столкнулся со следующей проблемой: в nsv файлик записаны фреймы... своей програмкой я брал эти фреймы и отправлял ShoutCast'у. Видео воспроизводится клиентом, но за счет того что я не знаю как правильно отсылать фреймы происходит рассинхронизация и поток обрывается! ![]() ![]() Я кидал в папку два 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# не только в области работы с сокетами/сетями |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: 2 Всего: 22 |
||||
|
||||
Lеstat |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 28.12.2005 Где: Москва Репутация: нет Всего: нет |
чтобы поменять нужно будет иззменить порт на который коннектятся клиенты по умолчанию...
шоуткаст получает этот порт прибавляя единицу к порту клиентов (8000) Это хорошая идейка! думаю тогда нужно сделать что-то вроде прокси и вещать не на шоуткаст, а на "переходник", который повесить на какой-нибудь другой порт Только бы задержек не было бы... спасибо за идею! попробую реализовать! |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |