IpCamera: New IP Camera Binding

@matt1 thank you for the information, i will start doing some research.

Thank you again for all the support!

I can get down to 5 seconds as well with the parameters added as well

Its alot better, but its still too much for a doorbell, in my opinion
 I®ll go for a new ipcamera with mjeg support. But I wish I could get a clarification, that it will be any better before I order 


Anyone??

1 Like

Mjpeg will have much less lag as it does not use segmented files. However some things for you to be aware of and they are.

  1. Some cameras only do 4:3 format and not widescreen 16:9 with mjpeg.
  2. Some cameras do not go very high res in Mjpeg.
  3. Some cameras give you three streams so you can set them up how you prefer but they usually have limitations on what they can do on each stream.

Read the manual and specs before you buy and it may be a good idea to only buy 1 to try.

Thanks Matt
 The Dahau I®m looking at does seem to support mjpeg, higres and 16:9 format, as well as three streams.

Not sure about the new app version with site maps as I use habpanel with a vpn now, but you can create a static HTML page that integrates all streams in a single page (how I used to do it before this binding) and there are plenty of javascript image/video players out there you can integrate

I have the EZVIZ Husky Air C3W. I struggling to stream my video in openhab.

I can stream from VLC using a rstp url: rtsp://admin:password@192.168.x.x:554.

This is how my thing configuration looks like:

Thing ipcamera:HIKVISION:001 [
IPADDRESS=“192.168.x.x”,
USERNAME=“admin”,
PASSWORD=“PASSWORD”,
POLL_CAMERA_MS=2000,
PORT=554
]

My camera shows as online when i navigate to things in paperui.

But get the following error in openhab.log:

