QuantumEntangledAndy / neolink

An RTSP bridge to Reolink IP cameras
GNU Affero General Public License v3.0
257 stars 41 forks source link

Reolink Duo 2 Accessing both "mainStreams"? #152

Closed tomfrogger closed 9 months ago

tomfrogger commented 9 months ago

Is it possible to access both cameras from a duo v2 mainStreams using neolink?

I have neolink connected to my duo 2 camera and works well but only shows mainstream 01 when stream = "mainStream" how might i get access to the other camera and mainstream 02?

Direct rtsp access from the camera uses these urls but it is the usual smeary mess in frigate without going via neolink. rtsp://admin:PASSWORD@IPADDRESS:554/h264Preview_01_main rtsp://admin:PASSWORD@IPADDRESS:554/h264Preview_02_main

QuantumEntangledAndy commented 9 months ago

Hmm try setting stream to all and then accessing the externStream

If that dosent work set the environment variable RUST_LOG to debug and it will print all stream names and their resolutions so we can learn the internal name of the stream

tomfrogger commented 9 months ago

I think these are the available streams shown with debug logging enabled. I added the following lines to /etc/environment

export RUST_LOG=debug export GST_DEBUG=3

in the config.toml stream = "all"

These are from the neolink log and one of the duo cameras. [2023-09-24T10:34:40Z INFO neolink::rtsp] roadcam: Avaliable at /roadcam/main, /roadcam/Main, /roadcam/mainStream, /roadcam/MainStream, /roadcam/Mainstream, /roadcam/mainstream, /roadcam [2023-09-24T10:34:40Z INFO neolink::rtsp] roadcam: Avaliable at /roadcam/sub, /roadcam/Sub, /roadcam/subStream, /roadcam/SubStream, /roadcam/Substream, /roadcam/substream

Am I looking at the correct log?

QuantumEntangledAndy commented 9 months ago

Looks like debug log isn't on. How do yo start neolink? Is it in a container or something that will not propegate the env vars ?

tomfrogger commented 9 months ago

Please find a debug log. neolink is normally run as a service for this ive started it manually with only one camera specified in the .toml

