美文网首页FFPlay专辑
FFplay文档解读-12-协议二

FFplay文档解读-12-协议二

作者: 张芳涛 | 来源:发表于2018-11-15 16:01 被阅读28次

    前言

    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,后跟冒号。对于布尔值,数据必须分别为01表示FALSETRUE。同样,对于对象,数据必须分别为01才能结束或开始对象。可以通过在类型前加上N并在值之前指定名称(即NB:myFlag:1)来命名子对象中的数据项。可以多次使用该选项来构造任意AMF序列。

    rtmp_flashver
    

    用于运行SWF播放器的Flash插件的版本。默认值为LNX 9,0,124,2。 (发布时,默认为FMLE/3.0(兼容; <libavformat版本>)。)

    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
    

    要发布到受密码保护的服务器,请分别传递playpathapp名称:

    ffmpeg -re -i <input> -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/TLSRTMP(RTMPS)以及这些加密类型的管道变体(RTMPTE,RTMPTS)。

    所需的语法是:

    rtmp_proto://server[:port][/app][/playpath] options
    

    其中rtmp_proto是对应于每个RTMP变体的字符串rtmprtmptrtmpertmpsrtmptertmpts之一,并且服务器,端口,appplaypath具有与指定相同的含义 用于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端口),则任何可用端口都将用于本地RTPRTCP端口。

    3.如果未设置localrtcpport(本地RTCP端口),则将其设置为本地RTP端口值加1

    16.28 rtsp

    实时流媒体协议。

    RTSP在技术上不是libavformat中的协议处理程序,它是一个分离器和多路复用器。 分路器支持普通RTSP(通过RTP传输数据;例如AppleMicrosoft使用)和Real-RTSP(通过RDT传输数据)。

    可以使用muxer将流使用RTSP ANNOUNCE发送到支持它的服务器(目前是Darwin Streaming ServerMischa SpiegelmockRTSP服务器)。

    RTSP网址所需的语法是:

    rtsp://hostname[:port]/path
    

    可以在ffmpeg/ffplay命令行上设置选项,也可以通过AVOptionsavformat_open_input在代码中设置选项。

    支持如下选项:

    initial_pause
    

    如果设置为1,请勿立即开始播放流。默认值为0

    rtsp_transport
    

    设置RTSP传输协议。

    它接受以下值:

    解释
    UDP 使用UDP作为较低的传输协议。
    TCP 使用TCPRTSP控制信道内的交织)作为较低的传输协议。
    udp_multicast 使用UDP多播作为较低的传输协议。
    HTTP 使用HTTP管道作为较低的传输协议,这对于传递代理很有用

    可以指定多个较低的传输协议,在这种情况下,它们一次尝试一个(如果一个设置失败,则尝试下一个)。 对于复用器,仅支持tcpudp选项。

    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接收数据时,解复用器尝试重新排序接收到的数据包(因为它们可能无序到达,或者数据包可能完全丢失)。 可以通过将最大解复用延迟设置为零(通过AVFormatContextmax_delay字段)来禁用此功能。

    当使用ffplay观看多比特率Real-RTSP流时,可以分别为视频和音频选择-vst n-ast n来显示要显示的流,并且可以通过按va来即时切换。

    16.28.1 Examples

    以下示例均使用ffplayffmpeg工具。

    通过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中的协议处理程序,它是一个muxerdemuxer。 它通过在单独的端口上定期通知流的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(如果destinationIPv6地址)。

    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_sizemss。 默认值相对较大,因此除非设置非常大的接收缓冲区,否则无需更改此选项。 默认值为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限制为30mbps0相对于输入速率(参见inputbw)> 0绝对限制值默认值为0relative

    mode=caller|listener|rendezvous
    

    连接模式。 caller打开客户端连接。 listener启动服务器以侦听传入的连接。 rendezvous使用Rendez-Vous连接模式。 默认值是调用者。

    mss=bytes
    

    最大段大小,以字节为单位。 用于缓冲区分配和速率计算,使用数据包计数器假定完全填充的数据包。 使用对等体之间的最小MSS。 整个互联网默认为1500。 这是UDP数据包的最大大小,只能减少,除非您有一些不寻常的专用网络设置。 默认值为1500

     nakreport=1|0
    

    如果设置为1Receiver将定期发送UMSG_LOSSREPORT消息,直到重新传输或故意丢弃丢失的数据包。 默认值为1

    oheadbw=percents
    

    恢复带宽开销高于输入速率,以百分比表示。 请参阅inputbw。 默认值为25%

    passphrase=string
    

    HaiCrypt加密/解密密码短语字符串,长度从1079个字符。 密码短语是发送者和接收者之间的共享秘密。 它用于使用PBKDF2(基于密码的密钥派生函数)生成密钥加密密钥。 仅当pbkeylen非零时才使用它。 仅在接收的数据被加密时才在接收器上使用它。 配置的密码短语无法恢复(只写)。

    pbkeylen=bytes
    

    发件人加密密钥长度,以字节为单位。 只能设置为0,16,2432.如果不是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
    

    使用ffplayTLS/SSL服务器回放流:

    ffplay tls://hostname:port
    

    16.37 udp

    用户数据报协议。

    UDP url所需的语法是:

    udp://hostname:port[?options]
    

    options包含key = val形式的&-separated选项列表。

    如果在系统上启用了线程,则使用循环缓冲区来存储传入数据,这样可以减少由于UDP套接字缓冲区溢出而导致的数据丢失。 fifo_sizeoverrun_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 示例

    • 使用ffmpegUDP流式传输到远程端点:

        ffmpeg -i input -f format udp://hostname:port
      
    • 使用ffmpeg使用188个大小的UDP数据包通过UDPmpegts格式传输,使用大输入缓冲区:

        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套接字。

    相关文章

      网友评论

        本文标题:FFplay文档解读-12-协议二

        本文链接:https://www.haomeiwen.com/subject/ltbyfqtx.html