IpCamera: New IP Camera Binding

So exciting to see these bindings being developed. I’ve just updated to openhab 2.5 and the updated jar files. Has anyone managed to get the ipcamera binding to work with webcams setup on another raspberry pi using motion?
Cheers

I would try and get it running first using the default options by removing this from the thing file. Cameras which do not have mics are common in the HIK range and it stops the stream from working in ffmpeg if you use those options u specified.

Also INFO level log output is not very useful, it only tells you there is an issue. To look at it in more depth you need to turn on DEBUG or if you want to see what the camera is sending back enable TRACE. If the camera has locked you out due to permissions it would be telling you this in the TRACE level. The readme file has instructions on how to change the logging level and should always be your first place to look for a reason something does not work.

@JoeSchmoe
Yes plenty of people are using motion with Openhab, just search the forum for posts. I have never used it but it should just give you urls to provide snapshots and urls for a stream of some kind. The readme file of the ipcamera binding will also have info in it if you wish to know how to stream the video to chromecasts and the like.

“Often” does not mean much as we all have a different view on what that means. I would update to the newer version first as I only saw that message myself when I went to a Netty version and the newer version has a much newer Netty version in it.

Sounds like a browser setting is stopping the stream. The binding handles every request the same way. You should also learn how to use DEBUG logging for the binding as you can see much more to help fault find and this is covered in the readme file.

Removed FFMPEG_HLS_OUT_ARGUMENTS

Full Trace

