3

UDPXY手册

 2 years ago
source link: https://3mile.github.io/archives/2019/0530132110/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

udpxy的作用是将组播的数据流变成TCP协议的单播流,避免了在数据链路层广播,在无线网络中尤为需要。同时电视也不支持udp格式的视频流。

udpxy在官方的软件源中,直接安装即可

udpxy没有独立的配置文件,修改参数直接在启动脚本中完成

udpxy手册页 udpxy - UDP到HTTP多播流量中继守护程序。

概要

udpxy [-vTS] [-a <listenaddr>] [-m <mcast_ifc_addr>] [-c <clients>] [-l <logfile>] [-B <sizeK>] [-R <msgs>] [-H <sec>] [-n <nice_incr>] [-M <sec>] -p <port>

描述

udpxy是UDP到HTTP多播流量中继守护程序:它将UDP流量从给定的多播订阅转发到请求的HTTP客户端。

udpxy监听(在专用地址/端口上)客户端发出的HTTP请求。客户请求的结构应为:

http://{ address }:{ port }/{ cmd }/{ mgroup_address }[ SEP ]{ mgroup_port }
[SEP]
:|%|〜| + | - | ^

{cmd},在
UDP | RTP

其中地址和端口与udpxy 的侦听地址/端口组合匹配,mgroup_address:mgroup_port标识要预订的多播组/通道。

UDP
# udp命令将对已知类型的有效负载(例如MPEG-TS和MPEG-TS上的RTP)进行udpxy探测;

RTP
# rtp命令使udpxy假定RTP超过MPEG-TS有效载荷,从而跳过探测器。

udpxy将为每个新的中继请求启动一个单独的客户端进程(在活动客户端的指定限制内​​)。客户端进程将(从UDP套接字)接收的所有网络流量从指定的多播组中继/转发到请求的HTTP连接。

udpxy还支持一些管理请求:

http:// address:port / status /发回带有守护程序状态和客户端统计信息的HTML页面。
http:// address:port / restart /关闭所有活动连接并重启。
http://192.168.0.12:5056/udp/224.0.2.26:24012

http://192.168.0.12:5056/rtp/224.0.2.26:24012

http://192.168.0.15:5056/rtp/224.0.2.26^24055

http://192.168.0.15:5056/status/

选项

udpxy接受以下选项:

-v
# 启用详细输出[default = disabled ]。

-S
# 启用客户端统计信息[default = disabled ]。

-T
# 不要作为守护进程运行[default = daemon if root ]。

-a <listenaddr>
# 要侦听的IPv4地址/接口[default = 0.0.0.0 ]。

-m <mcast_ifc_addr>
# (组播)源的IPv4地址/接口[默认= 0.0.0.0 ]。

-c <clients>
# 要接受的最大客户端数[default = 3,max = 5000 ]。

-l <logfile>
# 将输出记录到文件[default = stderr ]。

-B <sizeK>
# 入站(多播)数据的缓冲区大小(65536,32Kb,1Mb)[默认= 2048字节 ]。

-R <msgs>
# 要缓冲的最大消息数(-1 = 全部)[default = 1 ]。

-H <sec>
# 在缓冲区中保存数据的最长时间(以秒为单位)(- 1 = 无限制)[默认值= 1 ]。

-n <nice_incr>
# 好的值增量[default = 0 ]。

-M <sec>
# 每M秒更新一次多播订阅(如果为0则跳过)[default = 0 ]。

-p <port>
# 端口。

有效载荷类型和处理 udpxy 通过中继数据包中的MPEG-TS有效载荷识别MPEG-TS和RTP ; 如果udpxy遇到RTP有效载荷,它会自动将其“转换”为MPEG-TS(通过剥离RTP头),以便不识别RTP的媒体播放器仍然可以播放该流。

到目前为止,没有为其他有效负载类型执行转换。

录制Mpeg流量 udpxy包括将捕获的流量记录为原始MPEG-TS流到文件中的功能。此功能通过udpxrec启用:与udpxy链接在一起的捆绑应用程序(作为一个可执行文件)。

udpxrec通过符号链接(名为udpxrec)调用udpxy可执行文件(即不重命名 udpxy可执行文件)。

udpxrec创建封装MPEG-TS段的MPEG文件; 某些媒体播放器不会播放此类文件; 为了使它们可播放,必须将流转码为MPEG-PS; vlc'知道'如何进行这样的转码,这是一个命令行示例:

vlc input-ts.mpg --sout =“#std {access = file,mux = ps,dst = out-ps.mpg}”

由此产生的MPEG-PS文件可以由大多数媒体播放器播放。

环境

udpxy利用以下环境变量来补充其命令行选项; 变量被考虑用于大多数人不需要经常更改的选项(或者从命令行使用简单不方便)。

注意:如果存在与功能环境变量相交的命令行开关,则交换机始终具有更高的优先级。

UDPXY_RCV_TMOUT
# 入站数据流(多播)的超时(秒),默认= 5 ;

UDPXY_DHOLD_TMOUT
# 在发送/刷新到客户端之前保持缓冲数据的超时(秒),默认值= 1 ;

UDPXY_SREAD_TMOUT
# 从监听socked(处理HTTP请求)读取超时(秒),默认= 1 ;

UDPXY_SWRITE_TMOUT
# 写入侦听socked(处理HTTP请求)的超时(秒),默认值= 1 ;

UDPXY_SSEL_TMOUT
# 在服务器循环中选择(2)的超时(秒)(如果使用pselect(2)则未使用),默认值= 30 ;

UDPXY_LQ_BACKLOG
# 侦听器套接字的backlog大小,默认值= 16 ;

UDPXY_SRV_RLWMARK
# 接收(m-cast)套接字上的低watermaek,默认= 0(未设置);

UDPXY_SSOCKBUF_NOSYNC
# 不同步入站(UDP)套接字的缓冲区大小(由-B设置的值),默认= 1(同步);

UDPXY_DSOCKBUF_NOSYNC
# 不同步出站(TCP)套接字的缓冲区大小(由-B设置的值),默认= 1(同步);

UDPXY_TCP_NODELAY
# 在新接受的套接字上禁用Nagle算法(更快的频道切换),默认= 1 ;

UDPXY_HTTP200_FTR_FILE
# 将给定文本文件的内容追加到HTTP 200响应中,default = none ;

UDPXY_HTTP200_FTR_LN
# 将文本(行)附加到HTTP 200响应,默认= 无 ;

UDPXY_ALLOW_PAUSES
# 如果在写入(2)上被阻塞,则继续读取数据直到缓冲区(-B <sizeK>)已满,默认= 禁用 ;

UDPXY_PAUSE_MSEC
# 在写入时阻塞时仅允许N毫秒读取数据(2)。

UDPXY_CONTENT_TYPE
# 在HTTP响应中指定自定义Content-Type。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK