Перейти к содержимому
Калькуляторы

Несколько http каналов в один udp поток как это реализовать

Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен.

А чем получаете http? Astra наверное будет лучшим решением

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен.

А чем получаете http? Astra наверное будет лучшим решением

А не подскажите, каким образом сконфигурировать Астру для этих нужд!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

Я тоже ищу давно такое решение. Вот что можно сделать. комп с установленым VLC плеером, с несколькими сетевыми интерфейсами на нем можно организовать потоковое вещание, т.е. берем поток http потоком в URL работает(без смены формата(транскодирование) , можно потом на PBI сам проверял. но только один канал . На форуме здесь была похожая тема , что якобы можно организовать программно данное решение , я спросил что за программа но великие гуру мне не ответили,сказали что есть и все.Едем дальше , на компе можно открыть сразу несколько vlc плееров тоесть получится на выходе несколько UDP потоков затем шасси станции емр , там есть ип вход где можно мультипликсировать до 256 (точно не помню) UDP потоков (на выстовке пробывал настраивать). Вот как то так . Но если Вы узнаеете еще какое либо решение сообщите буду очень признатален.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Elecard V-Cinema StreamSwitcher может.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На форуме здесь была похожая тема , что якобы можно организовать программно данное решение , я спросил что за программа но великие гуру мне не ответили,сказали что есть и все.

Если вы про меня, то работы ведутся.

Касательно отдачи в юдп: там же, по хорошему, нужно бить поток на пакеты и пытаться отдавать со стабильным пакетрейтом, иначе не все девайсы/софтины такое нормально прожуют.

Попробуйте пока астру, там уже что то есть или можно дописать на луа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream?

Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать?

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать?

.

много слов, но вы в итоге так и не сказали, что подразумевается под "в 1 udp поток" ;))

 

по факту, все легко делается на gstreamer.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать?

.

много слов, но вы в итоге так и не сказали, что подразумевается под "в 1 udp поток" ;))

 

по факту, все легко делается на gstreamer.

Мы хотим сформировать поток в котором несколько программ в одном transport stream и который сможет прожевать PBI-1400, источником сего transport stream должны стать несколько transport stream потоков в формате http. На сием языке я высказался?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да всё понятно. Человек хочет кучу SPTS HTTP MPEG-TS в один MPTS UDP MPEG-TS. Куда яснее то.

 

Проблемы тут ровно две:

1) замикшировать потоки в один, перенумеровав пиды, потому что на разных SPTS потоках с вероятностью 99% они совпадут

2) выдать равномерно во времени. Это очень легко сделать, когда у тебя constant bitrate и железка, но очень сложно сделать когда у тебя variable bitrate и современная ОС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

gst-launch-0.10  souphttpsrc do-timestamp=true is-live=true location=http://192.168.50.20:7004/ ! queue ! tsdemux name=demux0 mpegtsmux name=mux ! udpsink sync=true host=192.168.50.66 port=6000 demux0.video_0041 ! queue ! mux.  demux0.audio_0040 ! queue ! mux.  souphttpsrc do-timestamp=true is-live=true location=http://192.168.50.20:7003/ ! queue ! tsdemux name=demux1 demux1.video_0041 ! queue ! mux.  demux1.audio_0040 ! queue ! mux.

 

не оно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream?

Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать?

.

 

Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream?

Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать?

.

 

Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там проделали обратную процедуру http-udp

А можно примеры вызова как Вы это сделали? на сайте указано только хттп в хттп локальный

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё это сделает mptsd.

Сложит несколько spts в один mpts и ещё выровняет поток.

Сам им собираю udp мультикаст, но в примерах видел иhttp.

Это всё улетает в pbi-1400.

Самое интересное - 1400 нормально принимают до 25 мегабит, далее нюансы. А вот его близнец, только в коробке pbi-4000-42s2 свободно принимает до 50 мегабит в одном потоке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь.

а вы ценник озвучьте ;)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё это сделает mptsd.

Подскажите, а под freebsd ее можно установить (если да то как) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, а под freebsd ее можно установить (если да то как) ?

Под фряхой не пробовал, но скорее всего кагобычно - ./конфигуре && маке && маке инсталл

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как обычно не получается пишет

