Jump to content

UA.Transcoder IPTV/OTT v0.1


Планируется ли использовать в своем сервисе iptv  

22 members have voted

  1. 1. Транскодинг mpeg2 > h264

    • Актуально
    • Интересно
    • Для чего это нужно


Recommended Posts

О конструктиве головных станций и подготовки потоков написано много емких и интересных тем.

В этой теме предлогаю обсудить реализацию самой догоростоящей и ресурсоемкой составляющей головной станции - транскодинг потоков.

Прошу присоединяться к теме для обмена опытом.

Возможно у кого уже реализован проект и есть конечные цифры по вариантам и стоимости реализации для обработки ~120каналов.

 

__________

третий вариант ответа подразумевает (не планируется/не требуется/не используем и т.д)

Edited by mort1k
Link to post
Share on other sites
Опрос: Планируется ли использовать в своем сервисе iptv

 

а где не планируется? или не нужно? как-то предвзято опрашиваете.....

Edited by a_n_h
Link to post
Share on other sites

Нужен вариант "не интересно/не нужно". Он будет лидером))

Если так будет, это будет очень странно.

Клиенты упакованы различными  устройствами с поддержкой функций smart, устройств на android/ios.  На них не комфортно просматривать потоки mpegts с астры/udpxy.

На рынке появляются новые OTT компании (youtv, trinity tv, lanet tv) т.е. спрос есть. 

 

Есть подозрение, что отсутсвует дешевое/массовое решение для реализации этого. :D

Edited by mort1k
Link to post
Share on other sites

Тяжко решаемые задачи с mpegts-потоками:

1. время переключения каналов на смартах (иногда до 5 сек.)

2. поток не играется на всем перечне smart/ios/android устройств базовым плеером, нужен кастомный плеер с софтовым декодером

3. гемор с плюшками timeshift, catchup

4. кеширование потоков

Edited by mort1k
Link to post
Share on other sites

Оставлю это тут:

http://www.infomir.eu/journal/BROADVISION-Q12017-RU.pdf

 

конфигурация транскодера mpeg2 -> h264 на ~20 SD-каналов:

Gigabyte GA-H170M-HD3+Intel Core i5-6600+Kingston DDR3-1600 8192MB+GameMax ST-607+SanDisk Cruzer Fit Ultra 16GB

 

Инсталяция хостовой ОС:

#iso install centos 7.2.1511
yum -y install epel-release
yum  install htop mc wget

#change repo yum.repos.d  > vault
sed -i "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo &&\
sed -i "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Base.repo &&\
yum --releasever=7.2.1511 update
reboot

#install intel media SDK
cd /opt/pkgs
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/11167/MediaServerStudioEssentials2017R2.tar.gz
./install_sdk.sh
cd /opt/intel/mediasdk/include/ && mkdir mfx && cp *.h mfx
echo -e "prefix=/opt/intel/mediasdk \n\
exec_prefix=\${prefix} \n\
libdir=\${prefix}/lib/lin_x64 \n\
includedir=\${prefix}/include \n\
Name: libmfx \n\
Description: Intel Media SDK \n\
Version: 16.5 \n\
Libs: -L\${libdir} -lmfx -lva -lstdc++ -ldl -lva-drm -ldrm \n\
Cflags: -I\${includedir} -I/usr/include/libdrm" > /usr/lib64/pkgconfig/libmfx.pc

#docker
yum -y install yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum -y install docker-ce

#igmpproxy занятно для кластера транскодеров на базе swarm и services, с изменяемыми node label для балансировки.

Dockerfile контейнера с ffmpeg+qsv:

FROM centos:7.2.1511

ADD msdk2017r2_centos_rpm/* /tmp/

ENV LIBVA_DRIVERS_PATH="/opt/intel/mediasdk/lib64" \
    LIBVA_DRIVER_NAME="iHD" \
    MFX_HOME="/opt/intel/mediasdk"\
    PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" \
    SRC="/usr/local"

RUN  cd /tmp &&\
     sed -i "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo &&\
     sed -i "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-Base.repo &&\
     /tmp/install_sdk_CentOS.sh &&\
     mkdir /opt/intel/mediasdk/include/mfx &&\
     cp /opt/intel/mediasdk/include/*.h /opt/intel/mediasdk/include/mfx &&\
     echo -e "prefix=/opt/intel/mediasdk \n\
exec_prefix=\${prefix} \n\
libdir=\${prefix}/lib/lin_x64 \n\
includedir=\${prefix}/include \n\
Name: libmfx \n\
Description: Intel Media SDK \n\
Version: 16.5 \n\
Libs: -L\${libdir} -lmfx -lva -lstdc++ -ldl -lva-drm -ldrm \n\
Cflags: -I\${includedir} -I/usr/include/libdrm" > /usr/lib64/pkgconfig/libmfx.pc &&\
    git clone --depth 1 git://github.com/yasm/yasm.git && cd yasm && autoreconf -fiv && ./configure  && make && make install  && cd .. &&\
    git clone --depth 1 git://git.videolan.org/x264 && cd x264 && ./configure --enable-static --disable-cli && make && make install && cd .. &&\
    git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac && cd fdk-aac && autoreconf -fiv && ./configure --disable-shared && make && make install && cd .. &&\
    curl -O http://ffmpeg.org/releases/ffmpeg-3.2.4.tar.bz2 && tar xjvf ffmpeg-3.2.4.tar.bz2 && cd ffmpeg-3.2.4 &&\
    ./configure --extra-ldflags="-L${SRC}/lib -ldl" --disable-debug --disable-doc --disable-ffserver --disable-ffprobe --disable-ffplay --disable-devices --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libx264 --enable-libmfx --enable-avresample &&\
    make -j4 && make install && hash -r &&\
    yum -y groupremove "Development tools" && yum -y remove $(rpm -qa "*-devel") &&\
    yum -y remove wget urw-fonts asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto systemtap patchutils glibc-headers glibc-devel bc subversion perl mercurial kernel-headers openssh git cmake gettext swig &&\
    yum -y autoremove &&  yum clean all && rm -rf /tmp/* && rm -Rf /var/lib/yum/* && rm -Rf /var/lib/rpm/* && rm -Rf /var/cache/*

ENTRYPOINT ["/usr/local/bin/ffmpeg"]
CMD ["--help"]

или по вкусу:

https://github.com/01org/gstreamer-media-SDK

 

Прошу подключаться заинтересованых в паблик или ЛК для совместной обработки напильником :)

 

ЗЫ: cледующий этап: формирование, резервирование, кеширование и воспроизведение hls|dash-потоков на клиентских устройствах вообще даром)

Edited by mort1k
Link to post
Share on other sites

Оставлю это тут:

http://www.infomir.eu/journal/BROADVISION-Q12017-RU.pdf

 

конфигурация транскодера mpeg2 -> h263 на ~20 SD-каналов:

Gigabyte GA-H170M-HD3+Intel Core i5-6600+Kingston DDR4-2400 8192MB+GameMax ST-607+SanDisk Cruzer Fit Ultra 16GB


Немного офтоп , а как Вы умудрились память DDR4 воткнуть в мамку с DDR3 ?

Link to post
Share on other sites

Тяжко решаемые задачи с mpegts-потоками:

1. время переключения каналов на смартах (иногда до 5 сек.)

2. поток не играется на всем перечне smart/ios/android устройств базовым плеером, нужен кастомный плеер с софтовым декодером

3. гемор с плюшками timeshift, catchup

4. кеширование потоков

Для mpegts проблема с переключением решается буферизацией и отдачей потока клиенту сразу с key-frame, чего обычные проксики не умеют. Естественно, это возможно для unicast потоков, в multicast только буферизация на клиенте, что и выражается в долгом ожидании этого key-frame в потоке, как решение - пинать поставщика потоков, на тему уменьшения периода посылки этих ключевых кадров, ну или самому транскодировать, но это затратно.

 

При получении мультикаст mpegts (h264+mp2) ничто не мешает заниматься формированием hls, который сейчас играется на всех платформах в том или ином виде. Нужно только транскодировать аудио в aac и перепаковать контейнер, что не требует относительно больших затрат процессора, т.к. видео-поток остаётся неизменным.

 

PS. И да, вся основная функциональность давно есть в открытом ffmpeg для этих целей. В частности проблема буферизации решается средствами ffserver, там есть волшебный ключик StartSendOnKey.

Link to post
Share on other sites
как решение - пинать поставщика потоков, на тему уменьшения периода посылки этих ключевых кадров, ну или самому транскодировать, но это затратно.

тема как раз об этом! )

 

При получении мультикаст mpegts (h264+mp2) ничто не мешает заниматься формированием hls, который сейчас играется на всех платформах в том или ином виде. Нужно только транскодировать аудио в aac и перепаковать контейнер, что не требует относительно больших затрат процессора, т.к. видео-поток остаётся неизменным.

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

 

В частности проблема буферизации решается средствами ffserver, там есть волшебный ключик StartSendOnKey.

Ни разу не смотрел в сторону ffserver, интересно.

Edited by mort1k
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Quella
      An ONU with a CATV port serves as a gateway for IPTV services. It connects the fiber optic network to the user's premises, allowing the delivery of television content over the internet protocol. The CATV port enables the reception of television signals, which can be distributed to TVs within the home via traditional coaxial cables.
       
      And the VOIP port on an ONU facilitates Voice over Internet Protocol (VOIP) services. It enables the transmission of voice calls over the internet, converting analog voice signals into digital data packets that can be transmitted over the network. This port allows users to make phone calls using their internet connection instead of traditional telephone lines.
       
      Here, Exw Shenzhen 1600UAH (Shipping cost and tariff not included) you will get a WIFI 6 ONU with CATV, VOIP, USB port!
       
       
      For whole price, just contact viber/whatsapp/wechat by +8618086327779 for more details!
       
    • By Hope
      Актуальные каналы для операторов по всему миру доставка
      все свои локал.
      более 1000
      как для основного стрима так и для бекапа
       
      отвечаю только в личке
    • By forella
      проблема собвственно вот в чем: сейчас все больше каналов дают трансляцию по iptv, пускаем трансляцию iptv с обычного тюнера типо AMIKO через rca в аналоговые модуляторы, но проблема в том что если тюнер вкл\выкл трансляцию нужно запускать вручную потом через приложение на тюнере. (вариант поставить ups на эти тюнера не вариант=)
      Подскажите ктото готовое решение с iptv в аналог(по rca) либо может можно свой сервер собрать. т.е. такое решение которое после перезагрузки автоматически запустит каналы.
      знаю есть возможность собрать сервер к примеру чтоб взять каналы со спутника и пустить в iptv, а тут нужно с iptv в аналог.
    • By boroda
      Подскажите, какие приложения использовать для просмотра Иптв на старых самсунгах, LG, Philips  и прочих ТВ?
      ВОзможно есть популярные решения установки с флешки?
      Может кто-то знает контакты разработчиков приложения SmartUP, чтобы настроить его под себя и устанавливать абонентам? (не могу найти)
      Спасибо за любую информацию.
    • By Denis693
      Здравствуйте, предлагаем потоки для операторов.
      Наши сервера размещены в Украине, Европе.
      Более 1000 телеканалов: Украина(основные и региональные), Беларусь, Израиль, Польша, Германия, Греция, Азейбаржан, Прибалтика.
      Можем отдавать в форматах: http, hls, m4f
      Продажа от 10 каналов. 
      Цены обсуждаются. Возможна работа по договору.
      Поддержка и помощь в настройке. Поможем органировать трансляцию на вашем сервере с 0.
       
      Viber:  380987947872
      или в ЛС
×
×
  • Create New...