2019-12-19 08:46:23.742 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'ipcamera.things'
2019-12-19 08:46:36.633 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - initialize() called.
2019-12-19 08:46:37.641 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - About to connect to the IP Camera using the ONVIF PORT at IP:192.168.192.82:80
2019-12-19 08:46:37.756 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - Following NPE occured when trying to connect to the camera with ONVIF.java.lang.NullPointerException
2019-12-19 08:46:37.759 [ERROR] [ing.ipcamera.handler.IpCameraHandler] - Since an NPE occured when asking the camera about PTZ, the PTZ controls will not work. If the camera does not come online, give the camera the wrong ONVIF port number so it can bypass using ONVIF and still come online.
2019-12-19 08:46:38.330 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.071 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.075 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have  opened  a  brand NEW channel:0   GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.208 [INFO ] [ing.ipcamera.handler.IpCameraHandler] - IpCamera file server for camera 192.168.192.82 has started on port 50002
2019-12-19 08:46:39.214 [INFO ] [ing.ipcamera.handler.IpCameraHandler] - IP Camera at 192.168.192.82 is now online.
2019-12-19 08:46:39.306 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - 401: Mark to re-use,  the channel:0    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.310 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - Setting up the camera to use Basic Auth and resending last request with correct auth.
2019-12-19 08:46:39.338 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.342 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] -    Using the already open channel:0    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.347 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:39.363 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 401 Unauthorized
Date: Thu, 19 Dec 2019 08:46:37 GMT
Server: App-webs/
Content-Length: 178
Content-Type: text/html
Connection: keep-alive
Keep-Alive: timeout=10, max=99
WWW-Authenticate: Digest qop="auth", realm="IP Camera(66106)", nonce="4e4451355a6d4a6c4e4749364d5751314e6a5977596a593d", stale="FALSE"
WWW-Authenticate: Basic realm="IP Camera(66106)"
2019-12-19 08:46:39.396 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 178, cap: 178/178, unwrapped: PooledUnsafeDirectByteBuf(ridx: 551, widx: 551, cap: 1024)), decoderResult: success)
2019-12-19 08:46:39.400 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is        :<!DOCTYPE html>
<html><head><title>Document Error: Unauthorized</title></head>
<body><h2>Access Error: 401 -- Unauthorized</h2>
<p>Authentication Error</p>
</body>
</html>
:
2019-12-19 08:46:39.691 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Connection: close
Content-Length: 471355
2019-12-19 08:46:39.695 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 920, cap: 920/920, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2019-12-19 08:46:39.721 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 08:46:39.764 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 08:46:39.791 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.815 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.842 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.851 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.860 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.927 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.935 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.943 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.954 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.964 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.972 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.980 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.987 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:39.995 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.005 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.013 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.022 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.033 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.041 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.049 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.056 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.064 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.072 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.089 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.099 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.107 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.116 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.123 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.132 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.140 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.148 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.156 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.166 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.173 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.182 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.190 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.199 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.206 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.215 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.223 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.233 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.241 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.250 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.257 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.266 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.274 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.283 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.291 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.299 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.307 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.315 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.322 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.330 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.338 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.346 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.355 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 3491, cap: 3491/3491, unwrapped: PooledUnsafeDirectByteBuf(ridx: 60835, widx: 60835, cap: 65536)), decoderResult: success)
2019-12-19 08:46:40.361 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Snapshot recieved: Binding will now close the channel.
2019-12-19 08:46:40.372 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - commonCameraHandler closed channel:0   URL:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:46.130 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:46.150 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:46.153 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have re-opened  the closed channel:0   GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:46.156 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - The alarm stream was not running for camera 192.168.192.82, re-starting it now
2019-12-19 08:46:46.164 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Event/notification/alertStream
2019-12-19 08:46:46.179 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Event/notification/alertStream
2019-12-19 08:46:46.181 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have  opened  a  brand NEW channel:1   GET:/ISAPI/Event/notification/alertStream
2019-12-19 08:46:46.198 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=boundary
2019-12-19 08:46:46.689 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Connection: close
Content-Length: 472514
2019-12-19 08:46:46.693 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 920, cap: 920/920, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2019-12-19 08:46:46.699 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 08:46:46.708 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 08:46:46.718 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.727 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.736 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.745 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.754 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.763 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.772 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.781 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.791 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.800 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.809 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.818 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.827 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.836 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.845 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.854 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.864 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.873 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.882 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.891 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.900 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.909 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.918 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.927 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.937 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.946 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.955 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.964 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.973 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.982 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:46.991 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.000 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.010 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.019 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.028 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.037 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.045 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.054 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.063 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.072 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.082 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.091 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.100 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.109 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.118 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.127 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.136 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.145 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.154 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.164 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.173 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.182 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.191 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.203 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.212 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.222 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 4650, cap: 4650/4650, unwrapped: PooledUnsafeDirectByteBuf(ridx: 61994, widx: 61994, cap: 65536)), decoderResult: success)
2019-12-19 08:46:47.228 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Snapshot recieved: Binding will now close the channel.
2019-12-19 08:46:47.231 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - commonCameraHandler closed channel:0   URL:/ISAPI/Streaming/channels/101/picture
2019-12-19 08:46:55.798 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 603, cap: 603/603, unwrapped: PooledUnsafeDirectByteBuf(ridx: 603, widx: 603, cap: 1024)), decoderResult: success)
2019-12-19 08:46:55.801 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is        :--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 520

<EventNotificationAlert version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ipAddress>192.168.192.82</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>a4:14:37:6e:94:28</macAddress>
<channelID>1</channelID>
<dateTime>2019-12-19T08:46:54+01:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
<channelName>Camera 01</channelName>
</EventNotificationAlert>
:
2019-12-19 08:47:05.705 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 603, cap: 603/603, unwrapped: PooledUnsafeDirectByteBuf(ridx: 603, widx: 603, cap: 1024)), decoderResult: success)
2019-12-19 08:47:05.708 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is        :--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 520