2020-02-09 19:22:40.625 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - !!! Camera possibly closed the channel on the binding, cause reported is: {}
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:1.8.0_211]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[?:1.8.0_211]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[?:1.8.0_211]
at sun.nio.ch.IOUtil.read(IOUtil.java:192) ~[?:1.8.0_211]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[?:1.8.0_211]
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253) ~[bundleFile:4.1.45.Final]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1133) ~[bundleFile:4.1.45.Final]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350) ~[bundleFile:4.1.45.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148) [bundleFile:4.1.45.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) [bundleFile:4.1.45.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) [bundleFile:4.1.45.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) [bundleFile:4.1.45.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [bundleFile:4.1.45.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.45.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.45.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.45.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_211]

Would anyone be able to assist me with the setup of my camera?

Hi

I have a cheap Chinese ip camera at the front door that I would like to stream to my Nest HUB. when someone rings the doorbell

I have an RTSP stream that I would like to convert to HLS (I think) to support Casting.

i would also have the opportunity to tell google that it should show me the camera at the front door if itÂŽs possible.

My system is running on an RPI 3b + with an external HDD running Openhabian.

IP CAM model: 50H20L_18EV200_S38
My IP cam RTSP:
rtsp: //192.168.0.163: 554 / user = admin_password = tlJwpbo6_channel = 1_stream = 0.sdp? real_stream

i’m not sure if i should install ffmpeg besides the jar files i already installed to get what i want.

Alternatively, you can also download a JPG file from the camera if all else fails
http://192.168.0.163/webcapture.jpg?command=snap&channel=0

Delete that line so it uses the default setting for hikvision. The issue is the camera refuses http connections and traffic to its RTSP port.
See the readme about adding a server port to unlock the bindings advanced features.

@zamzon
What does the readme say about getting hls to work? Has step by step instruction be sure to not skip any.

@Kim_Andersen do you use Reolink cams? I’m unable to get them up and running.

I use the 410’s
VLC shows me the livestream over rtsp - but im unable to get them running in OH2
Also used httponly - this gave me an image, but a lot of error, too.

Maybe you could help me?!

Regards

1 Like

Yes, it would help if you tell me and others, which errors you get

This is my things file for my RCL 410:

Thing ipcamera:HTTPONLY:Reolink "Frontdoor Camera" @ "Cameras"
[
    IPADDRESS="10.4.28.202",
    USERNAME="username",
    PASSWORD="password",
    PORT=80,
    POLL_CAMERA_MS=2000,
    SERVER_PORT=54321,
    IMAGE_UPDATE_EVENTS=1,
    UPDATE_IMAGE=false,
    GIF_PREROLL=1,
    GIF_POSTROLL=5,
    IP_WHITELIST="DISABLE",
//    SNAPSHOT_URL_OVERRIDE="http://10.4.28.202/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=username&password=password",
//    STREAM_URL_OVERRIDE="http://192.168.1.181:81/stream",

    FFMPEG_INPUT="rtsp://username:password@10.4.28.202:554//h264Preview_01_main",
    FFMPEG_OUTPUT="/etc/openhab2/html/camera1/",
    FFMPEG_HLS_OUT_ARGUMENTS="-strict -2 -acodec copy -vcodec copy -hls_flags delete_segments -segment_list_flags live -flags -global_header -hls_time 1 -hls_allow_cache 0 -hls_list_size 3"
]

Notice, I have NOT activated the SNAPSHOT_URL_OVERRIDE cause it gives an error.
I have not tried STREAM_URL_OVERRIDE. I suspect it will give an error as well.

Remember to set the username and password where itÂŽs required.

1 Like

Thank you for your comment @matt1.

I tried your suggestion.

I removed the port and added server port now the camera shows as offline in openhab.

Any ideas
 how can i force openhab to only use rtsp?

Of Course, im sorry. -.-

This is my .thing config:

Thing ipcamera:ONVIF:Eingang "Eingang" @ "Cameras"
[
    IPADDRESS="192.168.178.125",
    PASSWORD="xxPASSxx",
    USERNAME="xxUSERxx",
    POLL_CAMERA_MS=1000,
    ONVIF_PORT=8000,
    SERVER_PORT=50002,
    UPDATE_IMAGE=false,
    GIF_PREROLL=1,
    GIF_POSTROLL=6,
    FFMPEG_OUTPUT="/etc/openhab2/html/cam/",
    FFMPEG_INPUT="rtsp://XXUSERxx:xxPASSxx@192.168.178.125:554//h264Preview_01_sub",
    SNAPSHOT_URL_OVERRIDE="http://192.168.178.125/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=REO921647&user=xxUSERxx&password=xxPASSxx"
]

This is my DEBUG - Log:

2020-02-10 21:34:22.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=REO921647&user=openhab&password=habopen

2020-02-10 21:34:22.363 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Header matched, this may be a Reolink camera. !!

2020-02-10 21:34:22.367 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Using more RAM as this is a Reolink camera. Report if this is not your brand !!

2020-02-10 21:34:22.372 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.

2020-02-10 21:34:23.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=REO921647&user=openhab&password=habopen

2020-02-10 21:34:23.368 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Header matched, this may be a Reolink camera. !!

2020-02-10 21:34:23.372 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Using more RAM as this is a Reolink camera. Report if this is not your brand !!

2020-02-10 21:34:23.376 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.

2020-02-10 21:34:23.711 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - ! Channel was found idle for more than 15 seconds so closing it down. !

2020-02-10 21:34:24.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=REO921647&user=openhab&password=habopen

2020-02-10 21:34:24.362 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Header matched, this may be a Reolink camera. !!

2020-02-10 21:34:24.366 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Using more RAM as this is a Reolink camera. Report if this is not your brand !!

2020-02-10 21:34:24.376 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.

2020-02-10 21:34:25.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=REO921647&user=openhab&password=habopen

2020-02-10 21:34:25.318 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Header matched, this may be a Reolink camera. !!

2020-02-10 21:34:25.322 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - !! Using more RAM as this is a Reolink camera. Report if this is not your brand !!

2020-02-10 21:34:25.326 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.

2020-02-10 21:34:25.509 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - !!!! Camera possibly closed the channel on the binding, cause reported is: {}

java.lang.ArrayIndexOutOfBoundsException: 768000

	at org.openhab.binding.ipcamera.handler.IpCameraHandler$CommonCameraHandler.channelRead(IpCameraHandler.java:762) ~[?:?]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [bundleFile:4.1.45.Final]

	at org.openhab.binding.ipcamera.internal.MyNettyAuthHandler.channelRead(MyNettyAuthHandler.java:239) [bundleFile:?]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:308) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:422) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) [bundleFile:4.1.45.Final]

	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [bundleFile:4.1.45.Final]

	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.45.Final]

	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.45.Final]

	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.45.Final]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

2020-02-10 21:34:25.522 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - !!!! Camera possibly closed the channel on the binding, cause reported is: {}

java.lang.ArrayIndexOutOfBoundsException: 768001

	at org.openhab.binding.ipcamera.handler.IpCameraHandler$CommonCameraHandler.channelRead(IpCameraHandler.java:762) ~[?:?]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [bundleFile:4.1.45.Final]

	at org.openhab.binding.ipcamera.internal.MyNettyAuthHandler.channelRead(MyNettyAuthHandler.java:239) [bundleFile:?]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) [bundleFile:4.1.45.Final]

	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) [bundleFile:4.1.45.Final]

	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [bundleFile:4.1.45.Final]

	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [bundleFile:4.1.45.Final]

	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [bundleFile:4.1.45.Final]

	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) [bundleFile:4.1.45.Final]

	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [bundleFile:4.1.45.Final]

	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [bundleFile:4.1.45.Final]

	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [bundleFile:4.1.45.Final]

	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [bundleFile:4.1.45.Final]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

And here is the DEBUG - Log without SNAPSHOT_URL_OVERRIDE:

21:39:05.256 [INFO ] [del.core.internal.ModelRepositoryImpl] - Loading model 'ipcamera.things'
21:39:05.388 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'ipcamera:ONVIF:Eingang' changed from UNINITIALIZED to INITIALIZING
21:39:06.415 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - About to connect to the IP Camera using the ONVIF PORT at IP:192.168.178.125:8000
21:39:06.433 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - Camera failed to report a valid Snaphot URL, try over-riding the Snapshot URL auto detection by entering a known URL.
21:39:06.441 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'ipcamera:ONVIF:Eingang' changed from INITIALIZING to OFFLINE (CONFIGURATION_ERROR): Camera failed to report a valid Snaphot URL, try over-riding the Snapshot URL auto detection by entering a known URL.
21:39:08.182 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - We sucessfully connected to a ONVIF SERVICE:be.teletask.onvif.models.OnvifServices@183a0bc
21:39:08.201 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - Fetching the number of Media Profiles this camera supports.
21:39:08.247 [WARN ] [ding.ipcamera.handler.IpCameraHandler] - We got an ONVIF error400:<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsdd="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xmime5="http://www.w3.org/2005/05/xmlmime" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:wsrfr="http://docs.oasis-open.org/wsrf/r-2" xmlns:ns1="http://www.onvif.org/ver10/actionengine/wsdl" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:ns10="http://www.onvif.org/ver10/events/wsdl/PullPointBinding" xmlns:ns11="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding" xmlns:ns12="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding" xmlns:ns13="http://www.onvif.org/ver10/network/wsdl/RemoteDiscoveryBinding" xmlns:ns14="http://www.onvif.org/ver10/network/wsdl/DiscoveryLookupBinding" xmlns:tdn="http://www.onvif.org/ver10/network/wsdl" xmlns:ns3="http://www.onvif.org/ver20/analytics/wsdl/RuleEngineBinding" xmlns:ns4="http://www.onvif.org/ver20/analytics/wsdl/AnalyticsEngineBinding" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:ns5="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding" xmlns:ns6="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:ns7="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding" xmlns:ns8="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:ns9="http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding" xmlns:tad="http://www.onvif.org/ver10/analyticsdevice/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tls="http://www.onvif.org/ver10/display/wsdl" xmlns:tmd="http://www.onvif.org/ver10/deviceIO/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trc="http://www.onvif.org/ver10/recording/wsdl" xmlns:trp="http://www.onvif.org/ver10/replay/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:trv="http://www.onvif.org/ver10/receiver/wsdl" xmlns:tse="http://www.onvif.org/ver10/search/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><SOAP-ENV:Body><SOAP-ENV:Fault SOAP-ENV:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><SOAP-ENV:Code><SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value><SOAP-ENV:Subcode><SOAP-ENV:Value>ter:NotAuthorized</SOAP-ENV:Value></SOAP-ENV:Subcode></SOAP-ENV:Code><SOAP-ENV:Reason><SOAP-ENV:Text xml:lang="en">Sender not Authorized</SOAP-ENV:Text></SOAP-ENV:Reason></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

EDIT:

Ok, i got a little further - thanks to your config.
It’s writing snapshots now and i was able to create ipcamera.gif.

I think i’ll try now to start from here.
Thank you very much - you helped me a lot here <3

Regards,
Axel

1 Like

@Kim_Andersen

Have you been able to get a stream up and running?
Or to get xxx.mjpeg as output?

Is this even possible with just the HTTP bind?
As in the readme described i tried STREAM_URL_OVERRIDE=“ffmpeg” - but it throws me errors:

22:26:16.620 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - All MJPEG streams have stopped, so closing the MJPEG source stream now.
22:26:16.691 [DEBUG] [ipcamera.internal.StreamServerHandler] - Stream Server recieved request   GET:/ipcamera.mjpeg
22:26:16.697 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125ffmpeg
22:26:41.712 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - All MJPEG streams have stopped, so closing the MJPEG source stream now.
22:26:46.738 [DEBUG] [ipcamera.internal.StreamServerHandler] - Stream Server recieved request   GET:/ipcamera.mjpeg
22:26:46.746 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.178.125ffmpeg
22:27:11.762 [DEBUG] [ding.ipcamera.handler.IpCameraHandler] - All MJPEG streams have stopped, so closing the MJPEG source stream now.

and

22:23:27.253 [DEBUG] [nhab.binding.ipcamera.internal.Ffmpeg] - [rtsp @ 0xed4280] RTP: PT=61: bad cseq 49f9 expected=4c0d
22:23:27.317 [DEBUG] [nhab.binding.ipcamera.internal.Ffmpeg] - [mjpeg @ 0xef58a0] Invalid pts (2147483647) <= last (2147483647)
22:23:27.322 [DEBUG] [nhab.binding.ipcamera.internal.Ffmpeg] - Video encoding failed
22:23:27.327 [DEBUG] [nhab.binding.ipcamera.internal.Ffmpeg] - Conversion failed!

ipcamera.mjpeg is not reachable - am i missing something? O.o

Thanks your the first to post actual log output in debug. You can provide a snapshot URL to the binding if you do one of two things.

  1. Lower the size of the snapshot. My guess is you have upped the jpg quality setting to max? Or is that the default setting of the camera? Compression is a good thing and if your camera allows it use it to drop the file size of the jpg as it does not impact image quality as much as file size.

  2. Next build I can allow up to 1mb to capture the snapshot. If you do the above it should work right away without waiting for the next build.

Remove that and it should work, the readme was updated and the binding version has not been made yet that recognised that line. I am working on a new feature that is almost ready.

Hey @matt1,

my h.264 Profile is set to “Baseline” as Reolink recommend for rtsp streaming.
If i grab the image directly over the url, i get a filesize of about 195 KB.

Yep i tried that before, but i’m unable to recieve any mjpeg output. :grimacing:

Can you post the output when you enter this into the Linux terminal?

wget -S yourSnapshotUrlHere

It should report what the content length header was and how much got downloaded.

Yes HLS stream woks
 Find examples in the readme regarding how to test using sitemap.
I havnÂŽt got mjepg output only hls.

Here is the response when i wget ipcamera.jpg:
–2020-02-10 23:30:00-- http://192.168.178.35:54321/ipcamera.jpg
Verbindungsaufbau zu 192.168.178.35:54321 
 verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet 

HTTP/1.1 200 OK
content-type: image/jpg
cache-control: no-cache
connection: close
content-length: 5955
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: content-length
LĂ€nge: 5955 (5,8K) [image/jpg]
Wird in »ipcamera.jpg« gespeichert.

ipcamera.jpg                                         100%[====================================================================================================================>]   5,82K  --.-KB/s    in 0s

2020-02-10 23:30:00 (91,9 MB/s) - »ipcamera.jpg« gespeichert [5955/5955]

And this is the output, when i wget the snapshot url from my Reolink:
[1] 10402
[2] 10403
[3] 10404
[4] 10405
[2] Fertig channel=0

@Kim_Andersen - not yet, but i guess it has something to do with ffmpeg, maybe?! I’m close to a solution but let’s see what matt will say. :slight_smile:

Thank you all very much for your help.

EDIT:
I got a HLS stream running as well - i think i’ll go from here and try to implement this in my habpanel.