-
Notifications
You must be signed in to change notification settings - Fork 74
Description
Hello all,
I'm running with UltraGrid 1.10+ (master rev 9832f9d built Dec 2 2025 08:45:45)
Upon launching the command:
UltraGrid.AppImage --tool hd-rum-transcode --control-port 6565
the application fails with the following:
UltraGrid 1.10+ (master rev 9832f9d built Dec 2 2025 08:45:45)
/tmp/.mount_UltraGIBPdkg/usr/bin/hd-rum-transcode: unrecognized option '--control-port'
[hd-rum-trans] Unknown global parameter
Usage:
/tmp/.mount_UltraGIBPdkg/usr/bin/hd-rum-transcode [global_opts] buffer_size port \
[host1_options] host1 [[host2_options] host2] ...
where:
buffer_size - network buffer size, eg. 200k for compressed
or 8M for uncompressed video
port - UDP port number
global_opts may be:
--control-port|-n <port_number>[:0|:1] - control port to connect to, optionally client/server (default)
--blend|-B - enable blending from original to newly received stream, increases latency
--server|-S <port> - enable server mode for clients to connect on specified port
--conference|-r <width>:<height>[:fps] - enable combining of multiple inputs, increases latency
--conference-compression|-R <compression> - compression for conference participants
--capture-filter|-F <cfg_string> - apply video capture filter to incoming video
--param|-O - additional parameters
--help|-h
--verbose|-V
-v - print version
and hostX_options may be:
-P [<rx_port>:]<tx_port> - TX port to be used (optionally also RX)
-c <compression> - compression
Following options will be used only if '-c' parameter is set:
-m <mtu> - MTU size
-l <limiting_bitrate> - bitrate to be shaped to
-f <fec> - FEC that will be used for transmission.
-4/-6 - force IPv4/IPv6
Please note that blending and capture filter is used only for host for which
compression is specified (transcoding is active). If compression is not
set, simple packet retransmission is used. Compression can be also 'none'
for uncompressed transmission (see 'uv -c help' for list).
I am not sure if this is desired behavior. Attempting to use the shorthand option -n results in the same behavior.
Additionally although there are some notes on the control port API located here; https://github.com/CESNET/UltraGrid/wiki/Control-port-API#adding-and-removing-output-ports , and I understand that they aren't generally for us to play around with, I am struggling to get any use out of it.
My use case is that I want to be able to add/remove reflector clients dynamically, without having to terminate and restart the reflector.
As it currently stands, it appears I can't launch hd-rum-multi with a control port open, so I am unable to test it further. I did try a few commands such as nc localhost 6160 just in the event a default port was open, but that doesn't seem to be the case.
This may be down to a source code typo:
struct cmdline_parameters *parsed) noexcept(false)
{
const struct option getopt_options[] = {
{"blend", no_argument, nullptr, 'B'},
{ "capture-filter", required_argument, nullptr, 'F'},
{ "list-modules", required_argument, nullptr, 'L'},
{ "param", required_argument, nullptr, 'O'},
{ "conference-compression", required_argument, nullptr, 'R'},
{ "server", required_argument, nullptr, 'S'},
{ "verbose", optional_argument, nullptr, 'V'},
{ "capabilities", no_argument, nullptr, 'b'},
{ "help", no_argument, nullptr, 'h'},
{ "contol-port", required_argument, nullptr, 'n'},
{ "conference", required_argument, nullptr, 'r'},
{ "version", no_argument, nullptr, 'v'},
{ nullptr, 0, nullptr, 0 }
};
const char *const optstring = "+BF:LO:R:S:Vbhn:r:v";
In line 645-663 in https://github.com/CESNET/UltraGrid/blob/master/src/hd-rum-translator/hd-rum-translator.cpp
Although accounting for that results in the same error. I'm not sure which other avenues to chase down from here.