<EventNotificationAlert version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ipAddress>192.168.192.82</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>a4:14:37:6e:94:28</macAddress>
<channelID>1</channelID>
<dateTime>2019-12-19T08:47:04+01:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
<channelName>Camera 01</channelName>
</EventNotificationAlert>
:
2019-12-19 08:47:28.863 [DEBUG] [pcamera.internal.StreamServerHandler] - Stream Server recieved request         GET:/ipcamera.m3u8
2019-12-19 08:47:28.868 [WARN ] [pcamera.internal.StreamServerHandler] - Exception caught from stream server:{}
java.lang.NullPointerException: null
        at org.openhab.binding.ipcamera.handler.IpCameraHandler.setupFfmpegFormat(IpCameraHandler.java:1005) ~[?:?]
        at org.openhab.binding.ipcamera.internal.StreamServerHandler.channelRead(StreamServerHandler.java:79) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) [bundleFile:4.1.42.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328) [bundleFile:4.1.42.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302) [bundleFile:4.1.42.Final]
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) [bundleFile:4.1.42.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) [bundleFile:4.1.42.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.42.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.42.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
2019-12-19 08:47:28.923 [DEBUG] [pcamera.internal.StreamServerHandler] - Closing a StreamServerHandler.

ffmpeg is working

ffmpeg -rtsp_transport tcp -i rtsp://admin:xxx@192.168.192.82/Streaming/channels/101 -acodec copy -vcodec copy -hls_flags delete_segments /tmpfs/Front/ipcamera.m3u8
ffmpeg version 4.1.4-1+rpt1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8 (Raspbian 8.3.0-6+rpi1)
  configuration: --prefix=/usr --extra-version='1+rpt1~deb10u1' --toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf --incdir=/usr/include/arm-linux-gnueabihf --arch=arm --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-omx-rpi --enable-mmal --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://admin:xxx@192.168.192.82/Streaming/channels/101':
  Metadata:
    title           : Media Presentation
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 2688x1520 [SAR 1:1 DAR 168:95], 20 fps, 4 tbr, 90k tbn, 40 tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
[hls @ 0x1242c10] Opening '/tmpfs/Front/ipcamera0.ts' for writing
Output #0, hls, to '/tmpfs/Front/ipcamera.m3u8':
  Metadata:
    title           : Media Presentation
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 2688x1520 [SAR 1:1 DAR 168:95], q=2-31, 20 fps, 4 tbr, 90k tbn, 20 tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153000, current: 22500; changing to 153001. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153001, current: 45000; changing to 153002. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153002, current: 67500; changing to 153003. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153003, current: 90000; changing to 153004. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153004, current: 112500; changing to 153005. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Non-monotonous DTS in output stream 0:0; previous: 153005, current: 135000; changing to 153006. This may result in incorrect timestamps in the output file.
[hls @ 0x1242c10] Cannot use rename on non file protocol, this may lead to races and temporary partial files
frame=  108 fps=4.8 q=-1.0 Lsize=N/A time=00:00:27.36 bitrate=N/A speed=1.23x   
video:2149kB audio:214kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Startlog

2019-12-19 21:39:22.418 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - About to connect to the IP Camera using the ONVIF PORT at IP:192.168.192.82:80
2019-12-19 21:39:22.520 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - Following NPE occured when trying to connect to the camera with ONVIF.java.lang.NullPointerException
2019-12-19 21:39:22.523 [ERROR] [ing.ipcamera.handler.IpCameraHandler] - Since an NPE occured when asking the camera about PTZ, the PTZ controls will not work. If the camera does not come online, give the camera the wrong ONVIF port number so it can bypass using ONVIF and still come online.
2019-12-19 21:39:23.157 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:23.270 [INFO ] [openhab.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2019-12-19 21:39:23.805 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2019-12-19 21:39:23.903 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:23.907 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have  opened  a  brand NEW channel:0   GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:24.012 [INFO ] [ing.ipcamera.handler.IpCameraHandler] - IpCamera file server for camera 192.168.192.82 has started on port 50002
2019-12-19 21:39:24.021 [INFO ] [ing.ipcamera.handler.IpCameraHandler] - IP Camera at 192.168.192.82 is now online.
2019-12-19 21:39:24.116 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - 401: Mark to re-use,  the channel:0    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:24.122 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - Setting up the camera to use Basic Auth and resending last request with correct auth.
2019-12-19 21:39:24.148 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:24.154 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] -    Using the already open channel:0    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:24.159 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:24.176 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 401 Unauthorized
Date: Thu, 19 Dec 2019 21:39:23 GMT
Server: App-webs/
Content-Length: 178
Content-Type: text/html
Connection: keep-alive
Keep-Alive: timeout=10, max=99
WWW-Authenticate: Digest qop="auth", realm="IP Camera(66106)", nonce="5a445a6a4e4441325a574d364d6a41784f57526d4d54493d", stale="FALSE"
WWW-Authenticate: Basic realm="IP Camera(66106)"
2019-12-19 21:39:24.206 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 178, cap: 178/178, unwrapped: PooledUnsafeDirectByteBuf(ridx: 551, widx: 551, cap: 1024)), decoderResult: success)
2019-12-19 21:39:24.210 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is        :<!DOCTYPE html>
<html><head><title>Document Error: Unauthorized</title></head>
<body><h2>Access Error: 401 -- Unauthorized</h2>
<p>Authentication Error</p>
</body>
</html>
:
2019-12-19 21:39:24.524 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Connection: close
Content-Length: 287568
2019-12-19 21:39:24.533 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 920, cap: 920/920, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2019-12-19 21:39:24.559 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 21:39:24.612 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 21:39:24.642 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.665 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.690 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.699 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.708 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.716 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.725 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.733 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.745 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.753 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.763 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.770 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.780 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.788 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.797 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.805 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.815 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.822 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.831 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.838 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.846 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.853 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.860 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.867 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.875 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.883 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.890 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.897 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.904 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.911 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.918 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.925 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.933 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8120, cap: 8120/8120, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8120, widx: 8120, cap: 65536)), decoderResult: success)
2019-12-19 21:39:24.942 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Snapshot recieved: Binding will now close the channel.
2019-12-19 21:39:24.951 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - commonCameraHandler closed channel:0   URL:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:30.949 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:30.971 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:30.973 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have re-opened  the closed channel:0   GET:/ISAPI/Streaming/channels/101/picture
2019-12-19 21:39:30.978 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - The alarm stream was not running for camera 192.168.192.82, re-starting it now
2019-12-19 21:39:30.988 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/Event/notification/alertStream
2019-12-19 21:39:31.003 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/Event/notification/alertStream
2019-12-19 21:39:31.007 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have  opened  a  brand NEW channel:1   GET:/ISAPI/Event/notification/alertStream
2019-12-19 21:39:31.011 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.192.82/ISAPI/System/IO/inputs/1/status
2019-12-19 21:39:31.024 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=boundary
2019-12-19 21:39:31.031 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for    GET:/ISAPI/System/IO/inputs/1/status
2019-12-19 21:39:31.035 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have  opened  a  brand NEW channel:2   GET:/ISAPI/System/IO/inputs/1/status
2019-12-19 21:39:31.050 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Date: Thu, 19 Dec 2019 21:39:30 GMT
Server: App-webs/
Content-Length: 221
Connection: keep-alive
Keep-Alive: timeout=10, max=99
Content-Type: application/xml
2019-12-19 21:39:31.054 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 221, cap: 221/221, unwrapped: PooledUnsafeDirectByteBuf(ridx: 404, widx: 404, cap: 1024)), decoderResult: success)
2019-12-19 21:39:31.057 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is        :<?xml version="1.0" encoding="UTF-8"?>
<IOPortStatus version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ioPortID>1</ioPortID>
<ioPortType>input</ioPortType>
<ioState>inactive</ioState>
</IOPortStatus>
:
2019-12-19 21:39:31.515 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Connection: close
Content-Length: 287246
2019-12-19 21:39:31.519 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 920, cap: 920/920, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2019-12-19 21:39:31.529 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 21:39:31.539 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2019-12-19 21:39:31.550 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.560 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.570 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.584 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.593 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.602 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.611 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.620 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.629 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.638 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.647 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.656 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.665 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.674 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.682 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.691 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.701 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.710 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.719 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.727 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.736 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.745 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.754 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.763 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.772 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.781 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.796 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.806 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.815 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.824 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.833 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.842 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.852 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 7798, cap: 7798/7798, unwrapped: PooledUnsafeDirectByteBuf(ridx: 7798, widx: 7798, cap: 65536)), decoderResult: success)
2019-12-19 21:39:31.862 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Snapshot recieved: Binding will now close the channel.
2019-12-19 21:39:31.868 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - commonCameraHandler closed channel:0   URL:/ISAPI/Streaming/channels/101/picture