#make

"Makefile",line 7:Need an operator

"Makefile",line 9:Need an operator

"Makefile",line 11:Need an operator

make: fatal errors encountered --cannot continue

А вот и Makefile

1 CC = $(CROSS)$(TARGET)gcc

2 STRIP = $(CROSS)$(TARGET)strip

3 BUILD_ID = $(shell date +%F_%R)

4 VERSION="v1.1"

5 GIT_VER = $(shell git describe --tags --dirty --always 2>/dev/null)

6 CFLAGS = -ggdb -Wall -Wextra -Wshadow -Wformat-security -Wno-strict-aliasing -O2 -D_GNU_SOURCE -DBUILD_ID=\"$(BUILD_ID)\"

7 ifneq "$(GIT_VER)" ""

8CFLAGS += -DGIT_VER=\"$(GIT_VER)\"

9 else

10 CFLAGS += -DGIT_VER=\"$(VERSION)\"

11 endif

12

13 RM = /bin/rm -f

14 Q = @

15

16 LIBS = -lpthread -lm -lrt

17

18 FUNCS_DIR = libfuncs

19 FUNCS_LIB = $(FUNCS_DIR)/libfuncs.a

20

21 TSFUNCS_DIR = libtsfuncs

22 TSFUNCS_LIB = $(TSFUNCS_DIR)/libtsfuncs.a

23

24 mptsd_OBJS = $(FUNCS_LIB) $(TSFUNCS_LIB) \

25 iniparser.o inidict.o pidref.o data.o config.o \

26 sleep.o network.o \

27 input.o \

28 output_psi.o output_mix.o output_write.o \

29 web_pages.o web_server.o \

30 mptsd.o

31

32 PROGS = mptsd

33 CLEAN_OBJS = $(PROGS) $(mptsd_OBJS) *~

34

35 all: $(PROGS)

36

37 $(FUNCS_LIB):

38 $(Q)echo " MAKE $(FUNCS_LIB)"

39 $(Q)$(MAKE) -s -C $(FUNCS_DIR)

40

41 $(TSFUNCS_LIB):

42 $(Q)echo " MAKE $(TSFUNCS_LIB)"

43 $(Q)$(MAKE) -s -C $(TSFUNCS_DIR)

44

45 mptsd: $(mptsd_OBJS)

46 $(Q)echo " LINK mptsd"

47 $(Q)$(CC) $(CFLAGS) $(mptsd_OBJS) $(LIBS) -o mptsd

48

49 %.o: %.c data.h

50 $(Q)echo " CC mptsd $<"

51 $(Q)$(CC) $(CFLAGS) -c $<

52

53 strip:

54 $(Q)echo " STRIP $(PROGS)"

55 $(Q)$(STRIP) $(PROGS)

56

57 clean:

58 $(Q)echo " RM $(CLEAN_OBJS)"

59 $(Q)$(RM) $(CLEAN_OBJS)

60

61 distclean: clean

62 $(Q)$(MAKE) -s -C $(TSFUNCS_DIR) clean

63 $(Q)$(MAKE) -s -C $(FUNCS_DIR) clean

 

 

В чем может быть причина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В чем может быть причина?

gmake?

Сам поклонник фряхи, но для iptv использую линукс, центос 5/6.

С фряхой както по iptv не срослось со времен когда она работала только с ss1 и то только по данным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чтобы gmake не выдавал ошибки нужно

 

1. в файле libtsfuncs/crc.c - в самом начале добавляем

#include <stdint.h>

 

и потом у функции ts_crc32_section исправляем тип возвращаемого результата на uint32_t

 

2. в файле libtsfuncs/tsdata.h - в самом начале добавляем

#include <stdint.h>

 

после этого mptsd прекрасно собирается gmake-ом, но при запуске получаем сообщение "usleep overhead is too high! Make sure the kernel is compiled with CONFIG_HIGH_RES_TIMERS."

 

это связано с функцией usleep, и как это обойти я так и не нашел, неужели пересобирать ядро?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

MPTSD установили, запустили, в VLC всё идёт, а PBI-1400PS2 не видит поток, видит только LINK STATUS: 100M

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.