Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 00:39   #1
Jacobson
Пользователь
 
Аватар для Jacobson
 
Регистрация: 26.01.2010
Сообщений: 47
Сообщение Большая буферизация при соединении

Здравствуйте! Вот набросал небольшой сегмент программного кода. По сути тут происходит запуск видео и аудио устройства, после чего создаётся файл нулевой длинны, и данные из этого файла передаются потоком в сеть. Код составлен с использованием библиотеки, "DSPack". За трансляцию потока в сеть отвечает компонент, "ASFWriter". Пример исходного кода смотрите ниже...
Код:
var
  OutputFile: string;
  WriterSink:  IWMWriterSink;
begin
  OutputFile := ChangeFileExt(ParamStr(0), '.asf');
  with FilterGraph as ICaptureGraphBuilder2 do
  begin
    if VideoFilter.FilterGraph <> nil then
    begin
      RenderStream(@PIN_CATEGORY_CAPTURE, nil, VideoFilter as IBaseFilter, nil, ASFWriter as IBaseFilter);
    end;
    if AudioFilter.BaseFilter <> nil then
    begin
      RenderStream(nil, nil, AudioFilter as IBaseFilter, nil, ASFWriter as IBaseFilter);
    end;
    ASFWriter.FileName := OutputFile;
    ASFWriter.WriterAdvanced2.GetSink(0, WriterSink);
    ASFWriter.WriterAdvanced2.RemoveSink(WriterSink);
    if Succeeded(WMCreateWriterNetworkSink(ASFWriter.WriterNetworkSink)) then
    begin
      ASFWriter.WriterNetworkSink.SetNetworkProtocol(WMT_PROTOCOL_HTTP);
      ASFWriter.WriterNetworkSink.SetMaximumClients(10);
      ASFWriter.WriterNetworkSink.Open(8080);
      ASFWriter.WriterAdvanced2.AddSink(ASFWriter.WriterNetworkSink);
      ASFWriter.WriterAdvanced2.SetLiveSource(True);
    end;
  end;
  if FilterGraph.Play then
  begin
    DeleteFile(OutputFile);
  end;
end;
Вопрос! Почему не смотря на то что создаётся файл нулевой длинный всё равно происходит большая буферизация на другом конце провода?
Я перепробовал уже всё что зал что бы хоть как нибудь уменьшить буферизацию и наладить живой поток. Но всё равно не чего не получилось... Хоть как или по другому... Может быть кто что может посоветовать?
P.S.: За темой слижу регулярно и так же буду отвечать!
Всё не то чем кажется...
Jacobson вне форума Ответить с цитированием
Старый 06.09.2010, 10:28   #2
Jacobson
Пользователь
 
Аватар для Jacobson
 
Регистрация: 26.01.2010
Сообщений: 47
По умолчанию

Хм... Честно сказать не ожидал что не кто не чего не предложит. Программный код весьма прост! Ладно... Может быть кто-то что-то и предложит, позже... А может и нет!
P.S.: Модераторам, если тема не интересная или остаётся без ответа? Моя просьба удалить её!
Всё не то чем кажется...
Jacobson вне форума Ответить с цитированием
Старый 10.11.2010, 17:55   #3
Demi
Пользователь Подтвердите свой е-майл
 
Аватар для Demi
 
Регистрация: 28.03.2007
Сообщений: 52
По умолчанию

Привет. Аналогичная проблема, решения пока не нашёл.. К сожалению..
GLEngine2D - сайт проекта
FreeRating Cайт нашей команды
Demi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите определить ip адрес при http соединении Валерий Работа с сетью в Delphi 4 26.10.2010 13:01
буферизация Dimarik PHP 4 16.07.2010 19:22
IdHTTP разъеденить соединении при отсутсвии файла Shouldercannon Общие вопросы Delphi 0 24.04.2010 17:25
как избавиться от мерцания в OpenGL при перспективной проекции (двойная буферизация включена) anyx Свободное общение 0 01.02.2010 10:00
Буферизация anton23 Win Api 0 07.10.2009 00:37