webrtc-server-iosock

Updated: March 11, 2025

Multimedia streaming interface utility for QNX

Syntax:

webrtc-server-iosock   [options]

Runs on:

QNX Neutrino

Options:

-autonomous_proxy_server
Don't initialize the proxy server (webrtc-operator-proxy-iosock) process.
The -autonomous_sig_server option automatically sets this option.
-autonomous_sig_server
Don't initialize a signaling server (webrtc-operator-iosock) process.
Note: This option should be set when the signaling server is already running and available. Only one signaling server should be initialized on a QNX target.
-camera_name <string>
Specify the name that matches the server_connection_name in the QNX sensor configuration file.
-client_dir <string>
Specify the location of the client files.
If this option isn't set, then the default is /share/webrtc/assets.
-disable_camera
Disable camera streaming for this instance of the WebRTC server.
-display <string>
Initialize and connect to video stream source(s); provide a comma-separated list of QNX screen display IDs.
If this option is set to empty or isn't provided, then webrtc-server-iosock initializes all available displays. This can affect the performance of WebRTC conversions and streams.
-enable_audio
Enable audio playback and recording.
Before using the webrtc-server-iosock command with the -enable_audio option, declare the audio and record devices using the following parameters, where the device numbers are <X> and <Y>:
  • WEBRTC_AUDIO_PLAY_DEVICE=<X>:0
  • WEBRTC_AUDIO_RECORD_DEVICE=<Y>:0
For example, the following command declares the audio play device as device 1 and the audio record as device 0:
WEBRTC_AUDIO_PLAY_DEVICE=1:0 WEBRTC_AUDIO_RECORD_DEVICE=0:0
webrtc-server-iosock --external-ip=<InstanceIP> --enable-audio
-external_ip <public-ip/private-ip>
Specify the public IP address of the QNX target.
Internally, webrtc-server-iosock initializes a TURN server for all connections to the QNX target. In most cases, only use the public IP address. For example:
webrtc-server-iosock -external-ip 11.22.33.44
In cases where there are multiple network interfaces on the device, map the public and private IPs together by providing private-ip after public-ip:
webrtc-server-iosock -external-ip 11.22.33.44/55.66.77.88
Note: This option can't be used with -turn_server.
-format <string>
Set the format of the QNX screen display readback buffer.
If the target supports Screen drivers, then the default rgb565 setting provides the best balance between the memory bandwidth and the quality of the frame transmission.
-id <string>
Register the QNX device ID.
If this option isn't set, then the default is qnx-device-1.
-license
Print software license information and exit immediately without starting the server.
-no_daemon
Don't daemonize the server process or its child processes on the system.
-port_range 'min:max'
Set the minimum and maximum port numbers to allocate for ICE (TCP or UDP) candidates.
To use any port, specify '0:0'.
-proxy_server_port <int32>
Specify the port for the proxy server (webrtc-operator-proxy-iosock) unless -autonomous_proxy_server is set.
If -proxy_server_port isn't set, then the default is 8443.
-scale <string>
Set the scaling of the QNX Screen readback buffer relative to the display buffer.
The scaled readback buffer gets converted and transmitted using WebRTC. Down-scaling improves the stream performance of WebRTC. If -scale isn't set, then the default is 1/1.
-sig_server_addr <string>
Specify the address of the signaling server that webrtc-operator-iosock connects to, unless -autonomous_sig_server is set.
If -sig_server_addr isn't set, then the default is localhost.
Note: Only modify this option for advanced networking configurations.
-sig_server_port <int32>
Specify the port of the signaling server that webrtc-operator-iosock connects to, unless -autonomous_sig_server is set.
If -sig_server_port isn't set, then the default is 1443.
Note: You should only modify this option for advanced configurations.
-sig_server_secure
Secure the connection of the signaling server.
-sig_server_verify
Verify the signaling server's certificate with a trusted signing authority. Disallow self-signed certificates.
Ignored if -sig_server_secure isn't set. If -sig_server_verify isn't set, then the default value is false.
-stats
Log various statistics for all WebRTC client connections. This option uses the logging behavior of the -to-stdout flag.
-stats_interval
The interval (in seconds) to routinely log WebRTC connection statistics.
-stats_keys
Prints a comma-separated list of available keys from the WebRTC Stats API.
-to_stdout
Print messages to -stdout and don't daemonize the server processes. Log level stays at default.
-turn_log_file <string>
Set the log file for the TURN server.
If this option isn't set, then the default is /var/log/turn/turn_<date,time>.log.
-turn_server host:port
Specify the host:port of an external TURN server to use for public address resolution and media traffic relay.
If this option is set, then -turn_user must also be set.
If this option isn't set, then a TURN server isn't initialized.
Note: This option can't be used with -external_ip.
-turn_user <username:password>
Set the credentials to access the TURN server when setting -turn_server.
-turn_verbose
Set log level to VERBOSE to log all connections or relays made by the TURN server.
Output is to either console or log file depending on the setting of global -verbose or -to_stdout options.
-use_pointer
Forward the touch events from the web client as POINTER events to QNX Screen.
When this option isn't set, then the touch events are forwarded as MTOUCH events.
-verbose
Set log level to VERBOSE.
-write_virtio_input
Send input events in VirtIO format.

Description:

The webrtc-server-iosock utility uses WebRTC for communication between the host and the QNX target. This communication includes a display framebuffer transmission to the host and input forwarding to the target. The utility itself comprises the following executable components:
  • webrtc-server-iosock
  • webrtc-operator-iosock (signaling server)
  • webrtc-operator-proxy-iosock (proxy server)
  • turnserver-iosock
The primary executable is webrtc-server-iosock. In most configurations, it's the only required executable. The signaling server, proxy server, and TURN server implementations handle the signaling and network configurations.

Examples:

The following examples demostrate two different methods of streaming your displays:

One webrtc-server-iosock process streaming two displays
webrtc-server-iosock --display=1,2 --id="My QNX Device"
Two webrtc-server-iosock processes each streaming a different display
webrtc-server-iosock --display=1 --id="my-first-display"

webrtc-server-iosock --display=2 --id="my-second-display" --autonomous_sig_server
Only the first instance initializes the signaling server. The second instance uses the signaling server initialized in the first instance.