Page 1 of 1

Mosaic on Windows - I'm just lost

Posted: 26 Aug 2021 02:42
by Linwood
I have been trying this on and off for a couple weeks, and spent many hours trying various configurations, and am totally lost.

I want to take a few RTSP cameras and put them into a mosaic, that I can then read from Home Assistant. So I was trying to set them up with rtp, have also tried multicast based on the wiki:

https://wiki.videolan.org/VLC_HowTo/Make_a_mosaic/

With rtp I managed for a while to get a display, but it was broken up, as though it was only showing the changes and never the key frames, just little squares of data. But correct data, in a mosaic.

With multicast I cannot get anything to happen, and wireshark captures show no data transmitted (>=224.0.0.0).

I have no problem playing the cameras using VLC, i.e. authentication and reachability is fine. There's also no performance issue, plus the frame rate from the cameras is only 4fps (but at 4k). I have the firewalls off on both computers for now just to ensure it is not the issue.

With rtp and reading via rtsp besides the broken video examples, I also mostly get a "access_realrtsp warning: only real/helix rtsp servers supported for now" when i try to play the mosaic via VLC, and nothing I've found online helped. Somewhere along the line of experimenting that crept in.

Telnet shows state of the background and channels says "playing". The logs show a ton of "mosaic debug: too late for picture" errors, which would at least seem to indicate it is trying.

This is what I've tried most recently, lifted more or less verbatim from the wiki example, except with different input.

Code: Select all

Executed with: "c:\program files\videolan\vlc\vlc.exe" --vlm-conf "c:\users\watch\desktop\Test2.vlm" --ttl 12 -I telnet --telnet-password admin --mosaic-width=3840 --mosaic-height=2160 --mosaic-keep-picture --mosaic-rows=1 --mosaic-cols=2 --mosaic-position=1 --mosaic-order=1,2 --ttl 12 --udp-caching 800 Test2.vlm: del all new background broadcast enabled setup background input "C:\users\watch\desktop\BlackBackground.png" setup background option image-duration=-1 setup background output #transcode{sfilter=mosaic,vcodec=mp2v,vb=10000,scale=1}:bridge-in{delay=400,id-offset=100}:standard{access=udp,mux=ts,url=239.255.12.42,sap,name="mosaic"} new ch1 broadcast enabled setup ch1 input "rtsp://admin:xxxxxx@camdriveway.xxxxxxxx:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif" setup ch1 output #duplicate{dst=mosaic-bridge{id=1,height=144,width=180},select=video,dst=bridge-out{id=1},select=audio} new ch2 broadcast enabled setup ch2 input "rtsp://admin:xxxxxx@camFrontDoor.xxxxxx:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif" setup ch2 output #duplicate{dst=mosaic-bridge{id=2,height=144,width=180},select=video,dst=bridge-out{id=2},select=audio} control background play control ch1 play control ch2 play
The log is huge, and I am unfamiliar with the terminology in 98% of it, but this appears to be the area where it should be settling down to broadcast the stream:

Code: Select all

d3d11va debug: Trying to use 'H.264 variable-length decoder, no film grain technology' as input d3d11va debug: NV12 output is supported for decoder H.264 variable-length decoder, no film grain technology. d3d11va debug: Using output format NV12 for decoder H.264 variable-length decoder, no film grain technology d3d11va debug: va_pool_SetupDecoder id 27 3840x2160 count: 18 d3d11va debug: ID3D11VideoDecoderOutputView succeed with 18 surfaces (3840x2160) d3d11va debug: we got 8 decoder configurations d3d11va debug: configuration[0] ConfigBitstreamRaw 2 d3d11va debug: configuration[1] ConfigBitstreamRaw 1 d3d11va debug: configuration[2] ConfigBitstreamRaw 2 d3d11va debug: configuration[3] ConfigBitstreamRaw 2 d3d11va debug: configuration[4] ConfigBitstreamRaw 2 d3d11va debug: configuration[5] ConfigBitstreamRaw 2 d3d11va debug: configuration[6] ConfigBitstreamRaw 1 d3d11va debug: configuration[7] ConfigBitstreamRaw 1 d3d11va debug: DxCreateDecoderSurfaces succeed main debug: using hw decoder module "d3d11va" avcodec: Using D3D11VA (Intel(R) HD Graphics 530, vendor 8086(Intel), device 1912, revision 6) for hardware decoding mosaic debug: too late picture for 2 (148757) main debug: looking for video converter module matching "any": 24 candidates chain debug: Trying to build resize+chroma main debug: looking for video converter module matching "any": 24 candidates main debug: no video converter modules matched main error: Failed to create video converter chain debug: Trying to build chroma+resize main debug: looking for video converter module matching "any": 24 candidates main debug: using video converter module "d3d11_filters" main debug: Filter 'd3d11_filters' (000001b9dbd0ab50) appended to chain main debug: looking for video converter module matching "any": 24 candidates swscale debug: 3840x2160 (3840x2160) chroma: I420 -> 180x144 (180x144) chroma: I420 with scaling using Bicubic (good quality) main debug: using video converter module "swscale" main debug: Filter 'Swscale' (000001b9dbd0b230) appended to chain main debug: using video converter module "chain" mosaic debug: too late picture for 2 (248757)
From that point lots of too late, until I shutdown from telnet. In that time no multicast packets generated (according to wireshark) and no ability to connect to the appropriate IP from VLC on another computer.

Can someone give me a pointer? And a for-sure working example of producing an output I can read with rtsp?