error when accessing stream

2019-12-19 21:44:58.261 [DEBUG] [pcamera.internal.StreamServerHandler] - Stream Server recieved request         GET:/ipcamera.m3u8
2019-12-19 21:44:58.271 [WARN ] [pcamera.internal.StreamServerHandler] - Exception caught from stream server:{}
java.lang.NullPointerException: null
        at org.openhab.binding.ipcamera.handler.IpCameraHandler.setupFfmpegFormat(IpCameraHandler.java:1005) ~[?:?]
        at org.openhab.binding.ipcamera.internal.StreamServerHandler.channelRead(StreamServerHandler.java:79) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) [bundleFile:4.1.42.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328) [bundleFile:4.1.42.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302) [bundleFile:4.1.42.Final]
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [bundleFile:4.1.42.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [bundleFile:4.1.42.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [bundleFile:4.1.42.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) [bundleFile:4.1.42.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) [bundleFile:4.1.42.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044) [bundleFile:4.1.42.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.42.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.42.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_231]
2019-12-19 21:44:58.300 [DEBUG] [pcamera.internal.StreamServerHandler] - Closing a StreamServerHandler.

I am pretty sure I have found the issue thanks to your posting of the logs…
Because ONVIF failed to fetch the rtsp url the binding does not know where to find h264 format video streams. Use this config called FFMPEG_INPUT to over ride and it should then work as it works for me as I always skip ONVIF as the cameras connect much faster…

HLS needs to be h264 format so any url (either http or rtsp will work) that is in that format should work around the issue until I look into this in more detail as ONVIF seems to be having an issue on Openhab 2.5 Stable probably due to another missing dependency.

A heads up if your new to HLS…

It creates a number of files called segments and how many and the length of these segments creates a delay in the video feed. You can tweak the ffmpeg settings to lower the delay but your server needs to keep up or you can increase it to weather times of stress but then you need to wait longer before the stream can start.

Call the ipcamera.m3u8 file and it will start generating the stream of files. If you don’t use the stream in 60 seconds the stream is shut down. If the video feed does not stay being casted then call it a second time within the 60 seconds.

Let me know how it works for you as not many people have provided feedback on the feature.

Think i have everything working.
This is my thing

Thing ipcamera:HIKVISION:front "Front Camera" @ "Cameras"
[
    IPADDRESS="192.168.192.82",
    PASSWORD="xxx",
    USERNAME="admin",
    POLL_CAMERA_MS=2000,
    SERVER_PORT=50001,
    IP_WHITELIST="DISABLE",
    IMAGE_UPDATE_EVENTS=1,
    UPDATE_IMAGE=false,
    FFMPEG_OUTPUT="/tmpfs/front/",
	FFMPEG_INPUT="rtsp://admin:xxx@192.168.192.82/Streaming/channels/102",
	FFMPEG_HLS_OUT_ARGUMENTS="-acodec aac -vcodec copy -hls_flags delete_segments"
  ]

One problem is HLS_URL Item, it gives http://0.0.0.0:50001/ipcamera.m3u8 and should be
http://192.168.192.63:50001/ipcamera.m3u8
We need this to get it working in Google Assistant.

/Mike

Thanks for posting your thing configuration. I have the exact same camera, and could not get it to work. The ffmpeg argument “-f lavfi” (I do not know what it does, read the man page - and I still do not understand…) caused the stream to fail.
Now it works reasonably well. I just quickly tested to stream to VLC. On my openhab server (celeron based) the re-encoding only uses 0.3% cpu according to top.
In VLC there is a “latency” of approx. 13 sec until i get the stream - and there is a notable lag when switching between the stream segments. I belive I have to dive into the ffmpeg manual page to learn some more.

Great news, I will add an error to the next version of the binding if it fails to find a url automatically. A tip is you do not need to add the user/pass to the rtsp link as the binding does it for you, does not matter but it makes changing passwords easier if they are in less places throughout your config files.

Yes that is something I wish to work on after getting onvif running again. I don’t know why fully yet but it happens when Java can not find a ‘sitelocal’ network connection and I suspect it happens when you have multiple network cards on a system like PI3 that has wifi and wired cards… The 0.0.0.0 means the binding is serving on all connections as a fall back. In the next build I should have some logging added to help with this and I may opt to have a manual selection option for when the auto selection fails.

It gives the video feed blank audio otherwise for cameras that have no mic they fail to cast due to missing audio.

Yes it is very light on CPU because it is NOT re-encoding, all it does is place the h264 video unchanged into files and creates a playlist for the files. It keeps the contents the same, it just changes the packaging to make them easier for browsers to play.

If you run the binding in DEBUG mode you will see the ouput of ffmpeg and look at see how long it takes for your system to reach 1.0 x speed which is needed for realtime. This happens on my setup so I call asking for the stream, wait 12 seconds and then open or cast the feed after all the segments are produced and the cpu has reached 1.0 x speed.

I am guessing/hoping a faster CPU will mean this is not necessary, but I have only tested this on an ARM based Odroid C2 and nothing faster. Hopefully @tnemrap or someone else with a faster CPU can report if it works perfectly on a grunty (big) server or if they also need to ask for the stream twice to give it some time to reach realtime speed. Why it takes time to reach 1.0x speed I do not know, it would be worth asking in a ffmpeg forum, but this is why as the buffered segments run out as they are created slower then what your player is playing the files.

this is the options I use and the cameras settings has AAC audio being produced…

FFMPEG_HLS_OUT_ARGUMENTS="-acodec copy -vcodec copy -hls_flags delete_segments -segment_list_flags live -flags -global_header"

Would it be possible to somehow keep streaming continuously, so one could get the realtime stream without any delay? That would be needed for a video doorbell.

Sure you could setup a cron job to do a wget on the file every 30 seconds to keep it running. It is only a text file. The other delay is the total segment size which is six seconds worth from memory which it will always be behind real-time. This is why the snapshots are handy they are real-time and at 1 per second it is not bad for a doorbell situation. The animated gif can be used to rewind in time and show the person walking to your door before they pushed the button which is also cool. Plenty of options.

Bigger issue is how long it takes for a tv to turn on or chromecast to work if you don’t have a tablet running 24 -7

Does anyone have time to do some Beta testing on the next build that also owns a PTZ capable ONVIF camera?

I have been trialling a new ONVIF library that may make onvif alarms and much more possible, but I need to re-implement PTZ first from scratch which it is a lot of work and prone to cause bugs. I am finding the PTZ movements are made much faster than the older lib used in older versions of this binding. If you had trouble with PTZ in the past, this beta operates completely differently and may solve some issues that people were having with the old Onvif lib.

I have a Hikvision PTZ, thar is onvif compatible. I can do some testing.

Great news as I have done as much as I can without testing it on more cameras. I have uploaded the beta now and it has huge number of changes to Onvif but no changes to the rest of the binding. It is important to do a tmp and cache clear out when you change between these versions. I have found the first start after doing a clear it may cause weird errors in your logs so do an extra restart of openhab so it starts up at least twice. My guess is this is due to Openhab not starting up in a predictable order when the cache is missing.

I have found I can now get the camera to move instantly when asked so it is a big improvement for me. I look forward to hearing how it works for others and I will need DEBUG level log output of when the camera connects if there are any issues.

Unfortunately my camera does not respond to any ptz commands from the binding.
I have pm:d you a full log file from the binding.
remove the .txt at the end and unzip.

/d

Just as a follow up, in case someone else is reading this thread.
I had issues getting the stream to work.
After reading the log, I realised my ffmpeg (from standard ubuntu package) was not compiled with “experimental features”. So, for it to work, i had to add " -strict -2" to the arguments:
So, I used the following in FFMPEG_HLS_OUT_ARGUMENTS

Video with Audio: -strict -2 -acodec aac -vcodec copy -hls_flags delete_segments
Video without Audio: -f lavfi -i anullsrc -strict -2 -acodec aac -vcodec copy -hls_flags delete_segments

and now it works like a charm, viewing on the nest hubs or chromecast.

2 Likes

New beta just uploaded with changes made from your feedback, thanks for helping.

Strange that it is able to be used just by adding an extra argument. I’ll check if that argument causes issues first and then make it the new default.

Great thanks for the feedback as it is always great to hear back it works and how well it works for others… What sort of CPU is Openhab running on and does the stream reach 1.0x speed quickly or does it take 10+ seconds to reach full speed if you watch the debug log? Also it is possible to compile ffmpeg with hardware encoders enabled which also may speed things up but this is something I don’t have the spare time to research.

New beta build has the following changes:

  • @tnemrap
    Latest beta has a new way of finding the local IP, it does not use it yet but will place it in the INFO log level when the camera connects, if it shows your local IP I can change the binding over to use the newer method. It will also put DEBUG logs in on what it finds as your network connections using the old method.

  • Fetch a snapshot if they are disabled and the binding is asked for ipcamera.jpg

  • snapshot url is now pointing to ipcamera.jpg after the server connects to make it inline with the other urls. Will display the cameras direct url until the streaming server starts.

  • Fix for bug that stopped ONVIF cameras coming online due to not getting a rtsp url. This uses newer onvif method.

Moving my quest on GitHub Issue #41 @ipCamera to the forums to not only bother poor Matt and maybe get some more help from the community.

I’m using OH2.5 on RPi4_4GB using Openhabian on SD card.
I’m only using the bindings

  • ipcamera
  • network
  • expire
  • astro

I have two HIKVISION DS-2CD2T46G1-4I/SL cameras deployed working properly through their own web interface as well as through my Synology Surveillance Station.

My situation:
ipcamera is working fine for some time. It does properly react to updateImageNow or updateGif. I have simple rules setup which detect the SMART alarm states, trigger a GIF creation and send this through Pushover. I have setup a Habpanel to manually trigger alarms or the updateImageNow or updateGif switches for testing.

Turning log:level to DEBUG on ipcamera you can see, that in this normal state the following statements occur:

2019-12-26 14:01:02.587 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.1.101/ISAPI/Streaming/channels/101/picture
2019-12-26 14:01:02.587 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.1.100/ISAPI/Streaming/channels/101/picture

My issue:
However, after an apparently random time passing, typically a few hours, one of the camera stops updating and get’s stuck - followed by the other one after some additional random time (up 12-20 hours later).

Taking a look at the OH logs, you no longer see the GET requests for the cameras (or just for one, if the other is “stuck”).

In this state, triggering the switches [e.g. through Habpanel] does not do anything. E.g. when triggering updateGif the snapshot files in the local folder do not change.

What i have tried / had a look at:

  • Looking at the OH log end Eventlog. There’s no hint towards errors (except for an IOException, but this does not occure every time:

2019-12-26 12:12:47.358 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - !!! Camera has closed the channel URL:/ISAPI/Streaming/channels/101/picture Cause reported is: {} java.io.IOException: Connection reset by peer

  • Matt has also hinted me in the direction of checking for OOM problems. However, nothing like that in the logs. I increased Xmx just to be on the safe side to 512. This did not solve the issue.
  • SYSLOG does not show a crash or something related to OH [karaf].

I’m happy for any suggestion of what to check next.

One idea:
Is there any reason, why any of the polling threads, that ipcamera binding creates, could stop or be stopped? Can i diagnose something like this (java threads being aborted or stopped, or whether they are running or not?)

Your best starting your own thread as in 1 weeks time this post wont be read anymore. Also you wrote that “it was working fine for some time” so what changed between when it was working fine to now? It is 100% your job to work out what causes this to happen to your setup and not mine and others.
I was going to suggest Syslog, but you have checked that good, but you should look for any errors not just OH related as any issues at an operating system level can effect what is happening inside the JVM. Perhaps it is the Wifi network overheating and crashing or something like that but I would expect to see the binding log something if that was the case, I am at a loss to know the cause.

Yes if a java library crashes due to a bug it could stop the programs flow and not create logs, but I have never seen this happen in the build only during development.
You can also get lockups in Openhab if you run out of timers or threads that are limited by using ‘sleep’ in rules, so you should strip back your system to see if it works fine and then enable things 1 by one until you find the cause that breaks it.

Without knowing what to change on my setup to make it break, or a log to show what is happening I can not help as there are too many possible causes it has to be narrowed down by your testing first.