[2023-09-24T14:14:00Z INFO  neolink] Neolink 0f91c06d0bc914c3c9cbc9a52078746810d2307b release
[2023-09-24T14:14:00Z WARN  neolink] Deprecated command line option. Please use: `neolink rtsp --config=Config { cameras: [CameraConfig { name: "roadcam", camera_addr: Some("IP:9000"), camera_uid: None, username: "admin", password: Some("XX"), stream: All, permitted_users: None, channel_id: 0, mqtt: MqttConfig { enable_motion: true, enable_pings: true, enable_light: true, enable_battery: true, battery_update: 2000, enable_preview: true, preview_update: 2000, discovery: None }, pause: PauseConfig { on_motion: false, on_disconnect: false, motion_timeout: 1.0, mode: "none" }, discovery: Relay, max_encryption: "Aes", strict: false, print_format: None, update_time: false, buffer_size: 25, enabled: true, debug: false, max_discovery_retries: 10 }], bind_addr: "0.0.0.0", bind_port: 8854, tokio_console: false, certificate: None, mqtt: None, tls_client_auth: "none", users: [] }`
[2023-09-24T14:14:00Z INFO  neolink::rtsp] Starting RTSP Server at 0.0.0.0:8854
[2023-09-24T14:14:00Z INFO  neolink::rtsp] roadcam: Rtsp Staring
[2023-09-24T14:14:00Z DEBUG neolink::common::reactor] Inserting new insance
[2023-09-24T14:14:00Z INFO  neolink::utils] roadcam: Connecting to camera at Address: IP:9000
[2023-09-24T14:14:00Z INFO  neolink_core::bc_protocol] roadcam: Trying TCP discovery
[2023-09-24T14:14:00Z DEBUG neolink::common::reactor] New instance created
[2023-09-24T14:14:00Z DEBUG neolink::common::reactor] Got instance from reactor
[2023-09-24T14:14:00Z DEBUG neolink::common::neocam] roadcam: InUse
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main::Loop
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Stream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Main
[2023-09-24T14:14:00Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/main
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Main
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/mainStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/MainStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Mainstream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/mainstream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/main, /roadcam/Main, /roadcam/mainStream, /roadcam/MainStream, /roadcam/Mainstream, /roadcam/mainstream, /roadcam
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Sub
[2023-09-24T14:14:00Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/sub
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Sub
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/subStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/SubStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Substream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/substream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/sub, /roadcam/Sub, /roadcam/subStream, /roadcam/SubStream, /roadcam/Substream, /roadcam/substream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Extern
[2023-09-24T14:14:00Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/extern
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Extern
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/externStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/ExternStream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/Externstream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] Path: /roadcam/externstream
[2023-09-24T14:14:00Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/extern, /roadcam/Extern, /roadcam/externStream, /roadcam/ExternStream, /roadcam/Externstream, /roadcam/externstream
[2023-09-24T14:14:00Z INFO  neolink_core::bc_protocol] roadcam: TCP Discovery success at 192.168.0.83:9000
[2023-09-24T14:14:00Z INFO  neolink::utils] roadcam: Logging in
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: start to parse "body"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct Encryption @ 1: start to parse "Encryption"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(Encryption, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1]), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(md5), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(nonce, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(65104429-9fWnQgPPcoKErqaCrBwo), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(nonce), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct Encryption @ 1: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(Encryption), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: success
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: start to parse "body"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct DeviceInfo @ 1: start to parse "DeviceInfo"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(DeviceInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1]), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(firmVersion, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(00051539673100), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(firmVersion), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(IOInputPortNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(IOInputPortNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(IOOutputPortNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(IOOutputPortNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(diskNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(diskNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(wifi_solo_ipc), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(2), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(audioNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(audioNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(ipChannel, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(ipChannel), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(analogChnNum, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(analogChnNum), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct Resolution @ 2: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolutionName, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(2560*1440), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolutionName), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(2560), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1440), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct Resolution @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(language, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(English), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(language), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(sdCard, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(sdCard), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(ptzMode, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(none), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(ptzMode), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(typeInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(IPC), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(typeInfo), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(softVer, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(50332332), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(softVer), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(hardVer, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(hardVer), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(panelVer, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(panelVer), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(hdChannel1, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(hdChannel1), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(hdChannel2, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(hdChannel2), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(hdChannel3, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(hdChannel3), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(hdChannel4, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(hdChannel4), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(norm, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(NTSC), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(norm), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(osdFormat, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(MDY), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(osdFormat), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(B485, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(B485), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(supportAutoUpdate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(supportAutoUpdate), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(userVer, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(userVer), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(FrameworkVer, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(FrameworkVer), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(secretCode, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(000000008d22e70b), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(secretCode), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(authMode, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(authMode), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct DeviceInfo @ 1: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(DeviceInfo), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfoList @ 1: start to parse "StreamInfoList"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(StreamInfoList, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1]), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: start to parse "StreamInfo"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(StreamInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelBits, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(3), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelBits), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(mainStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(2560), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1440), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(15), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(3072), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(25,22,20,18,16,15,12,10,8,6,4,2), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1024,1536,2048,3072,4096,5120), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(subStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(640), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(360), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(10), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(256), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(15,10,7,4), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(64,128,160,192,256,384,512), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(StreamInfo), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: start to parse "StreamInfo"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(StreamInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelBits, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(3), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelBits), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(mainStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(2304), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1296), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(15), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(3072), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(25,22,20,18,16,15,12,10,8,6,4,2), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1024,1536,2048,3072,4096,5120), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(subStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(640), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(360), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(10), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(256), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(15,10,7,4), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(64,128,160,192,256,384,512), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(StreamInfo), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: start to parse "StreamInfo"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(StreamInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelBits, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(3), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelBits), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(mainStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1920), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1080), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(22), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(4096), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(25,22,20,18,16,15,12,10,8,6,4,2), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1024,1536,2048,3072,4096,5120,6144), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: start to parse "encodeTable"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(encodeTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(type, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(subStream), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(type), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: start to parse "resolution"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(resolution, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(width, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(640), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(width), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(height, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(360), new depth 6
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(height), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamResolution @ 4: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(resolution), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultFramerate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(10), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultFramerate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(defaultBitrate, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(256), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(defaultBitrate), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(framerateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(15,10,7,4), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(framerateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(bitrateTable, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(64,128,160,192,256,384,512), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(bitrateTable), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct EncodeTable @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(encodeTable), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfo @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(StreamInfo), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct StreamInfoList @ 1: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(StreamInfoList), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: success
[2023-09-24T14:14:00Z DEBUG neolink_core::bc_protocol::login] Populating abilities
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: start to parse "body"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(body, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfo @ 1: start to parse "AbilityInfo"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(AbilityInfo, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}, [version -> 1.1]), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(userName, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(admin), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(userName), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "system"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(system, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(general_rw, norm_rw, version_ro, uid_ro, autoReboot_rw, restore_rw, reboot_rw, shutdown_rw, dst_rw, log_ro, performance_ro, upgrade_rw, export_rw, import_rw, bootPwd_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(system), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "streaming"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(streaming, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(streaming), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "network"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(network, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(port_rw, dns_rw, email_rw, ftp_rw, ftpSchedule_rw, ipFilter_rw, localLink_rw, pppoe_rw, upnp_rw, wifi_rw, ntp_rw, netStatus_rw, ptop_rw, autontp_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(network), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "PTZ"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(PTZ, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(control_rw, preset_rw, cruise_rw, track_rw, decoder_rw, ptzInfo_ro), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(PTZ), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "alarm"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(alarm, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(motion_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(motion_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(alarm), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "image"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(image, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(ispBasic_rw, ispAdvance_rw, ledState_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(ispBasic_rw, ispAdvance_rw, ledState_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(image), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "video"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(video, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(0), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(osdName_rw, osdTime_rw, shelter_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(channelId, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(1), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(channelId), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(osdName_rw, osdTime_rw, shelter_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(video), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: start to parse "security"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(security, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: start to parse "subModule"
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(subModule, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched StartElement(abilityValue, {"": "", "xml": "http://www.w3.org/XML/1998/namespace", "xmlns": "http://www.w3.org/2000/xmlns/"}), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched Characters(user_rw, userOnline_rw, bootPwd_rw), new depth 5
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(abilityValue), new depth 4
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoSubModule @ 3: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(subModule), new depth 3
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfoToken @ 2: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(security), new depth 2
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct AbilityInfo @ 1: success
[2023-09-24T14:14:00Z DEBUG yaserde::de] Fetched EndElement(AbilityInfo), new depth 1
[2023-09-24T14:14:00Z DEBUG yaserde_derive] Struct BcXml @ 0: success
[2023-09-24T14:14:00Z DEBUG neolink_core::bc_protocol::abilityinfo] Abilities: <?xml version="1.0" encoding="utf-8"?><AbilityInfo><userName>admin</userName><system><subModule><abilityValue>general_rw, norm_rw, version_ro, uid_ro, autoReboot_rw, restore_rw, reboot_rw, shutdown_rw, dst_rw, log_ro, performance_ro, upgrade_rw, export_rw, import_rw, bootPwd_rw</abilityValue></subModule></system><network><subModule><abilityValue>port_rw, dns_rw, email_rw, ftp_rw, ftpSchedule_rw, ipFilter_rw, localLink_rw, pppoe_rw, upnp_rw, wifi_rw, ntp_rw, netStatus_rw, ptop_rw, autontp_rw</abilityValue></subModule></network><alarm><subModule><channelId>0</channelId><abilityValue>motion_rw</abilityValue></subModule><subModule><channelId>1</channelId><abilityValue>motion_rw</abilityValue></subModule></alarm><image><subModule><channelId>0</channelId><abilityValue>ispBasic_rw, ispAdvance_rw, ledState_rw</abilityValue></subModule><subModule><channelId>1</channelId><abilityValue>ispBasic_rw, ispAdvance_rw, ledState_rw</abilityValue></subModule></image><video><subModule><channelId>0</channelId><abilityValue>osdName_rw, osdTime_rw, shelter_rw</abilityValue></subModule><subModule><channelId>1</channelId><abilityValue>osdName_rw, osdTime_rw, shelter_rw</abilityValue></subModule></video><security><subModule><abilityValue>user_rw, userOnline_rw, bootPwd_rw</abilityValue></subModule></security><PTZ><subModule><abilityValue>control_rw, preset_rw, cruise_rw, track_rw, decoder_rw, ptzInfo_ro</abilityValue></subModule></PTZ><streaming><subModule><channelId>0</channelId><abilityValue>preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro</abilityValue></subModule><subModule><channelId>1</channelId><abilityValue>preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro</abilityValue></subModule></streaming></AbilityInfo>
[2023-09-24T14:14:00Z INFO  neolink::utils] roadcam: Connected and logged in
QuantumEntangledAndy commented 9 months ago

Ah a bit much. Also you seem to have stopped it a bit too early.

Could you set RUST_LOG to "neolink=debug" so we only get neolink debug messages and not serde ones

export RUST_LOG="neolink=debug"

And continue until you get a message about streams available at then a list of paths. Just before this point it should print the encode table xml which has all stream informations.

QuantumEntangledAndy commented 9 months ago

If we still can't do from neolink logs then I'll need to see the official client packets which will mean wireshark. Do you have any skills with using wireshark to make packet dumps?

tomfrogger commented 9 months ago

` Yesi can run wireshark if required, youll need to guide me on what you want filtered. RUST_LOG restricted to neolink=debug

[2023-09-24T15:05:19Z INFO neolink] Neolink 0f91c06d0bc914c3c9cbc9a52078746810d2307b release [2023-09-24T15:05:19Z WARN neolink] Deprecated command line option. Please use: neolink rtsp --config=Config { cameras: [CameraConfig { name: "roadcam", camera_addr: Some("IP:9000"), camera_uid: None, username: "admin", password: Some("XX"), stream: All, permitted_users: None, channel_id: 0, mqtt: MqttConfig { enable_motion: true, enable_pings: true, enable_light: true, enable_battery: true, battery_update: 2000, enable_preview: true, preview_update: 2000, discovery: None }, pause: PauseConfig { on_motion: false, on_disconnect: false, motion_timeout: 1.0, mode: "none" }, discovery: Relay, max_encryption: "Aes", strict: false, print_format: None, update_time: false, buffer_size: 25, enabled: true, debug: false, max_discovery_retries: 10 }], bind_addr: "0.0.0.0", bind_port: 8854, tokio_console: false, certificate: None, mqtt: None, tls_client_auth: "none", users: [] } [2023-09-24T15:05:19Z INFO neolink::rtsp] Starting RTSP Server at 0.0.0.0:8854 [2023-09-24T15:05:19Z INFO neolink::rtsp] roadcam: Rtsp Staring [2023-09-24T15:05:19Z DEBUG neolink::common::reactor] Inserting new insance [2023-09-24T15:05:19Z INFO neolink::utils] roadcam: Connecting to camera at Address: IP:9000 [2023-09-24T15:05:19Z DEBUG neolink::common::reactor] New instance created [2023-09-24T15:05:19Z DEBUG neolink::common::reactor] Got instance from reactor [2023-09-24T15:05:19Z DEBUG neolink::common::neocam] roadcam: InUse [2023-09-24T15:05:19Z INFO neolink_core::bc_protocol] roadcam: Trying TCP discovery [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main::Loop [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Stream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Sub [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Extern [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Camera Main::Select Main [2023-09-24T15:05:19Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/extern [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Extern [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/externStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/ExternStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Externstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/externstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/extern, /roadcam/Extern, /roadcam/externStream, /roadcam/ExternStream, /roadcam/Externstream, /roadcam/externstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/main [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Main [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/mainStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/MainStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Mainstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/mainstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/main, /roadcam/Main, /roadcam/mainStream, /roadcam/MainStream, /roadcam/Mainstream, /roadcam/mainstream, /roadcam [2023-09-24T15:05:19Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/sub [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Sub [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/subStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/SubStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Substream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/substream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Preparing at /roadcam/sub, /roadcam/Sub, /roadcam/subStream, /roadcam/SubStream, /roadcam/Substream, /roadcam/substream [2023-09-24T15:05:19Z INFO neolink_core::bc_protocol] roadcam: TCP Discovery success at IP:9000 [2023-09-24T15:05:19Z INFO neolink::utils] roadcam: Logging in [2023-09-24T15:05:19Z DEBUG neolink_core::bc_protocol::login] Populating abilities [2023-09-24T15:05:19Z DEBUG neolink_core::bc_protocol::abilityinfo] Abilities: <?xml version="1.0" encoding="utf-8"?>admingeneral_rw, norm_rw, version_ro, uid_ro, autoReboot_rw, restore_rw, reboot_rw, shutdown_rw, dst_rw, log_ro, performance_ro, upgrade_rw, export_rw, import_rw, bootPwd_rwport_rw, dns_rw, email_rw, ftp_rw, ftpSchedule_rw, ipFilter_rw, localLink_rw, pppoe_rw, upnp_rw, wifi_rw, ntp_rw, netStatus_rw, ptop_rw, autontp_rw0motion_rw1motion_rw0ispBasic_rw, ispAdvance_rw, ledState_rw1ispBasic_rw, ispAdvance_rw, ledState_rwuser_rw, userOnline_rw, bootPwd_rwcontrol_rw, preset_rw, cruise_rw, track_rw, decoder_rw, ptzInfo_ro0preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro1preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro [2023-09-24T15:05:19Z INFO neolink::utils] roadcam: Connected and logged in [2023-09-24T15:05:19Z INFO neolink::common::camthread] roadcam: Camera time is already set: 2023-09-24 17:05:20.0 -01:00:00 [2023-09-24T15:05:19Z INFO neolink::common::neocam] roadcam: Model Reolink Duo WiFi [2023-09-24T15:05:19Z INFO neolink::common::neocam] roadcam: Firmware Version v3.0.0.684_21110101 [2023-09-24T15:05:19Z DEBUG neolink::common::neocam] roadcam: Idle [2023-09-24T15:05:19Z DEBUG neolink::common::neocam] roadcam: Listing Camera Supported Streams mainStream: 2560x1440 subStream: 640x360 mainStream: 2304x1296 subStream: 640x360 mainStream: 1920x1080 subStream: 640x360 [2023-09-24T15:05:19Z DEBUG neolink::common::streamthread] Running Stream Instance Task [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Activating Stream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Waiting for Valid Stream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [2560, 1440], vid_format: None, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::common::streamthread] Running Stream Instance Task [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Activating Stream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Waiting for Valid Stream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [640, 360], vid_format: None, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [2560, 1440], vid_format: H264, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Waiting for Valid Audio [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [2560, 1440], vid_format: H264, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [640, 360], vid_format: H264, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Waiting for Valid Audio [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [640, 360], vid_format: H264, aud_format: None } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [2560, 1440], vid_format: H264, aud_format: Aac } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Creating Client Counters [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Stream Activated [2023-09-24T15:05:19Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/main [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Main [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/mainStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/MainStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Mainstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/mainstream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam [2023-09-24T15:05:19Z INFO neolink::rtsp] roadcam: Avaliable at /roadcam/main, /roadcam/Main, /roadcam/mainStream, /roadcam/MainStream, /roadcam/Mainstream, /roadcam/mainstream, /roadcam [2023-09-24T15:05:19Z DEBUG neolink::rtsp] StreamConfig { resolution: [640, 360], vid_format: H264, aud_format: Aac } [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Creating Client Counters [2023-09-24T15:05:19Z DEBUG neolink::rtsp] roadcam: Stream Activated [2023-09-24T15:05:19Z DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/sub [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Sub [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/subStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/SubStream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/Substream [2023-09-24T15:05:19Z DEBUG neolink::rtsp] Path: /roadcam/substream [2023-09-24T15:05:19Z INFO neolink::rtsp] roadcam: Avaliable at /roadcam/sub, /roadcam/Sub, /roadcam/subStream, /roadcam/SubStream, /roadcam/Substream, /roadcam/substream [2023-09-24T15:05:20Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message id 78 (number: 0) [2023-09-24T15:05:20Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message id 78 (number: 0) [2023-09-24T15:05:20Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message id 79 (number: 0) [2023-09-24T15:05:20Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message id 79 (number: 0) [2023-09-24T15:05:20Z DEBUG neolink_core::bc_protocol::connection::bcconn] Ignoring uninteresting message id 291 (number: 0) [2023-09-24T15:05:34Z DEBUG neolink::common::neocam] roadcam: InUse [2023-09-24T15:05:34Z DEBUG neolink::common::neocam] roadcam: Idle [2023-09-24T15:05:49Z DEBUG neolink::common::neocam] roadcam: InUse [2023-09-24T15:05:49Z DEBUG neolink::common::neocam] roadcam: Idle ^C tomfrogger@debian-hass:~$

QuantumEntangledAndy commented 9 months ago

Ok this is the bit I wanted

roadcam: Listing Camera Supported Streams
mainStream: 2560x1440
subStream: 640x360
mainStream: 2304x1296
subStream: 640x360
mainStream: 1920x1080
subStream: 640x360

However it seems to just have the same name but three times. Maybe it is on another channel?

QuantumEntangledAndy commented 9 months ago

Ok wireshark time. Need to use the offical client to capture starting both streams. I recommend you get the desktop official client and run wire shark and the desktop client from the same machine. Then using the client start one stream stop it, then start the other. Filter the wireshark going to/from the cameras ip.

Also set your camera password to 123456 before hand

tomfrogger commented 9 months ago

reolink client capture 2.zip

Hi many thanks for looking at this, the wireshark captures are attached. Cam IP is .83, Win PC running reolink client and wireshark is on .15. I opened wireshark started the capture filtered to .83, then opened the first stream followed by the second, and then swapped back and forth a few times.

Yes i think it does have 2 channels if you use RTMP stream links channel0 and channel1 are needed to show the different feeds.

rtmp://IP.83/bcs/channel0_main.bcs?channel=1&stream=0&user=admin&password=XX

rtmp://IP.83/bcs/channel1_main.bcs?channel=1&stream=0&user=admin&password=XX

QuantumEntangledAndy commented 9 months ago

If it is different channels then have you tried this

[[cameras]]
name = "Cam01"
channel = 0
# Other options

[[cameras]]
name = "Cam02"
channel = 1
# Other options
tomfrogger commented 9 months ago

If it is different channels then have you tried this

[[cameras]]
name = "Cam01"
channel = 0
# Other options

[[cameras]]
name = "Cam02"
channel = 1
# Other options

I have tried this however no matter what channel options inputed in the .toml (i tried channels 0,1 & 2) neolink can only access the 1st main stream (Channel0 if accessing over RTMP). Both work but only display the same feed.

[[cameras]] name = "roadcam_01" channel = 0 username = "admin" password = "xx" address = "192.168.0.83:9000" stream = "mainStream"

[[cameras]] name = "roadcam_02" channel = 1 username = "admin" password = "xx" address = "192.168.0.83:9000" stream = "mainStream"

tomfrogger commented 9 months ago

Changing Channel = 1 to Channel_id = 1 in the . toml Works! I am getting both streams via neolink now.

Many thanks for the answer!

[[cameras]] name = "roadcam_01" channel_id = 0 username = "admin" password = "xx" address = "192.168.0.83:9000" stream = "mainStream"

[[cameras]] name = "roadcam_02" channel_id = 1 username = "admin" password = "xx" address = "192.168.0.83:9000" stream = "mainStream"

QuantumEntangledAndy commented 9 months ago

Ah great. I forgot that it's channel_id. I think I'll put it in as an alias so you can write it as both channel and channel_id in the toml