如何将多个 RTP 选项传递给 ffmpeg?
How to pass multiple RTP options to ffmpeg?
为 FFMPEG 构建我自己的 RTSP 服务器,所以我将 ffmpeg 作为子进程执行。
我目前遇到的问题是我正在添加多播支持,而 RTSP 客户端可能会将 ttl
添加到 RTSP 传输线路。到目前为止没问题,因为 ffmpeg 支持它。但我究竟该如何通过呢?记录的 URL 格式是
rtp://hostname[:port][?option=val...]
如果你想传递 Comp.Sci class,那不是你应该写的那种定义。省略号表示您可以传递多个参数,但不能传递 how。我不仅需要 ttl=
,还需要 localrtpport=
。
我想我可以遵循 HTTP 约定并假设他们打算 [?option=val[&option=val]*]
但我找不到权威来源。
已询问 elsewhere 但也未得到答复。
我作弊看了源码
rtp_open
calls av_find_info_tag
记录为解析 ?tag1=val1&tag2=val2...
。
为了回答明显的后续问题,我还检查了 av_find_info_tag
的来源。可以传递的参数数量没有限制,它们必须用 &
分隔,并且(实现细节)仅使用第一次出现的参数。不支持的参数将被忽略。
为 FFMPEG 构建我自己的 RTSP 服务器,所以我将 ffmpeg 作为子进程执行。
我目前遇到的问题是我正在添加多播支持,而 RTSP 客户端可能会将 ttl
添加到 RTSP 传输线路。到目前为止没问题,因为 ffmpeg 支持它。但我究竟该如何通过呢?记录的 URL 格式是
rtp://hostname[:port][?option=val...]
如果你想传递 Comp.Sci class,那不是你应该写的那种定义。省略号表示您可以传递多个参数,但不能传递 how。我不仅需要 ttl=
,还需要 localrtpport=
。
我想我可以遵循 HTTP 约定并假设他们打算 [?option=val[&option=val]*]
但我找不到权威来源。
已询问 elsewhere 但也未得到答复。
我作弊看了源码
rtp_open
calls av_find_info_tag
记录为解析 ?tag1=val1&tag2=val2...
。
为了回答明显的后续问题,我还检查了 av_find_info_tag
的来源。可以传递的参数数量没有限制,它们必须用 &
分隔,并且(实现细节)仅使用第一次出现的参数。不支持的参数将被忽略。