delphi, indy10 потоковое аудио TCP

Я пытаюсь создать приложение, которое использует потоковое видео/аудио через TCP-соединение, я уже сделал потоковое видео с компонентом indy10 (idtcpserver и idtcpclient), возможно ли сделать то же самое, но со звуком?


person user1931849    schedule 26.07.2013    source источник


Ответы (2)


Конечно.

TCP - это просто канал данных. Он совершенно не зависит от того, какие данные передаются на него. HTML-страницы, программы, видео, аудио — что угодно. Это просто канал данных в протоколе TCP.

Однако «потоковая передача» обычно означает «почти в реальном времени». Если какие-то кадры видео или аудио не пришли в течении нескольких секунд - их лучше пропустить и забыть и воспроизвести более новую музыку или видео. Вы бы не хотели, чтобы ваш разговор в Skype внезапно застрял на минуту, а затем воспроизвел всю эту минуту для вас только из-за нескольких секунд сетевой пробки. Вам лучше пропустить слово или два, а затем либо восстановить по контексту, либо попросить корреспондента повторить. Таким образом, TCP со встроенными повторными передачами и обычно не очень большими буферами не является идеальным выбором для потоковой передачи мультимедиа. Обычно UDP + контроль целостности, реализованный приложением, является лучшим выбором для этого.

person Arioch 'The    schedule 26.07.2013

Я считаю, что вам нужно использовать модуль VFW. С помощью avistream вы объединяете видео и звук в сжатый поток.

person Carl    schedule 26.07.2013
comment
Видео для винды? 16-битный интерфейс, разработанный в 1993 году? и поспешно обновляется до 32-битной, но никогда не переделывается? почему он должен? Лучше бы он использовал DirectX, как это делают современные плееры. - person Arioch 'The; 26.07.2013
comment
Я знаю, что есть directshow, но сначала он должен проверить основы ... объединить сжатое аудио + видео, а затем отправить по сети. - person Carl; 26.07.2013
comment
Но это не основы. Это еще одна потенциальная проблема: будет ли устаревший VFW поддерживать современные форматы, которые вы ему бросите, или нет? будет ли в современной Windows какая-то ошибка, вызванная битротом, или нет? и т.д. Если вы хотите конвертировать аудио в видео - лучше подготовьте файл с помощью VirtualDub или AviDemux или чего-то подобного, а затем попробуйте передать уже готовый файл. - person Arioch 'The; 28.07.2013
comment
AFAIK virtualdub использует сам VFW API ;-) ... поэтому, хотя VFW устарел, он все еще используется и представляет собой гораздо более простой для понимания API, чем MediaFoundation или DirectShow. - person Another Prog; 13.09.2017