From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 9C1FE4B9D5 for ; Tue, 22 Jul 2025 12:39:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 2183768D2AA; Tue, 22 Jul 2025 15:37:40 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 5E80568D1C9 for ; Tue, 22 Jul 2025 15:37:38 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-234b9dfb842so45117335ad.1 for ; Tue, 22 Jul 2025 05:37:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753187855; x=1753792655; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZE2dRzkNMlqrE+/aKosC/63pa72Wz62NLg7cjm9+O14=; b=XwKuBMtsAC0uZIpb1YNP0Lb8vlpSe86safT5Y6PU1Hr/zDVYKSLLQeYuLtrZ84vrKL iefNyGO0mNMwlGMJyoNGWt5AhQdIkzr+84rSu0gQtqRgpp951v+dgg/Cw6s52D0BBg9L MUhh7I3qIOhLiFDYRJt2oubgkIpqSgxriv4/JeG9RSNF/WIrQve5FJDXOzQMENQ70tD0 gsve4wf6XcIFNbW/Rftku4IFFBuCeSJRrnlhWMDO27LAF6Ahf6PTa67N7GVEhlmz6xHd 0RxjezkFqZfQuELnHs5gw73ykRKqss17vxt3kSrPmOTjeiKcITNsCD/ztik3IQaTg3kN p2Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753187855; x=1753792655; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZE2dRzkNMlqrE+/aKosC/63pa72Wz62NLg7cjm9+O14=; b=eh543kzpCbgwhst0kXlUOhGfeIF1KVUAlf8y4vPn0yE0LHL/cspg4WesX9Xyf2adae v0jcvpwVypDcxQiZtpQB3+YjT74uMz20g4fFiYlFL+isMvVh3XoIrB3+iG108oDMiei5 +6hzFSX9jIAojSNKam55Ki9bc0oqihO9ACpdMi983zqm/mGI/JjBZPxRaBdXmURWKAIn 6pLGpW/bh1Wi4P8gFG3rPsnax8FrWiCBmc+zYSifEyeU6VGHUT0v4iyd0BaeiskWrbue pxBHJS2k4CWzvdDhqwmmu0r1GS5C1NZ3URj9MdwkSRiueZJt/rk/l8GIhzyT2BB3Tf9+ 4g4w== X-Gm-Message-State: AOJu0YzgaQVPZVoM5WUMbd5w4+ElCyt+tV1D/+rquy/ZgHlxiWwdbIZk kb7ukhPev6n/wwaQWbqrO9mbZhTpV1hcTXoA160ZhDTHhDFQe0Uah3bFwjN8T7YHk5w= X-Gm-Gg: ASbGnct2Nefi6Ljv0I+d3GE8yyCu/H/5JmnsTzUKhANPj7ASWoXelp6av7qrAUAkVsf I7VdB+StikfZgA2cKF3PbfqDpJsieNYLd6SZqAgsD/j+mnNFLaroSe9UFtYtiVl21MNPcZ17Ssg qpReCe5kY15E2NI7T0ZWOVkqUFHemlgW2DkvyAmT9sgwC81C3OP9hIHGAU7b/zi1/gACTtolhLn o8o9qNdW+4NV68GaBQcGHlqDGSCF01yzxKVBZEKlDr9LfBTBGCkUYVgyt864OOUdSQT6/X5p3av lssUfgf01KZddhwyRadKH+Of2sP1sYSUFELSZSGuKyKSkRz9gPQF3BM4AQTCHE6CSU58s67y41X aUoSDBjaBo2t/zQ6zbYM1o7N+i/LHTvHtzKWk8H8BOtSZUw== X-Google-Smtp-Source: AGHT+IFPcNNHRikQ8iRPF2TY2BUBkx/oTThnjQ9gFKNHqIKqHf0R+umTZyx0cIpC/gXaNUWxjOZ+Rg== X-Received: by 2002:a17:902:da8a:b0:23c:8f21:ac59 with SMTP id d9443c01a7336-23e2572b0c0mr355118335ad.29.1753187855265; Tue, 22 Jul 2025 05:37:35 -0700 (PDT) Received: from localhost.localdomain ([182.126.128.169]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23e3b60edbasm75740715ad.70.2025.07.22.05.37.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 22 Jul 2025 05:37:35 -0700 (PDT) From: Jack Lau X-Google-Original-From: Jack Lau To: ffmpeg-devel@ffmpeg.org Date: Tue, 22 Jul 2025 20:36:16 +0800 Message-ID: <20250722123616.53164-16-jacklau1222@qq.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250722123616.53164-1-jacklau1222@qq.com> References: <20250722123616.53164-1-jacklau1222@qq.com> MIME-Version: 1.0 X-Unsent: 1 Subject: [FFmpeg-devel] [PATCH v5 15/15] doc: add doc for dtls and whip X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Jack Lau Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: Jack Lau --- doc/muxers.texi | 29 ++++++++++++++--- doc/protocols.texi | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 4 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index d2ee90bf33..393e606e12 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -3915,16 +3915,37 @@ Default value is 5000. @item pkt_size @var{integer} Set the maximum size, in bytes, of RTP packets that send out. -Default value is 1500. +Default value is 1200. @item authorization @var{string} -The optional Bearer token for WHIP Authorization. +Optional Bearer token for WHIP Authorization. @item cert_file @var{string} -The optional certificate file path for DTLS. +Optional certificate file path for DTLS. @item key_file @var{string} -The optional private key file path for DTLS. +Optional private key file path for DTLS. + +@item whip_flags @var{flags} +Possible values: + +@table @samp +@item ignore_ipv6 +Ignore any IPv6 ICE candidates. + +@item disable_rtx +Disable RFC 4588 RTX (Retransmission) support. +This disables the retransmission mechanism for lost RTP packets. + +@item dtls_active +Set DTLS role as active (client role) instead of passive (server role). +By default, WHIP uses passive DTLS role, but some servers may require active role. +@end table + +@item rtx_history_size @var{integer} +Set the packet history size for RTX (retransmission) support. +This determines how many recent RTP packets are kept in memory for potential +retransmission requests. Range is 64 to 2048, default is 256. @end table diff --git a/doc/protocols.texi b/doc/protocols.texi index 969f4bf022..1e74653329 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -2028,6 +2028,84 @@ To play back a stream from the TLS/SSL server using @command{ffplay}: ffplay tls://@var{hostname}:@var{port} @end example +@section dtls + +Datagram Transport Layer Security (DTLS) + +The required syntax for a DTLS URL is: +@example +dtls://@var{hostname}:@var{port} +@end example + +DTLS shares most options with TLS, but operates over UDP instead of TCP. +The following parameters can be set via command line options +(or in code via @code{AVOption}s): + +@table @option + +@item ca_file, cafile=@var{filename} +A file containing certificate authority (CA) root certificates to treat +as trusted. If the linked TLS library contains a default this might not +need to be specified for verification to work, but not all libraries and +setups have defaults built in. +The file must be in OpenSSL PEM format. + +@item tls_verify=@var{1|0} +If enabled, try to verify the peer that we are communicating with. +Note, if using OpenSSL, this currently only makes sure that the +peer certificate is signed by one of the root certificates in the CA +database, but it does not validate that the certificate actually +matches the host name we are trying to connect to. + +This is disabled by default since it requires a CA database to be +provided by the caller in many cases. + +@item cert_file, cert=@var{filename} +A file containing a certificate to use in the handshake with the peer. +(When operating as server, in listen mode, this is more often required +by the peer, while client certificates only are mandated in certain +setups.) + +@item key_file, key=@var{filename} +A file containing the private key for the certificate. + +@item cert_pem=@var{string} +A PEM-encoded certificate string to use in the handshake with the peer. + +@item key_pem=@var{string} +A PEM-encoded private key string for the certificate. + +@item listen=@var{1|0} +If enabled, listen for connections on the provided port, and assume +the server role in the handshake instead of the client role. + +@item mtu=@var{size} +Set the Maximum Transmission Unit (MTU) for DTLS packets. + +@item use_srtp=@var{1|0} +Enable the use_srtp DTLS extension. +This is used in WebRTC applications to establish SRTP encryption keys +through the DTLS handshake. Default is disabled. + +@item external_sock=@var{1|0} +Use an external socket instead of creating a new one. Default is disabled. + +@end table + +Example command lines: + +To create a DTLS server: + +@example +ffmpeg -listen 1 -i dtls://@var{hostname}:@var{port} @var{output} +@end example + +To create a DTLS server and send data to server: + +@example +ffmpeg -i @var{input} -f @var{format} dtls://@var{hostname}:@var{port} +@end example + @section udp User Datagram Protocol. -- 2.49.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".