前言
Github
地址:Github
地址:
专辑地址:FFplay专辑
16.18 rtmp
实时消息传递协议。
实时消息传递协议(RTMP
)用于跨TCP/IP
网络流式传输多媒体内容。
语法如下:
rtmp://[username:password@]server[:port][/app][/instance][/playpath]
参数如下:
username
可选类型的用户名(主要用于发布的时候使用)。
password
可选类型的密码(主要用于发布的时候使用)。
server
RTMP
服务器的地址。
port
要使用的TCP
端口号(默认为1935
)。
app
它是要访问的应用程序的名称。它通常对应于RTMP
服务器上安装应用程序的路径(例如/ ondemand /
,/ flash / live /
等)。您也可以通过rtmp_app
选项覆盖从URI
解析的值。
playpath
它是参考app
中指定的应用程序播放的资源的路径或名称,可以以mp4:
作为前缀。您也可以通过rtmp_playpath
选项覆盖从URI
解析的值。
listen
充当服务器,侦听传入连接。
timeout
等待传入连接的最长时间。意思是倾听。
此外,可以通过命令行选项(或通过AVOptions
在代码中)设置以下参数:
`rtmp_app`
要在RTMP
服务器上连接的应用程序的名称。此选项会覆盖URI
中指定的参数。
rtmp_buffer
设置客户端缓冲时间(以毫秒为单位)。默认值为3000
。
rtmp_conn
从字符串解析的额外的任意AMF连接参数,例如,像B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0
。每个值都以一个表示类型的字符作为前缀,B
表示布尔值,N
表示数字,S
表示字符串,O
表示对象,Z
表示null
,后跟冒号。对于布尔值,数据必须分别为0
或1
表示FALSE
或TRUE
。同样,对于对象,数据必须分别为0
或1
才能结束或开始对象。可以通过在类型前加上N
并在值之前指定名称(即NB:myFlag:1
)来命名子对象中的数据项。可以多次使用该选项来构造任意AMF序列。
rtmp_flashver
用于运行SWF
播放器的Flash
插件的版本。默认值为LNX 9,0,124,2
。 (发布时,默认为FMLE/3.0
(兼容;
rtmp_flush_interval
在同一请求中刷新的数据包数(仅限RTMPT
)。默认值为10
。
rtmp_live
指定媒体是实时流。不能在直播中恢复或寻找。默认值为any
,这意味着订户首先尝试播放在播放规范中指定的直播流。如果找不到该名称的直播流,则播放录制的流。其他可能的值是实时和记录。
rtmp_pageurl
嵌入媒体的网页的URL
。默认情况下,不会发送任何值。
rtmp_playpath
要播放或发布的流标识符。此选项会覆盖URI
中指定的参数。
rtmp_subscribe
要订阅的直播流的名称。默认情况下,不会发送任何值。仅在指定选项或rtmp_live
设置为live
时才会发送。
rtmp_swfhash
解压缩的SWF
文件的SHA256
哈希值(32
字节)。
rtmp_swfsize
SWFVerification
所需的解压缩SWF
文件的大小。
rtmp_swfurl
媒体的SWF
播放器的URL
。默认情况下,不会发送任何值。
rtmp_swfverify
播放器swf
文件的URL
,自动计算散列/大小。
rtmp_tcurl
目标流的URL
。默认为proto://host[:port]/app
。
例如,使用来自RTMP
服务器myserver
的应用程序vod
中的ffplay
读取名为sample
的多媒体资源:
ffplay rtmp://myserver/vod/sample
要发布到受密码保护的服务器,请分别传递playpath
和app
名称:
ffmpeg -re -i -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
16.19 rtmpe
加密的实时消息传递协议。
加密实时消息传递协议(RTMPE
)用于在标准加密原语内流式传输多媒体内容,包括Diffie-Hellman
密钥交换和HMACSHA256
,生成一对RC4
密钥。
16.20 rtmps
通过安全SSL
连接的实时消息传递协议。
实时消息传递协议(RTMPS
)用于跨加密连接流式传输多媒体内容。
16.21 rtmpt
通过HTTP
进行管道传输的实时消息传递协议。
通过HTTP(RTMPT)
管道传输的实时消息传递协议用于在HTTP
请求中流式传输多媒体内容以遍历防火墙。
16.22 rtmpte
通过HTTP
管道传输的加密实时消息传递协议。
通过HTTP
管道传输的加密实时消息传递协议(RTMPTE
)用于在HTTP
请求中流式传输多媒体内容以遍历防火墙。
16.23 rtmpts
通过HTTPS
进行管道传输的实时消息传递协议。
通过HTTPS(RTMPTS)
管道传输的实时消息传递协议用于在HTTPS
请求中流式传输多媒体内容以遍历防火墙。
16.24 libsmbclient
libsmbclient
允许用户操作CIFS/SMB
网络资源。
语法如下:
smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
该协议接受以下选项。
timeout
设置基础低级操作使用的套接字I/O
操作的超时(以毫秒为单位)。 默认情况下,它设置为-1
,这意味着未指定超时。
truncate
如果设置为1
,则在写入时截断现有文件。值为0
可防止截断。 默认值为1
。
workgrou
设置用于建立连接的工作组。 默认情况下,未指定工作组。
有关更多信息,请参阅:http://www.samba.org/。
16.25 libssh
通过libssh
安全文件传输协议
使用SFTP
协议读取或写入远程资源。
语法如下:
sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
该协议接受以下选项。
timeout
设置基础低级操作使用的套接字I/O
操作的超时。 默认情况下,它设置为-1
,这意味着未指定超时。
truncate
如果设置为1
,则在写入时截断现有文件。值为0
可防止截断。 默认值为1
。
PRIVATE_KEY
指定包含在授权期间使用的私钥的文件的路径。 默认情况下,libssh
搜索~/.ssh/
目录中的键。
示例:播放存储在远程服务器上的文件。
ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
16.26 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
通过librtmp
支持实时消息传递协议及其变体。
在配置期间需要存在librtmp
标头和库。 需要使用-enable-librtmp
显式配置构建。 如果启用,这将替换本机RTMP
协议。
该协议提供了大多数客户端功能和支持RTMP
所需的一些服务器功能,通过HTTP(RTMPT)
管道传输的RTMP
,加密的RTMP(RTMPE)
,基于SSL/TLS
的RTMP(RTMPS)
以及这些加密类型的管道变体(RTMPTE,RTMPTS
)。
所需的语法是:
rtmp_proto://server[:port][/app][/playpath] options
其中rtmp_proto
是对应于每个RTMP
变体的字符串rtmp
,rtmpt
,rtmpe
,rtmps
,rtmpte
,rtmpts
之一,并且服务器,端口,app
和playpat
h具有与指定相同的含义 用于RTMP
本机协议。 options
包含key = val
形式的空格分隔选项列表。
有关更多信息,请参见librtmp手册页(man 3 librtmp
)。
例如,使用ffmpeg
将文件实时流式传输到RTMP
服务器:
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
要使用ffplay
播放相同的流:
ffplay "rtmp://myserver/live/mystream live=1"
16.27 rtp
实时传输协议。
RTP URL
所需的语法是:rtp://hostname[:port][?option=val...]
port
指定要使用的RTP
端口。
支持以下URL
选项:
TTL = N
设置TTL (Time-To-Live)
值(仅适用于多播)。
rtcpport = N
将远程RTCP
端口设置为n
。
localrtpport = N
将本地RTP
端口设置为n
。
localrtcpport = N
将本地RTCP端口设置为n。
pkt_size = N
将最大数据包大小(以字节为单位)设置为n
。
connect=0|1
在UDP
套接字上设置connect()
(如果设置为1
)或不设置(如果设置为0
)。
sources=ip[,ip]
列出允许的源IP
地址。
block=ip[,ip]
列出不允许(阻止)的源IP
地址。
write_to_source=0|1
将数据包发送到最新接收数据包的源地址(如果设置为1
)或默认远程地址(如果设置为0
)。
localport=n
将本地RTP
端口设置为n
。
这是一个弃用的选项。相反,应该使用localrtpport
。
重要笔记:
1.如果未设置rtcpport
,则RTCP
端口将设置为RTP
端口值加1
。
2.如果未设置localrtpport
(本地RTP
端口),则任何可用端口都将用于本地RTP
和RTCP
端口。
3.如果未设置localrtcpport
(本地RTCP
端口),则将其设置为本地RTP
端口值加1
。
16.28 rtsp
实时流媒体协议。
RTSP
在技术上不是libavformat
中的协议处理程序,它是一个分离器和多路复用器。 分路器支持普通RTSP
(通过RTP
传输数据;例如Apple
和Microsoft
使用)和Real-RTSP
(通过RDT
传输数据)。
可以使用muxer
将流使用RTSP ANNOUNCE
发送到支持它的服务器(目前是Darwin Streaming Server
和Mischa Spiegelmock
的RTSP
服务器)。
RTSP
网址所需的语法是:
rtsp://hostname[:port]/path
可以在ffmpeg/ffplay
命令行上设置选项,也可以通过AVOptions
或avformat_open_input
在代码中设置选项。
支持如下选项:
initial_pause
如果设置为1
,请勿立即开始播放流。默认值为0
。
rtsp_transport
设置RTSP
传输协议。
它接受以下值:
值 | 解释 |
---|---|
UDP | 使用UDP 作为较低的传输协议。 |
TCP | 使用TCP (RTSP 控制信道内的交织)作为较低的传输协议。 |
udp_multicast | 使用UDP 多播作为较低的传输协议。 |
HTTP | 使用HTTP 管道作为较低的传输协议,这对于传递代理很有用 |
可以指定多个较低的传输协议,在这种情况下,它们一次尝试一个(如果一个设置失败,则尝试下一个)。 对于复用器,仅支持tcp
和udp
选项。
rtsp_flags
设置RTSP标志。
能接受的值如下表所述:
值 | 解释 |
---|---|
filter_src | 仅接受来自协商的对等地址和端口的数据包 |
listen | 充当服务器,侦听传入连接 |
prefer_tcp | 如果TCP 可用作RTSP RTP 传输,请首先尝试使用TCP 进行RTP 传输 |
默认值为none
。
allowed_media_types
设置要从服务器接受的媒体类型。
接受以下标志:
值 |
---|
video |
audio |
data |
默认情况下,它接受所有媒体类型。
min_port
设置最小本地UDP
端口。 默认值为5000
。
max_port
设置最大本地UDP
端口。 默认值为65000
。
timeout
设置等待传入连接的最大超时(以秒为单位)。
值-1
表示无限(默认)。 此选项意味着rtsp_flags
设置为listen
。
reorder_queue_size
设置要缓冲的数据包数以处理重新排序的数据包。
stimeout
设置套接字TCP I/O
超时(以微秒为单位)。
user-agent
覆盖User-Agent
标头。 如果未指定,则默认为libavformat
标识符字符串。
当通过UDP
接收数据时,解复用器尝试重新排序接收到的数据包(因为它们可能无序到达,或者数据包可能完全丢失)。 可以通过将最大解复用延迟设置为零(通过AVFormatContext
的max_delay
字段)来禁用此功能。
当使用ffplay
观看多比特率Real-RTSP
流时,可以分别为视频和音频选择-vst n
和-ast n
来显示要显示的流,并且可以通过按v
和a
来即时切换。
16.28.1 Examples
以下示例均使用ffplay
和ffmpeg
工具。
通过UDP
观察流,最大重新排序延迟为0.5
秒:
ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
观看通过HTTP
管道传输的流:
ffplay -rtsp_transport http rtsp://server/video.mp4
实时将流发送到RTSP
服务器,供其他人观看:
ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
实时接收流:
ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp输出
16.29 sap
会话公告协议(RFC 2974
)。 这在技术上不是libavformat
中的协议处理程序,它是一个muxer
和demuxer
。 它通过在单独的端口上定期通知流的SDP
,用于RTP
流的信令。
16.29.1 Muxer
提供给多路复用器的SAP url
的语法是:
sap://destination[:port][?options]
RTP
数据包在端口端口上发送到目标,如果没有指定端口,则发送到端口5004
。选项是一个&
分离列表。支持以下选项:
announce_addr=address
指定发送通知的目标IP地址。如果省略,则通知将发送到常用的SAP公告多播地址224.2.127.254(sap.mcast.net)
或ff0e :: 2:7ffe(
如果destination
是IPv6
地址)。
announce_port=port
指定发送通知的端口,如果未指定,则默认为9875
。
ttl=ttl
指定通知和RTP数据包的生存时间值,默认为255
。
same_port=0|1
如果设置为1
,则在同一端口对上发送所有RTP
流。如果为零(默认值),则所有流都在唯一端口上发送,端口2上的每个流都比前一个更高。VLC / Live555
要求将其设置为1
,以便能够接收流。libavformat
中用于接收的RTP
堆栈要求在唯一端口上发送所有流。
示例命令行如下。
要在本地子网上广播流,以便在VLC
中观看:
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1
同样,在ffplay
中观看:
ffmpeg -re -i input -f sap sap://224.0.0.255
通过IPv6
观看ffplay
:
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]
16.29.2 Demuxer
提供给解复用程序的SAP url
的语法是:
sap://[address][:port]
address
是侦听通知的多播地址,如果省略,则使用默认的224.2.127.254(sap.mcast.net)
。 port
是要监听的端口,如果省略则为9875
。
解复用器侦听给定地址和端口的通知。 收到通知后,它会尝试接收该特定流。
示例命令行如下:
要播放在正常SAP多播地址上公布的第一个流:
ffplay sap://
要播放默认IPv6 SAP
多播地址上公布的第一个流:
ffplay sap://[ff0e::2:7ffe]
16.30 sctp
流控制传输协议。
接受的URL语法是:
sctp://host:port[?options]
该协议接受以下选项:
listen
如果设置为任何值,请侦听传入连接。 默认情况下,传出连接已完成。
max_streams
设置最大流数。 默认情况下,不设置限制。
16.31 srt
通过libsrt
实现Haivision
安全可靠传输协议。
SRT url
支持的语法是:
srt://hostname:port[?options]
options
包含key = val
形式的&-separated
选项列表。
或者:
options srt:// hostname:port
options
包含-key val
选项列表。
该协议接受以下选项:
connect_timeout
连接超时; SRT
无法连接RTT> 1500
毫秒(2
次握手交换),默认连接超时为3
秒。 此选项适用于呼叫者和集合点连接模式。 连接超时是集合点模式设置值的10
倍(可以用作早期版本此连接问题的解决方法)。
ffs=bytes
飞行标志大小(窗口大小),以字节为单位。 FFS实际上是一个内部参数,您应该将其设置为不小于recv_buffer_size
和mss
。 默认值相对较大,因此除非设置非常大的接收缓冲区,否则无需更改此选项。 默认值为25600
。
inputbw=bytes/seconds
发送者标称输入速率,以每秒字节数为单位。 与oheadbw
一起使用,当maxbw
设置为relative(0)
时,计算恢复数据包与主媒体流一起发送时的最大发送速率:inputbw'*(100 +'oheadbw')/ 100 if 'maxbw'
设置为relative(0)
时未设置inputbw
,实际输入速率在库内评估。 默认值为0
。
iptos=tos
IP
服务类型。 仅适用于发件人。 默认值为0xB8
。
ipttl=ttl
IP
生存时间。 仅适用于发件人。 默认值为64
。
listen_timeout
设置套接字监听超时。
maxbw=bytes/seconds
最大发送带宽,以每秒字节数为单位。 -1
无限(CSRTCC
限制为30mbps
)0
相对于输入速率(参见inputbw
)> 0
绝对限制值默认值为0
(relative
)
mode=caller|listener|rendezvous
连接模式。 caller
打开客户端连接。 listener
启动服务器以侦听传入的连接。 rendezvous
使用Rendez-Vous
连接模式。 默认值是调用者。
mss=bytes
最大段大小,以字节为单位。 用于缓冲区分配和速率计算,使用数据包计数器假定完全填充的数据包。 使用对等体之间的最小MSS
。 整个互联网默认为1500
。 这是UDP
数据包的最大大小,只能减少,除非您有一些不寻常的专用网络设置。 默认值为1500
。
nakreport=1|0
如果设置为1
,Receiver
将定期发送UMSG_LOSSREPORT
消息,直到重新传输或故意丢弃丢失的数据包。 默认值为1
。
oheadbw=percents
恢复带宽开销高于输入速率,以百分比表示。 请参阅inputbw
。 默认值为25%
。
passphrase=string
HaiCrypt
加密/解密密码短语字符串,长度从10
到79
个字符。 密码短语是发送者和接收者之间的共享秘密。 它用于使用PBKDF2
(基于密码的密钥派生函数)生成密钥加密密钥。 仅当pbkeylen
非零时才使用它。 仅在接收的数据被加密时才在接收器上使用它。 配置的密码短语无法恢复(只写)。
pbkeylen=bytes
发件人加密密钥长度,以字节为单位。 只能设置为0,16,24
和32
.如果不是0
,则启用发送方加密。接收方不需要(设置为0
),从HaiCrypt
握手中的发送方获取密钥大小。 默认值为0
。
recv_buffer_size=bytes
设置接收缓冲区大小,以字节为单位。
send_buffer_size=bytes
设置发送缓冲区大小,以字节为单位。
rw_timeout
设置读/写选择的引发错误超时。
此选项仅在读取模式下相关:如果没有超过此时间间隔的数据,则引发错误。
tlpktdrop=1|0
Too-late
的丢包。 当在接收器上启用时,它会跳过未及时传送的丢失数据包,并在其播放时间到来时将以下数据包传送给应用程序。 它还向发送方发送假ACK
。 当在发送方上启用并在接收对等方上启用时,发送方丢弃不能及时交付的旧数据包。 如果接收方支持,它会在发送方自动启用。
tsbpddelay
基于时间戳的数据包传送延迟。 用于吸收丢失数据包重传的突发。
有关更多信息,请参阅:https://github.com/Haivision/srt。
16.32 srtp
安全的实时传输协议。
接受的选项是:
srtp_in_suite
srtp_out_suite
选择输入和输出编码套件。
支持的值:
值 |
---|
AES_CM_128_HMAC_SHA1_80 |
SRTP_AES128_CM_HMAC_SHA1_80 |
AES_CM_128_HMAC_SHA1_32 |
SRTP_AES128_CM_HMAC_SHA1_32 |
srtp_in_params
srtp_out_params
设置输入和输出编码参数,这些参数由二进制块的base64
编码表示表示。 该二进制块的前16
个字节用作主密钥,后面的14
个字节用作master salt
。
16.33 subfile
start
提取段的起始偏移量,以字节为单位。
end
提取的段的结束偏移量,以字节为单位。 如果设置为0
,则提取到文件末尾。
示例如下:
从DVD VOB
文件中提取章节(从外部获得的起始和结束扇区,再乘以2048
):
subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
直接从TAR
存档播放AVI
文件:
subfile,,start,183241728,end,366490624,,:archive.tar
从开始偏移到结束播放MPEG-TS
文件:
subfile,,start,32815239,end,0,,:video.ts
16.34 tee
将输出写入多个协议。 各个输出由|
分隔。
tee:file://path/to/local/this.avi|file://path/to/local/that.avi
16.35 tcp
传输控制协议。
TCP
网址所需的语法是:
tcp://hostname:port[?options]
options
包含key = val
形式的&-separated
选项列表。
支持的选项列表如下:
listen=1|0
侦听传入连接。 默认值为0
。
timeout=microseconds
设置提升错误超时,以微秒表示。
此选项仅在读取模式下相关:如果没有超过此时间间隔的数据,则引发错误。
listen_timeout=milliseconds
设置监听超时,以毫秒为单位。
recv_buffer_size=bytes
设置接收缓冲区大小,表示字节。
send_buffer_size=bytes
设置发送缓冲区大小,表示字节。
tcp_nodelay=1|0
设置TCP_NODELAY
以禁用Nagle
的算法。 默认值为0
。
以下示例显示如何使用ffmpeg
设置侦听TCP
连接,然后使用ffplay
访问该连接:
ffmpeg -i input -f format tcp://hostname:port?listen
ffplay tcp://hostname:port
16.36 tls
传输层安全性(TLS
)/安全套接字层(SSL
)
TLS/SSL URL
语法如下:
tls://hostname:port[?options]
可以通过命令行选项(或通过AVOptions
在代码中)设置以下参数:
ca_file, cafile=filename
包含证书颁发机构(CA
)根证书的文件,以视为受信任。如果链接的TLS
库包含默认值,则可能不需要指定验证工作,但并非所有库和设置都内置默认值。文件必须采用OpenSSL PEM
格式。
tls_verify=1|0
如果启用,请尝试验证我们正在与之通信的对等方。请注意,如果使用OpenSSL
,目前只能确保对等证书由CA
数据库中的一个根证书签名,但它不会验证证书是否与我们尝试连接的主机名实际匹配。 (使用其他后端,主机名也会得到验证。)
默认情况下禁用此选项,因为在许多情况下它需要调用方提供CA
数据库。
cert_file,cert = filename
包含与对等方握手时使用的证书的文件。 (作为服务器运行时,在侦听模式下,对等端通常需要这样做,而客户端证书仅在某些设置中强制要求。)
key_file, key=filename
包含证书私钥的文件。
listen=1|0
如果启用,请侦听提供的端口上的连接,并假定握手中的服务器角色而不是客户端角色。
示例命令行:
创建服务输入流的TLS/SSL
服务器。
ffmpeg -i input -f format tls://hostname:port?listen&cert=server.crt&key=server.key
使用ffplay
从TLS/SSL
服务器回放流:
ffplay tls://hostname:port
16.37 udp
用户数据报协议。
UDP url
所需的语法是:
udp://hostname:port[?options]
options
包含key = val
形式的&-separated
选项列表。
如果在系统上启用了线程,则使用循环缓冲区来存储传入数据,这样可以减少由于UDP
套接字缓冲区溢出而导致的数据丢失。 fifo_size
和overrun_nonfatal
选项与此缓冲区相关。
支持的选项列表如下:
buffer_size=size
设置UDP
最大套接字缓冲区大小,以字节为单位这用于设置接收或发送缓冲区大小,具体取决于套接字的用途。默认值为64KB
。另见fifo_size
。
bitrate=bitrate
如果设置为非零,则输出将具有指定的常量比特率,如果输入具有足够的数据包来维持它。
burst_bits=bits
使用比特率时,它指定数据包突发中的最大比特数。
localport=port
覆盖要绑定的本地UDP端口。
localaddr=addr
选择本地IP
地址。这很有用,例如如果发送组播并且主机有多个接口,则用户可以通过指定该接口的IP地址来选择要发送的接口。
pkt_size=size
设置UDP
数据包的大小(以字节为单位)。
reuse=1|0
明确允许或禁止重用UDP
套接字。
ttl=ttl
设置生存时间值(仅适用于多播)。
connect=1|0
使用connect()
初始化UDP
套接字。在这种情况下,以后无法使用ff_udp_set_remote_url
更改目标地址。如果在开始时未知目标地址,则也可以在ff_udp_set_remote_url
中指定此选项。这允许查找具有getsockname
的数据包的源地址,并且如果收到destination unreachable
,则使用AVERROR(ECONNREFUSED)
返回写入。对于接收,这提供了仅接收来自指定对等地址/端口的分组的益处。
sources=address[,address]
仅接收从指定的发送方IP
地址之一发送到组播组的数据包。
block=address[,address]
忽略从指定的发送方IP
地址发送到组播组的数据包。
fifo_size=units
设置UDP
接收循环缓冲区大小,表示为大小为188
字节的数据包数。如果未指定,则默认为7 * 4096
。
overrun_nonfatal=1|0
在UDP
接收循环缓冲区溢出的情况下生存。默认值为0
。
timeout=microseconds
设置提升错误超时,以微秒表示。
此选项仅在读取模式下相关:如果没有超过此时间间隔的数据,则引发错误。
broadcast=1|0
明确允许或禁止UDP
广播。
请注意,广播可能无法在具有广播风暴保护的网络上正常工作。
16.37.1 示例
-
使用
ffmpeg
将UDP
流式传输到远程端点:ffmpeg -i input -f format udp://hostname:port
-
使用
ffmpeg
使用188
个大小的UDP
数据包通过UDP
以mpegts
格式传输,使用大输入缓冲区:ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535
-
使用
ffmpeg
从远程端点接收UDP
:ffmpeg -i udp://[multicast-address]:port ...
16.38 unix
Unix
本地套接字
Unix
套接字URL
所需的语法是:
unix://filepath
可以通过命令行选项(或通过AVOptions
在代码中)设置以下参数:
timeout
超时以毫秒为单位。
listen
在侦听模式下创建Unix
套接字。