New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Streaming broken from Arlo Qs #94
Comments
This is for live streaming? Did you enable the See here for stream details. You will have to do some extra work to get the ffmpeg to support rtsps - [this] will give you some instructions. |
Ah, interesting. No, I did not have the stream component enabled. Enabling it does not change anything though, the same error will occur if you (or at least I) click on any camera card -- the autogenerated ones. With my hack shown in the posting, it will play back the last recorded video for that camera. Otherwise, it will generate the above exception and show a broken image in a dialog. Is that supposed to work? (Clicking on an auto-generated card) The 'extra work' you mention doesn't include a URL (just '[this]') -- got it handy? Getting streaming enabled would be excellent. If abandoning the default lovelace cards is what I should do, happy to -- I'm just not sure what behaviour to expect. Thanks for the quick reply. |
Ooops. Here you go - the missing link https://github.com/twrecked/hass-aarlo/blob/master/contrib/docker-build-ffmpeg How are you running home-assistant - virtual env? docker? raspberry pi? I think I know what's going on, your clicking on a standard home-assistant picture card. Without the But I would recommend trying the custom aalro-glance card - recently spun out to (here)[https://github.com/twrecked/lovelace-hass-aarlo] - it's designed for aarlo and gives you more options - click to play last recorded video, click to play stream, take a snapshot, icons for motion detection, access to the recordings library and so on. Hope that makes sense, it's getting late here. |
Thanks for the advice. I've made good progress, the custom card is beautiful -- nice work. I've ran into something new -- the live streaming works on Arlo Pro 2 cameras, but not my Arlo Qs. This is with the stream component enabled:
... and the recompiled ffmpeg:
... installed in the new package ...
I get the following exceptions (only with the Arlo Qs):
Any bright ideas on what could lead the Arlo Qs to behaving differently? |
Does this happen every time? It looks like a bug in the stream component but I'll see if anybody else with ArloQ cameras has got this working. edit: Seems like this guy is seeing a similar issue: https://community.home-assistant.io/t/generic-ip-camera-sp32cam-invalid-data/109889 |
Yes -- this is 100% repeatable. I think the dts bug may be a fairly generic error associated with the stream not producing data as expected. I have 5 cameras total 3 of which are Qs. All 3 suffer this issue. The 2 Pro 2s work just fine. Are you aware of anyone with a Q that's verified this works? |
I asked around somebody else has hit the exact same problem as you! Are you ok looking through some debug, I'd like to know the type of stream the device is trying to get. Look for line starting with |
I'm still investigating this. I actually saw the same |
Thank you for your work! I have similar streaming issues with Arlo Ultra cameras, everything else works great. I run HA 0.98.5 virtual env on OpenWrt, Netgear Nighthawk R8000, newest snapshot. Have recompiled ffmpeg 4.1.4 with everything turned on including TLS support, in OpenWrt. | |.-----.-----.-----.| | | |.----.| |_
|
You have any luck tracking this bug down? If not, I might have to try and track down a Q camera for testing. |
I've tried with a local rtsp stream from an IP camera and ive found that upgrading to FFMPEG 4 and recompiling pyav 6.1.2 the error seems to be with packet.time_base = None
I've test the same stream with the following: print("Decoding with default (slice) threading...") default_time = time.time() - start_time` Here's the output: packet.time_base = None is the source of the exception. This is the same with the Arlo Ultra stream. As you can see it connects to the Wowza server but then throws the exception, it errors out with forbidden access, no sure if this is because worker.py can't process the stream Still looking to see what's causing this because now nothing streams because of packet.time_base = None |
I just want to chime in here and say I have the exact same issue with my Arlo Q. I'm running the docker image homeassistant/qemux86-64-homeassistant:0.102.3 on a ubuntu host. I haven't messed around with recompiling ffmpeg or anything like that, because I read in some threads that it shouldn't be needed anymore in the newer versions of homeassistant. Here's what my ffmpeg config looks like when I attach to the image:
|
I actually haven't had a lot of time to look at this - real work kept getting in the way - but I'll make an effort this week to have a look. My gut feeling is it's going to be out of my control, once I've got the stream there's not much I can do, but I'll look at the stream code and see if I can see a workaround. |
+1 for me as well. Exactly the same issue as @mk-mrshll. Same error message:
Division by Zero is an interesting one. As mentioned, Arlo Pro and Pro 2 work. It's just the Arlo Q that fails.
|
I'm closing this one but it has been re-raised in #151. Please add anything new there. I'm going to make a concerted effort to get this one fixed. |
Caveat: Only a few hours in to home-assistant and hass-arlo, so high probability of PEBKAC here...
A fresh install with Arlo cameras and this custom component resulted in this error upon clicking on any camera:
2019-07-20 17:17:02 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start
resp = await task
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/app/homeassistant/components/http/real_ip.py", line 33, in real_ip_middleware
return await handler(request)
File "/usr/src/app/homeassistant/components/http/ban.py", line 67, in ban_middleware
return await handler(request)
File "/usr/src/app/homeassistant/components/http/auth.py", line 216, in auth_middleware
return await handler(request)
File "/usr/src/app/homeassistant/components/http/view.py", line 115, in handle
result = await result
File "/usr/src/app/homeassistant/components/camera/init.py", line 478, in get
return await self.handle(request, camera)
File "/usr/src/app/homeassistant/components/camera/init.py", line 514, in handle
return await camera.handle_async_mjpeg_stream(request)
File "/config/custom_components/aarlo/camera.py", line 211, in handle_async_mjpeg_stream
'multipart/x-mixed-replace;boundary=ffserver')
File "/usr/src/app/homeassistant/helpers/aiohttp_client.py", line 124, in async_aiohttp_proxy_stream
data = await stream.read(buffer_size)
AttributeError: 'CameraMjpeg' object has no attribute 'read'
This read method was removed from HA-ffmpeg in: home-assistant-libs/ha-ffmpeg@9805a00
aarlo/camera.py:
Using the new get_reader() call makes it (I think) do what it's supposed to:
The text was updated successfully, but these errors were encountered: