精华内容
下载资源
问答
  • 经过IP网络卫星接收机会主动推送TS over UDP 的SPTS (单播节目流),那么如何将UDP流转接成RTMP进入P2P流媒体服务器直播系统呢?答案是800Li 外部信号适配器软件! 特点: ü 转接各种网络协议包括RTSP, ...

    随着网络宽带业务和数字电视的普及,家家户户都已经在用IPTV/OTT-TV的方式来看电视节目。但是从音视频的画面质量来看,广电系统的电视信号质量最佳,可以真正实现1080P网络电视画面质量甚至是H.265 HEVC的4K超高清。

     

    随着技术的越来越进步,手机移动端的观看用户越来越多,已经渐渐形成趋势。 未来的观看人群在移动端火车上,地铁上,公交车上等等。那么如何将广电系统的电视信号转换成RTMP进入流媒体系统在互联网上进行分发,最终实现用苹果手机和安卓手机观看呢?

     

    先来看下广电的电视信号的前端设备,所有的前端设备就是将各种信号转换成IP流(SPTS单节目传输流)的设备。

     

    1.     把卫星信号转换成IP码流信号的设备。

    2.     把压缩的音视频(包括复合视频,HDMI,SDI)转换成IP码流的设备。

    3.     把加密的卫星节目或者本地的加密节目转换成IP码流的设备。

    1

    主要分析下卫星电视信号如何转出成IP网络流输出所需要的IP卫星接收机:

    IP卫星接收机支持8路DVB-S/ DVB-S2卫星射频信号输入,输入信号被解调成TS流,再封装成IP(TS over UDP)格式,并通过1路千兆网口输出64路IP(SPTS)流,主要应用于IPTV直播系统的射频信号转播。一台设备可以解决64套节目的转发,性价比超强。

    特点

    ü  支持DVB-S、DVB-S2(选件)卫星信号输入(共8路射频F头输入)

    ü  支持TS over UDP输出

    ü  支持输入、输出信号的实时监测

    ü  支持中英文液晶显示,前面板按键操作和远程网管控制

    ü  高可靠性设计,运行稳定

    经过IP网络卫星接收机会主动推送TS over UDP 的SPTS (单播节目流),那么如何将UDP流转接成RTMP进入P2P流媒体服务器直播系统呢?答案是800Li 外部信号适配器软件!

    特点:

    ü  转接各种网络协议包括RTSP, RTMP, HTTP,UDP,MMS等成RTMP协议;

    ü  主动推送至流媒体服务器P2P直播系统(如800Li Media Server);

    ü  源流式H.264/AAC编码,可以无需编码直接转接;

    ü  支持编码成H.264/AAC并推送至流媒体服务器;

    ü  支持添加水印(转码模式);

    ü  支持同时多路批量转接和转码。

    595c5afbcbd62.jpg

     

    800Li Media Server 接收标准的RTMP流并输出HTTP的M3U8流和自定义的P2P协议流以便手机端APP接收。

    手机端APP演示

    2

    转载于:https://my.oschina.net/u/3616853/blog/1457008

    展开全文
  • 通过前端设备得到单节目流的TSUDP协议),用800Li协议流软件(外部信号适配器软件)即可成RTMP进入800Li  Flash P2P 流媒体直播系统 在互联网进行网络分发,从而可以在PC,手机,机顶盒上进行观看电视节目。...

    采集卫星电视信号,需要采集的前端设备,即采集信号转换成IP(SPTS)的设备。包括了3个种类:

    1.     把卫星信号转换成IP码流信号的设备

    2.     把压缩的音视频(包括复合视频,HDMI,SDI)转换成IP码流的设备

    3.     把加密的卫星节目或者本地的加密节目转换成IP码流的设备

     

    1.    八路IP卫星接收机(IPTV)概述

    八路IP卫星接收机支持8路DVB-S/ DVB-S2卫星射频信号输入,输入信号被解调成TS流,再封装成IP (TS over UDP)格式,并通过1路千兆网口输出64路IP(SPTS)流,主要应用于IPTV直播系统的射频信号转播。一台设备可以解决64套节目的转发,性价比超强。

    特点

    u  支持DVB-S、DVB-S2(选件)卫星信号输入(共8路射频F头输入)

    u  支持TS over UDP输出

    u  支持输入、输出信号的实时监测

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

    u  高可靠性设计,运行稳定

    2.    八路HDMI高清编码器概述

    八路HDMI高清编码器支持8路HDMI高清信号输入,通过H.264视频和MPEG-1音频编码形成TS复用流,输出接口为ASI和IP(TS over UDP)。主要应用于数字电视前端直播系统的高清信号转播。

    特点

    u  采用全硬件压缩,实时性强,性能稳定

    u  支持1080P/I,720P等多种格式

    u  支持所有采样率(32KHz、44.1KHz、48KHz等)的音频信号输入

    u  支持音量调节

    u  采用高清HDMI 接口,支持HDCP

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

    3.    八合一编码器概述

    八合一编码器支持8路模拟复合视频以及单声道或立体声输入,通过MPEG-2视频和MPEG-1音频编码形成8路复用码流(8*SPTS)。输出接口为ASI和IP(TS over UDP)。该设备具有高集成,低成本的优势,可广泛应用于无线/有线/IPTV等数字电视播出系统中。

    特点

    u  采用全硬件压缩,实时性强,性能稳定

    u  8路CVBS视频和8组非平衡立体声音频输入

    u  支持所有采样率(32KHz、44.1KHz、48KHz等)的音频信号输入

    u  支持MPEG-2 MP@ML (4:2:0)编码

     

    u  支持中英文液晶显示,前面板按键操作和远程网管控制

     

    通过前端设备得到单节目流的TS(UDP协议),用800Li转协议流软件(外部信号适配器软件)即可转成RTMP进入800Li Flash P2P 流媒体直播系统在互联网进行网络分发,从而可以在PC,手机,机顶盒上进行观看电视节目。 



    展开全文
  • HLS转UDP协议转换器的实现

    千次阅读 2017-11-29 16:39:41
    由于业务的需要,笔者所处的业务环境内的视频传输基本采用的是UDP的方式,为了便于对各类型的视频源进行...本文探索了对HLS视频流媒体服务提供的索引文件下载、索引文件内容分析、TS切片下载、UDP转发的基础业务流程。

     

    1.   摘要

    由于业务的需要,笔者所处的业务环境内的视频传输基本采用的是UDP的方式,为了便于对各类型的视频源进行统一的接入、传输、转发往往需要进行协议的转换。本文探索了对HLS视频流媒体服务提供的索引文件下载、索引文件内容分析、TS切片下载、UDP转发的基础业务流程。

    2.   HLS视频服务系统

    HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP流媒体网络传输协议。它的工作原理是把整个流分成一个个小的基于HTTP的TS切片文件来下载。在开始一个流媒体会话时,客户端会下载一个包含元数据的extendedM3U (m3u8)playlist文件,用于寻找可用的媒体流TS切片文件。HLS只请求基本的HTTP报文,与实时传输协议(RTP)、用户数据表协议(UDP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。

    3.   M3u8文件示意

        通过ffmpeg+nginx+摄像头构建一个基本的HLS推流服务器,通过浏览器访问如下地址:http://192.168.1.102:10000/hls/camera/index.m3u8,可以下载一个名为index.m3u8的文件,用文本编辑器打开,内容如下:

                   #EXTM3U             

    #EXT-X-VERSION:3

    #EXT-X-MEDIA-SEQUENCE:121

    #EXT-X-TARGETDURATION:14

    #EXTINF:6.360,

    121.ts

    #EXTINF:10.000,

    122.ts

    #EXTINF:13.720,

    123.ts

    这里面重点关注EXTINF之后的时长、.ts对应切片名称,根据时长、下载的切片大小可以计算出码率。

    4.   M3u8分析模块

    虽然python本身对http的处理提供了丰富的机制和手段,但是相对于m3u8 parser模块对于索引文件的处理来说还是有些单薄。m3u8 parser对于HLS的索引文件处理非常好用,基于m3u8分析器,能够非常方便的实现索引文件下载、内容分析、字段对应值的读取。

    m3u8的下载可以通过pip进行,如果开发环境安装了多个版本,需要明确下载到相应的python版本下面。比如Python2.7的版本执行程序为python2,则下载命令为:

    [root@localhostffmpeg]$ python2 -m pip install m3u8

    下载完毕后在代码中即可通过importm3u8引用

    5.   开发环境

          系统:CentOS 7.4

          Python版本:3.6.3

          IDE:Pycharm

     

    6.   HLS分析下载实现

    类HLSDownloader为线程类,初始化时传入待下载的URL和TS切片内容存储队列。具体实现见如下代码

    importthreading,socket,time

    import m3u8 as hls

    importurllib.request as request

    classHLSDownloader(threading.Thread):

     

        def __init__(self,clip_queue,url):

     

            self.url = url

     

            self.clip_queue = clip_queue

     

            threading.Thread.__init__(self)

     

     

        def DownloadTS(self,url,duration):

     

            response = request.urlopen(url)

     

            if(200 == response.code):

     

                context = response.read()

     

               self.clip_queue.put((context,duration))

     

     

        def run(self):

     

            ts_files = []

     

            while (True):

     

                content = hls.load(self.url)

     

                slic = len(content.segments)

     

                for i in range(slic):

     

                    if((content.segments[i].uri ints_files) == False):

     

                        print("startingDownload %s" %(content.segments[i].absolute_uri))

     

                       ts_files.append(content.segments[i].uri)

     

                       self.DownloadTS(content.segments[i].absolute_uri,content.segments[i].duration)

     

                time.sleep(content.target_duration)

    7.   UDP转发实现

        通过绑定转发使用的网口、组播地址以及指定接受TS的队列实现从队列读取TS切片内容并通过指定网口将TS数据组播到指定地址和端口

    importthreading,socket,time

    importurllib.request as request

    class UDPSender(threading.Thread):

        def__init__(self, clip_queue, localAddr, groupAddr):

     

           self.clip_queue = clip_queue

           self.groupAddr = groupAddr

     

     

           threading.Thread.__init__(self)

     

           sockHandle = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

            status =sockHandle.bind(localAddr)

            status =sockHandle.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

           self.sockHandle = sockHandle

     

     

        defrun(self):

     

           udp_frame_size = 7 * 188

     

            #每200ms秒发送一次

           send_interval = 200/1000

     

            while(True):

     

                node= self.clip_queue.get()

                data= node[0]

               duration = node[1]

     

               data_size = len(data)

               frames = data_size//udp_frame_size

     

               total_times = int(duration * (1/send_interval))

                # 根据TS传输速率控制发送速度,太快容易丢包,

               rest_interval = data_size//total_times

     

               sent_data_size = 0

                foreach in range(frames):

     

                   frame = data[each * udp_frame_size : (each + 1) * udp_frame_size]

                   sent_data_size += self.sockHandle.sendto(frame, self.groupAddr)

     

                   if(sent_data_size > rest_interval ):

                       time.sleep(send_interval)

                       sent_data_size = 0

     

               self.sockHandle.sendto(data[each * udp_frame_size : data_size],self.groupAddr)

     

    8.   主控程序入口

    from queue import Queue

    from taskmanager import HLSDownloader,UDPSender

    import fcntl,socket,struct

     

    def get_ip_address(ifname):

        s =socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        keys =s.fileno()

        returnsocket.inet_ntoa(fcntl.ioctl(keys,0x8915,struct.pack('256s',ifname[:15].encode()))[20:24])

     

     

    def main():

        clip_deque =Queue(5)

        url ='http://192.168.1.102:10000/hls/camera/index.m3u8'

        mdloader =HLSDownloader(clip_deque,url)

       mdloader.start()

     

        ip =get_ip_address('eth0')

        udpSender =UDPSender(clip_deque,(ip,11000),('230.1.1.1',5001))

       udpSender.start()

     

    if __name__ == '__main__':

    main()

     

    9.   业务流程

    9.1  启动nginx

      笔者手上的nginx不是标准版本,具备了rtmp直播流接收,然后自动形成m3u8索引文件、TS切片文件,提供http服务。

     

    9.2  启动ffmpeg

    视频部分实时采集摄像头、音频部分实时采集麦克风。Ffmpeg的命令如下:

    ffmpeg -f dshow -i video="IntegratedCamera":audio="麦克风 (High Definition Audio 设备)" -aspect4:3 -r 25 -vcodec libx264  -acodec aac-ar 44100 -ab 64k  -ac 2 -f flvrtmp://127.0.0.1:1935/live/camera

    正常运行后ffmpeg便可源源不断的打印采集、编码日志

    9.3  原始HLS流查看

    可以通过手机、VLC查看推送的直播流,访问地址是http://nginx服务器IP:10000/hls/camera/index.m3u8


    9.4  转发后数据查看

        通过VLC打开udp://@230.1.1.1:5001即可看到流畅的传播画面

       

     

    展开全文
  • 一些配置文件和POC代码将Apache Cassandra用作跨多个数据中心的HLS块的分布式存储,并使用脚本将UDP MPEG-TS转换/转码为HLS,反之亦然。 这个想法来自Globo.com的FIFA 14世界杯直播视频平台。 cassandra-> Apache ...
  • udp转换hls进行直播的方法

    千次阅读 2018-01-08 18:03:22
    若你的编码器输出TS组播或者单播的UDP流,我们可以通过AMS接收这UDP流,并提供HLS直播服务。利用AMS接收UDP提供HLS直播非常简单,只需要添加一个拉流的直播频道即可。  下面我们详细讲解一下: 有个编码器向我的...
    若你的编码器输出TS组播或者单播的UDP流,我们可以通过AMS接收这UDP流,并提供HLS直播服务。利用AMS接收UDP提供HLS直播非常简单,只需要添加一个拉流的直播频道即可。
    

        下面我们详细讲解一下:

    有个编码器向我的电脑进行UDP单播ts流,我电脑IP地址为:192.168.2.10,发流的端口号是9008,可以通过vlc看到直播,VLC中输入打开udp://@192.168.2.10:9008,就可以打开观看到。如下图:

    我们关闭VLC。采用调试的方式开启AMS,这样方便看日志。

    双击AMS目录下的AokuMediaServer.exe,看到如下窗口,说明AMS已经成功运行。


    AMS正常运行后,在浏览器中输入http://192.168.2.10:9001,进入后台,后台默认登陆用户名是admin,密码是123456。点击“添加直播频道”,弹出的框中,输入基本信息,如下:


    高级配置如下:


    请确认:选择的是拉流方式,立刻启动,输入流地址:udp://@192.168.2.10:9008,启用HLS,如上图。点击确定。AMS将成功拉到UDP流了,如下图,我们可以通过后台看到显示的直播流。

     


    同时AMS已经把得到的UDP流进行HLS直播了,通过手机浏览器访问http://192.168.2.10:9001,就可以看到直播了,如下图:


    【其他功能】

    1、通过AMS拉到的udp还可以转发到其他RTMP服务器;

    2、通过AMS拉到的udp流同时以rtmp,rtsp,flv_over_http, ts_over_http对外提供直播;

    3、可以在直播流中实时或者定时插入广告视频流;

    4、可以通过AMS对udp流进行收录,录制成flv或者mp4视频文件。

    展开全文
  • 如何将ASI信号传输的数据成IP网络流在互联网上进行分发呢?这样的话,我们就可以在PC, PAD, 安卓手机,苹果...ASI转码器,ASI(信号为TS流)接入输出UDP网络流。(硬件) 外部信号适配器软件。 (转接UDP成RTMP并主
  • cap包转ts流工具

    2009-10-18 16:42:55
    支持TCP和UDP两种方式。能够把cap包的内容转换成TS流。
  • srt2rtmp流程:接收srt data,然后decode,封装为rtmp推送给rtmp server。 流程的关键是一个decode func。 int ts_demux::decode(SRT_DATA_MSG_PTR data_ptr, TS_DATA_CALLBACK_PTR callback) { int ret = -1; ...
  • 主要使用了 dpkt 解析的pcap 文件,然后按照 velodyne 的协议解析UDP数据,话不多说,直接上代码吧# -*- coding: UTF-8 -*- import dpkt import collections # 有序字典需要的模块 import time import numpy as np ...
  • UDP-RTP协议解析

    千次阅读 2016-10-25 11:41:24
    自http://blog.csdn.net/leixiaohua1020/article/details/50535230 1、原理 3、名词解释 MPEG-TS(Transport Stream“传输流”;又称TS、TP、MPEG-TS)是用于音效、图像与数据的通信协定,最早应用于DVD的...
  • 使用VLC发送TS流与播放TS

    千次阅读 2017-08-16 19:51:33
    自http://blog.csdn.net/liukang325/article/details/43528991 如何使用VLC发送TS流 1、添加一个文件至VLC 2、选择串流,继续 3、选择UDP,点击添加 4、输入地址及端口 5、选择h....
  • 最近遇到好几个人在问ffmpeg如何...为简单处理,我这里只简单介绍UDP接收TS流,其实只要是socket接收的都可以类似处理。 #include "utils.h" #include #include #include UdpQueue recvqueue; UdpParam udpP
  • ffmpeg 录制udp电视信号,视频文件

    千次阅读 2014-04-02 15:50:52
    ffmpeg -i udp://@:6980 -map 0:p:259 -acodec copy -vcodec copy -sameq dv.ts    2:同时出多路: ffmpeg -i /root/12.mpg -vcodec libx264 -b 128k -s 320x240 -r 20 -g 60 -profile baseline -vlevel
  • 广播传输相关的项目,需求是UDP发送TS到IP/ASI网关,网关经过ASI输出到激励器,再由激励器通过射频天线输出,接收端为终端机顶盒。  因为以前没有怎么接触过广播相关的东西,一开始认为用C#写个UDP的程序将TS发出...
  • RTSP/TS-UDP/RTMP/HLS/SRTSRT,即解码器作为SRT的Caller,与其他SRT接收端进行连接。 使本地RTSP和RTMP等多种网络流能够顺利融入SRT系统,提高视频转发的灵活性。 RTSP/TS-UDP/RTMP/HLS/SRTSRT,即解码器作为...
  • 实时流媒体处理,PS(TSES; 设备状态监测、云台控制、录像检索、回放; 提供RTSP、RTMP、HTTP-FLV、HLS等多种协议流输出; 对外提供服务器获取状态、信息,控制等HTTP API接口。 国标流传输模式 UDP 服务端...
  • 两个例子 rtsp转rtmp: ffmpeg -i rtsp://192.168.10.66:554/hdmi -c copy -f flv rtmp://192.168...http转udp组播: ffmpeg -i http://192.168.10.66:80/hdmi -c copy -f mpegts udp://@238.0.0.
  • vlc tcp://172.17.0.199:7799 --sout '#duplicate{dst="transcode{venc=x264{profile=baseline},vcodec=h264,acodec=mpga,vb=644,ab=56}:std{access=udp,mux=ts,dst=172.17.0.219:1234}"}' 使用VLC...
  • 一·目的:本文所讲是通过PCR控制TS文件发送给UDP的速率,以便用vlc来接收数据时不会产生“空”,或溢出的情况。  截取一位网友的话: 泛泛讲点其他的东西,为什么要用pcr来控制发送速度:通常硬件ASI卡传
  • 我看到大量有关将raspivid流直接传递给...类似于:如何使用子流程(Python)将Picamera视频转换为FFMPEGraspivid -n -w 480 -h 320 -b 300000 -fps 15 -t 0 -o - | ffmpeg -i - -f mpegts udp://192.168.1.2:8090f...
  • ffmpeg -protocol_whitelist file,rtp,udp -use_wallclock_as_timestamps 1 -i test.sdp -c:v copy -an -fflags nobuffer -flags low_delay -fflags flush_packets -f rtsp rtsp://127.0.0.1:5554/46EC81D6-1025-40...
  • 为简单处理,我这里只简单介绍UDP接收TS流,其实只要是socket接收的都可以类似处理。 #include "utils.h" #include <pthread.h> #include <libavcodec/avcodec.h> #incl...
  • 通过UDP和TCP的RTP / AVP 通过OSCam实现的DVB-API协议对频道进行解密,因此您需要dvbcsa库和官方订阅 FILE输入,从TS文件读取 流输入,从多播/单播输入中读取 CHILDPIPE输入,从PIPE输入读取,例如wget
  • ffmpeg常用的命令

    千次阅读 2017-12-28 16:55:47
    ffmpeg -re -i /media/1.mpg -r 1800 -c copy -f mpegts udp://239.1.1.1:7000 ffmpeg -re -i ./test.ts -vcodec copy -acodec copy -f mpegts udp://239.168.1.212:8888?pkt_size=1316 1.1. 发送H.264裸流
  • vlc做转发的命令

    2017-11-26 18:42:00
    将一个udp的多播流转发复制到...vlc udp://@239.0.0.45:7000 :sout=#duplicate{dst=std{access=http,mux=ts,dst=:9000}} :sout-keep 本文自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/3341...
  • 一、云编辑1.1. 七天素材回看功能1. 素材回看的操作流程step1: 整体界面step2: 频道、日期、节目选择好后启动回看2. 回看功能架构图3.... M3U8切片服务器集群从交换机上接收 “UDP+MPEG2TS”数据...
  • 实时流媒体处理,PS(TSES; 设备状态监测、云台控制、录像检索、回放; 提供RTSP、RTMP、HTTP-FLV、HLS等多种协议流输出; 对外提供服务器获取状态、信息,控制等HTTP API接口。 国标流三种传输模式 UDP...
  • 在使用ffmpeg解码播放TS流的时候(例如之前写过的UDP组播流),在连接时往往需要耗费大量时间。经过debug发现是av_find_stream_info(已抛弃,现在使用的是avformat_find_stream_info)这个方法十分耗时,而且是阻塞...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

ts转udp