tolyamba Posted February 12, 2013 Posted February 12, 2013 Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен. Вставить ник Quote
El_Vago Posted February 12, 2013 Posted February 12, 2013 Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен. А чем получаете http? Astra наверное будет лучшим решением Вставить ник Quote
tolyamba Posted February 12, 2013 Author Posted February 12, 2013 http беру из инета Вставить ник Quote
tolyamba Posted February 12, 2013 Author Posted February 12, 2013 Добрый день, коллеги! Возникла такая необходимость: имеем несколько каналов в http и их надо загнать в один UDP поток и потом отправить на PBI, а затем в цифру. Каким софтом это можно реализовать, если у кого-то так работает, по возможности дайте примеры. Заранее благодарен. А чем получаете http? Astra наверное будет лучшим решением А не подскажите, каким образом сконфигурировать Астру для этих нужд! Вставить ник Quote
maxim1 Posted February 12, 2013 Posted February 12, 2013 Здравствуйте. Я тоже ищу давно такое решение. Вот что можно сделать. комп с установленым VLC плеером, с несколькими сетевыми интерфейсами на нем можно организовать потоковое вещание, т.е. берем поток http потоком в URL работает(без смены формата(транскодирование) , можно потом на PBI сам проверял. но только один канал . На форуме здесь была похожая тема , что якобы можно организовать программно данное решение , я спросил что за программа но великие гуру мне не ответили,сказали что есть и все.Едем дальше , на компе можно открыть сразу несколько vlc плееров тоесть получится на выходе несколько UDP потоков затем шасси станции емр , там есть ип вход где можно мультипликсировать до 256 (точно не помню) UDP потоков (на выстовке пробывал настраивать). Вот как то так . Но если Вы узнаеете еще какое либо решение сообщите буду очень признатален. Вставить ник Quote
MrCloud Posted February 13, 2013 Posted February 13, 2013 Elecard V-Cinema StreamSwitcher может. Вставить ник Quote
Ivan_83 Posted February 13, 2013 Posted February 13, 2013 На форуме здесь была похожая тема , что якобы можно организовать программно данное решение , я спросил что за программа но великие гуру мне не ответили,сказали что есть и все. Если вы про меня, то работы ведутся. Касательно отдачи в юдп: там же, по хорошему, нужно бить поток на пакеты и пытаться отдавать со стабильным пакетрейтом, иначе не все девайсы/софтины такое нормально прожуют. Попробуйте пока астру, там уже что то есть или можно дописать на луа. Вставить ник Quote
^rage^ Posted February 19, 2013 Posted February 19, 2013 можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream? Вставить ник Quote
tolyamba Posted February 20, 2013 Author Posted February 20, 2013 можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream? Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать? . Вставить ник Quote
^rage^ Posted February 21, 2013 Posted February 21, 2013 Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать? . много слов, но вы в итоге так и не сказали, что подразумевается под "в 1 udp поток" ;)) по факту, все легко делается на gstreamer. Вставить ник Quote
tolyamba Posted February 21, 2013 Author Posted February 21, 2013 Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать? . много слов, но вы в итоге так и не сказали, что подразумевается под "в 1 udp поток" ;)) по факту, все легко делается на gstreamer. Мы хотим сформировать поток в котором несколько программ в одном transport stream и который сможет прожевать PBI-1400, источником сего transport stream должны стать несколько transport stream потоков в формате http. На сием языке я высказался? Вставить ник Quote
maxlapshin Posted February 21, 2013 Posted February 21, 2013 Да всё понятно. Человек хочет кучу SPTS HTTP MPEG-TS в один MPTS UDP MPEG-TS. Куда яснее то. Проблемы тут ровно две: 1) замикшировать потоки в один, перенумеровав пиды, потому что на разных SPTS потоках с вероятностью 99% они совпадут 2) выдать равномерно во времени. Это очень легко сделать, когда у тебя constant bitrate и железка, но очень сложно сделать когда у тебя variable bitrate и современная ОС. Вставить ник Quote
^rage^ Posted February 22, 2013 Posted February 22, 2013 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. не оно? Вставить ник Quote
boss Posted March 7, 2013 Posted March 7, 2013 можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream? Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать? . Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь. Вставить ник Quote
boss Posted March 7, 2013 Posted March 7, 2013 можно подробнее описать задачу? что значит "в 1 udp поток"? несколько программ в одном transport stream? Вообщем, предыстория: взяли мы как-то на работе и засунули в один udp поток на DMM-1400 несколько каналов и переконвертитровав в http с помощью Relaying отправили в соседний населенный пункт по интернету, там проделали обратную процедуру http-udp и скормили опять же DMM-1400 получив некоторое колл-во каналов. Плюсы: не надо использовать и содержать целый парк официальных карт. Минусы: операторы (провайдеры) разные, пинги не самые лучшие, происходят рассыпания. А теперь основная задача: Имеется колличество каналов в http из инета и надо их собрать в один udp поток, чтоб скормить его всё и тому же DMM-1400. Вопрос: как и чем его (udp поток) собрать? . Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь. Вставить ник Quote
maxim1 Posted April 1, 2013 Posted April 1, 2013 там проделали обратную процедуру http-udp А можно примеры вызова как Вы это сделали? на сайте указано только хттп в хттп локальный Вставить ник Quote
_J_ Posted April 1, 2013 Posted April 1, 2013 Всё это сделает mptsd. Сложит несколько spts в один mpts и ещё выровняет поток. Сам им собираю udp мультикаст, но в примерах видел иhttp. Это всё улетает в pbi-1400. Самое интересное - 1400 нормально принимают до 25 мегабит, далее нюансы. А вот его близнец, только в коробке pbi-4000-42s2 свободно принимает до 50 мегабит в одном потоке. Вставить ник Quote
^rage^ Posted April 2, 2013 Posted April 2, 2013 Аппаратное железо сделает вашу задачу решаемой. Передача через интернет без потерь с использованием избытчоности пакетов. Все это умеет делать ProStream. ЕСть деньги бращайтесь. а вы ценник озвучьте ;))) Вставить ник Quote
maxim1 Posted April 4, 2013 Posted April 4, 2013 Всё это сделает mptsd. Подскажите, а под freebsd ее можно установить (если да то как) ? Вставить ник Quote
_J_ Posted April 4, 2013 Posted April 4, 2013 Подскажите, а под freebsd ее можно установить (если да то как) ? Под фряхой не пробовал, но скорее всего кагобычно - ./конфигуре && маке && маке инсталл Вставить ник Quote
maxim1 Posted April 4, 2013 Posted April 4, 2013 как обычно не получается пишет #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 В чем может быть причина? Вставить ник Quote
_J_ Posted April 4, 2013 Posted April 4, 2013 В чем может быть причина? gmake? Сам поклонник фряхи, но для iptv использую линукс, центос 5/6. С фряхой както по iptv не срослось со времен когда она работала только с ss1 и то только по данным. Вставить ник Quote
wmsin Posted May 6, 2013 Posted May 6, 2013 чтобы 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, и как это обойти я так и не нашел, неужели пересобирать ядро? Вставить ник Quote
tolyamba Posted May 7, 2013 Author Posted May 7, 2013 MPTSD установили, запустили, в VLC всё идёт, а PBI-1400PS2 не видит поток, видит только LINK STATUS: 100M Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.