Skip to content
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

Closed
dermotduffy opened this issue Jul 21, 2019 · 15 comments
Closed

Streaming broken from Arlo Qs #94

dermotduffy opened this issue Jul 21, 2019 · 15 comments
Assignees

Comments

@dermotduffy
Copy link
Contributor

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:

208             return await async_aiohttp_proxy_stream(
209                 self.hass, request, stream, 
210                 'multipart/x-mixed-replace;boundary=ffserver')

Using the new get_reader() call makes it (I think) do what it's supposed to:

208             return await async_aiohttp_proxy_stream(
209                 self.hass, request, await stream.get_reader(),
210                 'multipart/x-mixed-replace;boundary=ffserver')
@twrecked
Copy link
Owner

This is for live streaming? Did you enable the stream component? The cameraMpeg stuff is deprecated - or certainly hasn't been tested in a long while - or isn't the best way to stream stuff.

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.

@twrecked twrecked self-assigned this Jul 21, 2019
@dermotduffy
Copy link
Contributor Author

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.

@twrecked
Copy link
Owner

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 stream component that's going to exercise some code that hasn't been tested in a while. I do recommend trying to get the stream component going if you want live stream. If the same error is occurring then the stream might be failing to install correctly, check the logs, I've had it fail to start because it couldn't install a component. I know with stream enabled the code will use the stream_source method instead so that error should disappear.

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.

@dermotduffy
Copy link
Contributor Author

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:

stream:

... and the recompiled ffmpeg:

ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-nonfree --enable-shared --enable-libtheora --enable-libvorbis -- enable-libxcb --enable-libfreetype --enable-libass --enable-gnutls --enable-libx264 --enable-libmp3lame --enable-opencl --enable-libdrm

... installed in the new package ...

# dpkg -l | grep ffmpeg
ii  ffmpeg                            10:4.1.3-1-1                   amd64        Package created with checkinstall 1.6.2

I get the following exceptions (only with the Arlo Qs):

2019-07-21 12:16:13 ERROR (stream_worker) [homeassistant.components.stream.worker] Error demuxing stream: No dts in packet
2019-07-21 12:16:13 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/stream/core.py", line 176, in get
    return await self.handle(request, stream, sequence)
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 38, in handle
    track, utcnow()).encode("utf-8"), headers=headers)
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 98, in render
    self.render_preamble(track) +
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 72, in render_preamble
    "#EXT-X-TARGETDURATION:{}".format(track.target_duration),
  File "/usr/src/app/homeassistant/components/stream/core.py", line 83, in target_duration
    return round(sum(durations) // len(self._segments)) or 1
ZeroDivisionError: integer division or modulo by zero

Any bright ideas on what could lead the Arlo Qs to behaving differently?

@twrecked
Copy link
Owner

twrecked commented Jul 22, 2019

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

@dermotduffy
Copy link
Contributor Author

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?

@twrecked
Copy link
Owner

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 url= shorty after you ask for the stream.

@twrecked
Copy link
Owner

I'm still investigating this. I actually saw the same no dts in packet message on mine when I stopped the stream from running.

@dermotduffy dermotduffy changed the title Calling non-existent HA-ffmpeg method Streaming broken from Arlo Qs Aug 7, 2019
@docdude
Copy link

docdude commented Sep 16, 2019

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.
`


| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -| || | | || || |
|
_____|| |
||||___||| |____|
|
| W I R E L E S S F R E E D O M

OpenWrt SNAPSHOT, r10975-681acdcc54

root@OpenWrt:~# ffmpeg
ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7.4.0 (OpenWrt GCC 7.4.0 r9754-fbe2e7d15e)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share --mandir=/usr/man --disable-static --enable-shared --disable-ffplay --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-postproc --disable-everything --enable-swscale --enable-libtheora --disable-libxcb --enable-libfreetype --enable-libass --enable-gnutls --disable-opencl --enable-libdrm --enable-decoder='aac,aac_fixed,aac_latm,ac3,ac3_fixed' --enable-decoder='adpcm_g722,adpcm_g726,adpcm_g726le' --enable-decoder='alac,als,amrnb,amrwb,ass,ayuv' --enable-decoder='bitpacked,dca' --enable-decoder='dsd_lsbf,dsd_lsbf_planar,dsd_msbf' --enable-decoder='dsd_msbf_planar,eac3' --enable-decoder='ffv1,flac,flashsv,flashsv2,flv' --enable-decoder='g723_1,g729,gsm,gsm_ms,h263,h263i' --enable-decoder='h263p,h264,hevc,mjpeg,mjpegb' --enable-decoder='mlp,mp1,mp1float,mp2,mp2float,mp3' --enable-decoder='mp3adu,mp3adufloat,mp3float' --enable-decoder='mp3on4,mp3on4float,mpeg1video' --enable-decoder='mpeg2video,mpeg4,mpegvideo' --enable-decoder='msmpeg4v1,msmpeg4v2,msmpeg4v3' --enable-decoder='mts2,opus,pcm_alaw,pcm_bluray' --enable-decoder='pcm_dvd,pcm_f16le,pcm_f24le' --enable-decoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-decoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-decoder='pcm_s16be_planar,pcm_s16le' --enable-decoder='pcm_s16le_planar,pcm_s24be' --enable-decoder='pcm_s24daud,pcm_s24le' --enable-decoder='pcm_s24le_planar,pcm_s32be' --enable-decoder='pcm_s32le,pcm_s32le_planar' --enable-decoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-decoder='pcm_s8_planar,pcm_u16be,pcm_u16le' --enable-decoder='pcm_u24be,pcm_u24le,pcm_u32be' --enable-decoder='pcm_u32le,pcm_u8,r10k,r210' --enable-decoder='rawvideo,truehd' --enable-decoder='vb,vorbis,vp7,vp8,vp9,webp' --enable-decoder='wrapped_avframe,ylc,zlib' --enable-encoder='alac,flac,pcm_alaw' --enable-encoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-encoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-encoder='pcm_s16be_planar,pcm_s16le' --enable-encoder='pcm_s16le_planar,pcm_s24be' --enable-encoder='pcm_s24daud,pcm_s24le' --enable-encoder='pcm_s24le_planar,pcm_s32be' --enable-encoder='pcm_s32le,pcm_s32le_planar' --enable-encoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-encoder='pcm_s8_planar,pcm_u16be' --enable-encoder='pcm_u16le,pcm_u24be,pcm_u24le' --enable-encoder='pcm_u32be,pcm_u32le,pcm_u8' --enable-encoder='wrapped_avframe,zlib' --enable-demuxer='aac,ac3,asf,asf_o,ass,avi,concat,dash,data' --enable-demuxer='dts,dtshd,dvbsub,dvbtxt,eac3,ffmetadata,flac' --enable-demuxer='flv,g723_1,g726,g726le,g729,h263,h264,hevc' --enable-demuxer='hls,live_flv,loas,m4v,matroska,mjpeg,mlp,mov' --enable-demuxer='mp3,mpegps,mpegts,mpegtsraw,mpegvideo,mpjpeg' --enable-demuxer='mv,nc,nsv,ogg,pcm_alaw,pcm_f32be,pcm_f32le' --enable-demuxer='pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be' --enable-demuxer='pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be' --enable-demuxer='pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le' --enable-demuxer='pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le' --enable-demuxer='pcm_u8,rawvideo,rtp,rtsp,s337m,sap,sdp' --enable-demuxer='srt,sup,swf,truehd,vobsub,wav' --enable-demuxer='webm_dash_manifest,webvtt,yuv4mpegpipe' --enable-muxer='ac3,adts,amr,asf,asf_stream' --enable-muxer='ass,avi,bit,dash,data,dts,eac3' --enable-muxer='f4v,ffmetadata,fifo,flac,flv' --enable-muxer='g722,g723_1,g726,g726le,gsm' --enable-muxer='h263,h264,hds,hevc,hls,ipod' --enable-muxer='latm,m4v,matroska,matroska_audio' --enable-muxer='mjpeg,mkvtimestamp_v2,mlp,mov' --enable-muxer='mp2,mp3,mp4,mpeg1system' --enable-muxer='mpeg1vcd,mpeg1video,mpeg2dvd' --enable-muxer='mpeg2svcd,mpeg2video,mpeg2vob' --enable-muxer='mpegts,null,ogg,opus,pcm_alaw' --enable-muxer='pcm_f32be,pcm_f32le,pcm_f64be' --enable-muxer='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-muxer='pcm_s16le,pcm_s24be,pcm_s24le' --enable-muxer='pcm_s32be,pcm_s32le,pcm_s8' --enable-muxer='pcm_u16be,pcm_u16le,pcm_u24be' --enable-muxer='pcm_u24le,pcm_u32be,pcm_u32le' --enable-muxer='pcm_u8,rawvideo,rtp,rtp_mpegts' --enable-muxer='rtsp,sap,segment' --enable-muxer='stream_segment,truehd' --enable-muxer='wav,webm,webm_chunk' --enable-muxer=webm_dash_manifest --enable-muxer=yuv4mpegpipe --enable-parser='aac,aac_latm,ac3,dca' --enable-parser='flac,g729,gsm,h263' --enable-parser='h264,hevc,mjpeg,mpeg4video' --enable-parser='mpegaudio,mpegvideo,opus' --enable-parser='vorbis,vp8,vp9' --enable-protocol='async,cache,concat,data' --enable-protocol='file,hls,http,https,icecast' --enable-protocol='pipe,rtmp,tcp,udp,unix' --enable-bsf='aac_adtstoasc,chomp,dca_core' --enable-bsf='dump_extradata,eac3_core,extract_extradata' --enable-bsf='h264_metadata,h264_mp4toannexb,hevc_mp4toannexb' --enable-bsf='hevc_metadata,hevc_mp4toannexb' --enable-bsf='mjpeg2jpeg,mjpega_dump_header' --enable-bsf='mp3_header_decompress,mpeg2_metadata' --enable-bsf='mpeg4_unpack_bframes,noise,null' --enable-bsf=remove_extradata --enable-bsf='vp9_raw_reorder,vp9_superframe' --enable-bsf=vp9_superframe_split --enable-filter='acopy,adelay,aformat,ainterleave' --enable-filter='ametadata,apad,aresample' --enable-filter='ashowinfo,astreamselect,atrim' --enable-filter='bwdif,channelmap,copy,crop,format' --enable-filter='fps,framerate' --enable-filter='interleave,join,metadata' --enable-filter='movie,null,nullsink' --enable-filter='nullsrc,pad,qp,resample' --enable-filter='realtime,scale,select' --enable-filter='showinfo,streamselect,trim' --enable-filter='volume,w3fdif,yadif' --disable-bzlib --disable-lzma --enable-cross-compile --disable-debug --cross-prefix=arm-openwrt-linux-muslgnueabi- --arch=arm --target-os=linux --ld=arm-openwrt-linux-muslgnueabi-gcc --pkg-config=pkg-config --enable-encoder=flv --enable-encoder=mjpeg --enable-encoder=mpeg4 --enable-decoder=libfdk_aac --enable-encoder=libfdk_aac --enable-libfdk-aac --enable-nonfree --enable-encoder=libmp3lame --enable-libmp3lame --disable-mbedtls --disable-openssl --disable-libopus --enable-decoder=libvorbis --enable-encoder=libvorbis --enable-libvorbis --enable-encoder=libx264 --enable-encoder=libx264rgb --enable-libx264 --enable-gpl --enable-lto
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
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...`

AV==6.1.2 compiled and links to newest libraries libavformat, libavutil...etc.

root@OpenWrt:~# pyav --version PyAV v6.1.2 git origin: git@github.com:mikeboers/PyAV git commit: unknown-commit library configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share --mandir=/usr/man --disable-static --enable-shared --disable-ffplay --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-postproc --disable-everything --enable-swscale --enable-libtheora --disable-libxcb --enable-libfreetype --enable-libass --enable-gnutls --disable-opencl --enable-libdrm --enable-decoder='aac,aac_fixed,aac_latm,ac3,ac3_fixed' --enable-decoder='adpcm_g722,adpcm_g726,adpcm_g726le' --enable-decoder='alac,als,amrnb,amrwb,ass,ayuv' --enable-decoder='bitpacked,dca' --enable-decoder='dsd_lsbf,dsd_lsbf_planar,dsd_msbf' --enable-decoder='dsd_msbf_planar,eac3' --enable-decoder='ffv1,flac,flashsv,flashsv2,flv' --enable-decoder='g723_1,g729,gsm,gsm_ms,h263,h263i' --enable-decoder='h263p,h264,hevc,mjpeg,mjpegb' --enable-decoder='mlp,mp1,mp1float,mp2,mp2float,mp3' --enable-decoder='mp3adu,mp3adufloat,mp3float' --enable-decoder='mp3on4,mp3on4float,mpeg1video' --enable-decoder='mpeg2video,mpeg4,mpegvideo' --enable-decoder='msmpeg4v1,msmpeg4v2,msmpeg4v3' --enable-decoder='mts2,opus,pcm_alaw,pcm_bluray' --enable-decoder='pcm_dvd,pcm_f16le,pcm_f24le' --enable-decoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-decoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-decoder='pcm_s16be_planar,pcm_s16le' --enable-decoder='pcm_s16le_planar,pcm_s24be' --enable-decoder='pcm_s24daud,pcm_s24le' --enable-decoder='pcm_s24le_planar,pcm_s32be' --enable-decoder='pcm_s32le,pcm_s32le_planar' --enable-decoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-decoder='pcm_s8_planar,pcm_u16be,pcm_u16le' --enable-decoder='pcm_u24be,pcm_u24le,pcm_u32be' --enable-decoder='pcm_u32le,pcm_u8,r10k,r210' --enable-decoder='rawvideo,truehd' --enable-decoder='vb,vorbis,vp7,vp8,vp9,webp' --enable-decoder='wrapped_avframe,ylc,zlib' --enable-encoder='alac,flac,pcm_alaw' --enable-encoder='pcm_f32be,pcm_f32le,pcm_f64be' --enable-encoder='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-encoder='pcm_s16be_planar,pcm_s16le' --enable-encoder='pcm_s16le_planar,pcm_s24be' --enable-encoder='pcm_s24daud,pcm_s24le' --enable-encoder='pcm_s24le_planar,pcm_s32be' --enable-encoder='pcm_s32le,pcm_s32le_planar' --enable-encoder='pcm_s64be,pcm_s64le,pcm_s8' --enable-encoder='pcm_s8_planar,pcm_u16be' --enable-encoder='pcm_u16le,pcm_u24be,pcm_u24le' --enable-encoder='pcm_u32be,pcm_u32le,pcm_u8' --enable-encoder='wrapped_avframe,zlib' --enable-demuxer='aac,ac3,asf,asf_o,ass,avi,concat,dash,data' --enable-demuxer='dts,dtshd,dvbsub,dvbtxt,eac3,ffmetadata,flac' --enable-demuxer='flv,g723_1,g726,g726le,g729,h263,h264,hevc' --enable-demuxer='hls,live_flv,loas,m4v,matroska,mjpeg,mlp,mov' --enable-demuxer='mp3,mpegps,mpegts,mpegtsraw,mpegvideo,mpjpeg' --enable-demuxer='mv,nc,nsv,ogg,pcm_alaw,pcm_f32be,pcm_f32le' --enable-demuxer='pcm_f64be,pcm_f64le,pcm_mulaw,pcm_s16be' --enable-demuxer='pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32be' --enable-demuxer='pcm_s32le,pcm_s8,pcm_u16be,pcm_u16le' --enable-demuxer='pcm_u24be,pcm_u24le,pcm_u32be,pcm_u32le' --enable-demuxer='pcm_u8,rawvideo,rtp,rtsp,s337m,sap,sdp' --enable-demuxer='srt,sup,swf,truehd,vobsub,wav' --enable-demuxer='webm_dash_manifest,webvtt,yuv4mpegpipe' --enable-muxer='ac3,adts,amr,asf,asf_stream' --enable-muxer='ass,avi,bit,dash,data,dts,eac3' --enable-muxer='f4v,ffmetadata,fifo,flac,flv' --enable-muxer='g722,g723_1,g726,g726le,gsm' --enable-muxer='h263,h264,hds,hevc,hls,ipod' --enable-muxer='latm,m4v,matroska,matroska_audio' --enable-muxer='mjpeg,mkvtimestamp_v2,mlp,mov' --enable-muxer='mp2,mp3,mp4,mpeg1system' --enable-muxer='mpeg1vcd,mpeg1video,mpeg2dvd' --enable-muxer='mpeg2svcd,mpeg2video,mpeg2vob' --enable-muxer='mpegts,null,ogg,opus,pcm_alaw' --enable-muxer='pcm_f32be,pcm_f32le,pcm_f64be' --enable-muxer='pcm_f64le,pcm_mulaw,pcm_s16be' --enable-muxer='pcm_s16le,pcm_s24be,pcm_s24le' --enable-muxer='pcm_s32be,pcm_s32le,pcm_s8' --enable-muxer='pcm_u16be,pcm_u16le,pcm_u24be' --enable-muxer='pcm_u24le,pcm_u32be,pcm_u32le' --enable-muxer='pcm_u8,rawvideo,rtp,rtp_mpegts' --enable-muxer='rtsp,sap,segment' --enable-muxer='stream_segment,truehd' --enable-muxer='wav,webm,webm_chunk' --enable-muxer=webm_dash_manifest --enable-muxer=yuv4mpegpipe --enable-parser='aac,aac_latm,ac3,dca' --enable-parser='flac,g729,gsm,h263' --enable-parser='h264,hevc,mjpeg,mpeg4video' --enable-parser='mpegaudio,mpegvideo,opus' --enable-parser='vorbis,vp8,vp9' --enable-protocol='async,cache,concat,data' --enable-protocol='file,hls,http,https,icecast' --enable-protocol='pipe,rtmp,tcp,udp,unix' --enable-bsf='aac_adtstoasc,chomp,dca_core' --enable-bsf='dump_extradata,eac3_core,extract_extradata' --enable-bsf='h264_metadata,h264_mp4toannexb,hevc_mp4toannexb' --enable-bsf='hevc_metadata,hevc_mp4toannexb' --enable-bsf='mjpeg2jpeg,mjpega_dump_header' --enable-bsf='mp3_header_decompress,mpeg2_metadata' --enable-bsf='mpeg4_unpack_bframes,noise,null' --enable-bsf=remove_extradata --enable-bsf='vp9_raw_reorder,vp9_superframe' --enable-bsf=vp9_superframe_split --enable-filter='acopy,adelay,aformat,ainterleave' --enable-filter='ametadata,apad,aresample' --enable-filter='ashowinfo,astreamselect,atrim' --enable-filter='bwdif,channelmap,copy,crop,format' --enable-filter='fps,framerate' --enable-filter='interleave,join,metadata' --enable-filter='movie,null,nullsink' --enable-filter='nullsrc,pad,qp,resample' --enable-filter='realtime,scale,select' --enable-filter='showinfo,streamselect,trim' --enable-filter='volume,w3fdif,yadif' --disable-bzlib --disable-lzma --enable-cross-compile --disable-debug --cross-prefix=arm-openwrt-linux-muslgnueabi- --arch=arm --target-os=linux --ld=arm-openwrt-linux-muslgnueabi-gcc --pkg-config=pkg-config --enable-encoder=flv --enable-encoder=mjpeg --enable-encoder=mpeg4 --enable-decoder=libfdk_aac --enable-encoder=libfdk_aac --enable-libfdk-aac --enable-nonfree --enable-encoder=libmp3lame --enable-libmp3lame --disable-mbedtls --disable-openssl --disable-libopus --enable-decoder=libvorbis --enable-encoder=libvorbis --enable-libvorbis --enable-encoder=libx264 --enable-encoder=libx264rgb --enable-libx264 --enable-gpl --enable-lto library license: nonfree and unredistributable libavcodec 58. 35.100 libavdevice 58. 5.100 libavfilter 7. 40.101 libavformat 58. 20.100 libavutil 56. 22.100 libswresample 3. 3.100 libswscale 5. 3.100

I get a connection and stream is initiated, which did not work with prior ffmpeg libraries.
2019-09-16 17:39:36 DEBUG (MainThread) [pyaarlo] url=rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/******WBC40E_1568655572010?egressToken=734041f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=******WBC40E_1568655572010 2019-09-16 17:39:36 INFO (MainThread) [homeassistant.components.stream] Started stream: rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/******7WBC40E_1568655572010?egressToken=******1f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=********BC40E_1568655572010

Stream component worker.py chokes with the following error, apparently no packet.pts so segment_duration variable is null.
This is using HA using Chrome browser.

Exception in thread stream_worker:
Traceback (most recent call last): File "/threading.py", line 926, in _bootstrap_inner File "/threading.py", line 870, in run File "/usr/lib/python3.7/site-packages/homeassistant/components/stream/worker.py", line 101, in stream_worker segment_duration = (packet.pts * packet.time_base) / sequence TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

From worker.py

   # Reset segment on every keyframe
    if packet.is_keyframe:
        # Calculate the segment duration by multiplying the presentation
        # timestamp by the time base, which gets us total seconds.
        # By then dividing by the seqence, we can calculate how long
        # each segment is, assuming the stream starts from 0.

        ` segment_duration = (packet.pts * packet.time_base) / sequence`

and here:

    # First video packet tends to have a weird dts/pts
    if first_packet:
        # If we are attaching to a live stream that does not reset
        # timestamps for us, we need to do it ourselves by recording
        # the first presentation timestamp and subtracting it from
        # subsequent packets we receive.

        `if (packet.pts * packet.time_base) > 1:
            first_pts = packet.pts
        packet.dts = 0
        packet.pts = 0
        first_packet = False`

If I use Iphone, IOS HA app I get this:
Again stream is initiated.

2019-09-16 23:21:34 ERROR (stream_worker) [libav.rtsp] method DESCRIBE failed: 403 Forbidden Exception in thread stream_worker: Traceback (most recent call last): File "/threading.py", line 926, in _bootstrap_inner File "/threading.py", line 870, in run File "/usr/lib/python3.7/site-packages/homeassistant/components/stream/worker.py", line 50, in stream_worker container = av.open(stream.source, options=stream.options) File "av/container/core.pyx", line 275, in av.container.core.open File "av/container/core.pyx", line 227, in av.container.core.Container.__cinit__ File "av/container/core.pyx", line 129, in av.container.core.ContainerProxy.__init__ File "av/container/core.pyx", line 195, in av.container.core.ContainerProxy.err_check File "av/utils.pyx", line 105, in av.utils.err_check av.AVError: [Errno 858797304] Server returned 403 Forbidden (access denied): 'rtsps://vzwow174-z2-prod.ar.arlo.com:443/vzmodulelive/*****71A53B0_1568676071250?egressToken=******20_3a5b_4573_a123_a80978c2e08b&userAgent=iOS&cameraId=******71A53B0_1568676071250' (16: rtsp)

If I test the url in ffmpeg with high loglevel i get the following:

root@OpenWrt:~/.homeassistant# ffmpeg -re -i "rtsps://vzwow311-z2-prod.ar.arlo.c
om:443/vzmodulelive/5GG28C7WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_a
eb6_28f2ccfa0250&userAgent=iOS&cameraId=******WBC40E_1568655572010" -vcodec cop
y -acodec copy test.mp4 -loglevel 99
ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7.4.0 (OpenWrt GCC 7.4.0 r9754-fbe2e7d15e)
CONFIGURATION CUT OUT

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
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
Splitting the commandline.
Reading option '-re' ... matched as option 're' (read input at native frame rate) with argument '1'.
Reading option '-i' ... matched as input url with argument 'rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/*******WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=*******WBC40E_1568655572010'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option 'test.mp4' ... matched as output url.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument 99.
Successfully parsed a group of options.
Parsing a group of options: input url rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/5GG28C7WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=*******WBC40E_1568655572010.
Applying option re (read input at native frame rate) with argument 1.
Successfully parsed a group of options.
Opening an input file: rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/*******WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=*******WBC40E_1568655572010.
Probing rtsp score:100 size:0
[tls @ 0xb5bb3f80] No default whitelist set
[tcp @ 0x10c6570] No default whitelist set
[tcp @ 0x10c6570] Original list of addresses:
[tcp @ 0x10c6570] Address 52.38.96.143 port 443
[tcp @ 0x10c6570] Interleaved list of addresses:
[tcp @ 0x10c6570] Address 52.38.96.143 port 443
[tcp @ 0x10c6570] Starting connection attempt to 52.38.96.143 port 443
[tcp @ 0x10c6570] Successfully connected to 52.38.96.143 port 443
[rtsp @ 0x10c4750] Sending:
OPTIONS rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/*******WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=*******WBC40E_1568655572010 RTSP/1.0
CSeq: 1
User-Agent: Lavf58.20.100

--
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=4b [K]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='RTSP/1.0 200 OK'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=71 [q]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='CSeq: 1'
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=76 [v]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=57 [W]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=77 [w]
[rtsp @ 0x10c4750] ret=1 c=7a [z]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=6d [m]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=67 [g]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=67 [g]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=34 [4]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=62 [b]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Server: Wowza Streaming Engine 4.7.5.02 build21960'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=68 [h]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=68 [h]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Cache-Control: no-cache'
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=62 [b]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=44 [D]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=49 [I]
[rtsp @ 0x10c4750] ret=1 c=42 [B]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=55 [U]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=44 [D]
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=57 [W]
[rtsp @ 0x10c4750] ret=1 c=4e [N]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=4c [L]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=59 [Y]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=55 [U]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=49 [I]
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=4e [N]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=4e [N]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=55 [U]
[rtsp @ 0x10c4750] ret=1 c=4e [N]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=4f [O]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=44 [D]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=47 [G]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=5f [_]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=41 [A]
[rtsp @ 0x10c4750] ret=1 c=4d [M]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=52 [R]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, OPTIONS, ANNOUNCE, RECORD, GET_PARAMETER'
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=79 [y]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=62 [b]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Supported: play.basic, con.persistent'
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line=''
[rtsp @ 0x10c4750] Sending:
DESCRIBE rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/5GG28C7WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=******7WBC40E_1568655572010 RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: Lavf58.20.100

--
[rtsp @ 0x10c4750] ret=1 c=52 [R]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=50 [P]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=34 [4]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=33 [3]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=46 [F]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=62 [b]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='RTSP/1.0 403 Forbidden'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=71 [q]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='CSeq: 2'
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=76 [v]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=57 [W]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=77 [w]
[rtsp @ 0x10c4750] ret=1 c=7a [z]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=6d [m]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=67 [g]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=67 [g]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=34 [4]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=62 [b]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Server: Wowza Streaming Engine 4.7.5.02 build21960'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=68 [h]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=68 [h]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Cache-Control: no-cache'
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=78 [x]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=4d [M]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=33 [3]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=55 [U]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Expires: Mon, 16 Sep 2019 17:55:30 UTC'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=42 [B]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=76 [v]
[rtsp @ 0x10c4750] ret=1 c=7a [z]
[rtsp @ 0x10c4750] ret=1 c=77 [w]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=77 [w]
[rtsp @ 0x10c4750] ret=1 c=33 [3]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=7a [z]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=72 [r]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=2e [.]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6d [m]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=34 [4]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=33 [3]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
[rtsp @ 0x10c4750] ret=1 c=76 [v]
[rtsp @ 0x10c4750] ret=1 c=7a [z]
[rtsp @ 0x10c4750] ret=1 c=6d [m]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=76 [v]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
[rtsp @ 0x10c4750] ret=1 c=47 [G]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=38 [8]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=57 [W]
[rtsp @ 0x10c4750] ret=1 c=42 [B]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=34 [4]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=45 [E]
[rtsp @ 0x10c4750] ret=1 c=5f [_]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=38 [8]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
Last message repeated 2 times
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Content-Base: rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/5GG28C7WBC40E_1568655572010/'
[rtsp @ 0x10c4750] ret=1 c=44 [D]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=4d [M]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=2c [,]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=37 [7]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=35 [5]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=33 [3]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=55 [U]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=43 [C]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Date: Mon, 16 Sep 2019 17:55:30 UTC'
[rtsp @ 0x10c4750] ret=1 c=43 [C]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=2d [-]
[rtsp @ 0x10c4750] ret=1 c=54 [T]
[rtsp @ 0x10c4750] ret=1 c=79 [y]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=6c [l]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=63 [c]
[rtsp @ 0x10c4750] ret=1 c=61 [a]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=2f [/]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
[rtsp @ 0x10c4750] ret=1 c=64 [d]
[rtsp @ 0x10c4750] ret=1 c=70 [p]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Content-Type: application/sdp'
[rtsp @ 0x10c4750] ret=1 c=53 [S]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=73 [s]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=6e [n]
[rtsp @ 0x10c4750] ret=1 c=3a [:]
[rtsp @ 0x10c4750] ret=1 c=20 [ ]
[rtsp @ 0x10c4750] ret=1 c=31 [1]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
Last message repeated 1 times
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=39 [9]
[rtsp @ 0x10c4750] ret=1 c=32 [2]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
[rtsp @ 0x10c4750] ret=1 c=38 [8]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=38 [8]
[rtsp @ 0x10c4750] ret=1 c=3b [;]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=69 [i]
[rtsp @ 0x10c4750] ret=1 c=6d [m]
[rtsp @ 0x10c4750] ret=1 c=65 [e]
[rtsp @ 0x10c4750] ret=1 c=6f [o]
[rtsp @ 0x10c4750] ret=1 c=75 [u]
[rtsp @ 0x10c4750] ret=1 c=74 [t]
[rtsp @ 0x10c4750] ret=1 c=3d [=]
[rtsp @ 0x10c4750] ret=1 c=36 [6]
[rtsp @ 0x10c4750] ret=1 c=30 [0]
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line='Session: 1996920868;timeout=60'
]rtsp @ 0x10c4750] ret=1 c=0d [
[rtsp @ 0x10c4750] ret=1 c=0a [
]
[rtsp @ 0x10c4750] line=''
[rtsp @ 0x10c4750] method DESCRIBE failed: 403 Forbidden
[rtsp @ 0x10c4750] CSeq: 2
Server: Wowza Streaming Engine 4.7.5.02 build21960
Cache-Control: no-cache
Expires: Mon, 16 Sep 2019 17:55:30 UTC
Content-Base: rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/5*******7WBC40E_1568655572010/
Date: Mon, 16 Sep 2019 17:55:30 UTC
Content-Type: application/sdp
Session: 1996920868;timeout=60

rtsps://vzwow311-z2-prod.ar.arlo.com:443/vzmodulelive/******7WBC40E_1568655572010?egressToken=******f5_bbdd_4dda_aeb6_28f2ccfa0250&userAgent=iOS&cameraId=********BC40E_1568655572010: Server returned 403 Forbidden (access denied)

  1. Could it be the userAgent the reason ffmpeg doesnt work from the command line and get forbidden access, apparently it connects but the egress token is not accepted?

  2. Why no pts/dts from the stream component in HA?

Pyarlo is not the culprit, its the stream component in HA....

@twrecked
Copy link
Owner

You have any luck tracking this bug down? If not, I might have to try and track down a Q camera for testing.

@docdude
Copy link

docdude commented Sep 26, 2019

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

Exception in thread stream_worker: Traceback (most recent call last): File "/threading.py", line 926, in _bootstrap_inner File "/threading.py", line 870, in run File "/usr/lib/python3.7/site-packages/homeassistant/components/stream/worker.py", line 101, in stream_worker segment_duration = (packet.pts * packet.time_base) / sequence TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

I've test the same stream with the following:
`import time
import faulthandler; faulthandler.enable()
import av

print("Decoding with default (slice) threading...")
container = av.open('rtsp://192.168.1.4/img/media.sav?channel=1', options={'rtsp_flags': 'prefer_tcp'})
start_time = time.time()
for packet in container.demux():
print(packet)
print('****packet time_base=', packet.time_base, '***pts=', packet.pts,'***dts=', packet.dts)
for frame in packet.decode():
print(frame)

default_time = time.time() - start_time`

Here's the output:
root@OpenWrt:~/HomeAssistantOnOPENWRT/av-6.1.2/tests]python3 decode.py
Decoding with default (slice) threading...
<av.Packet of #0, dts=None, pts=None; 10320 bytes at 0x1020210>
****packet time_base= None ***pts= None ***dts= None
<av.Packet of #0, dts=0, pts=0; 673 bytes at 0x1020290>
****packet time_base= None ***pts= 0 ***dts= 0
<av.Packet of #1, dts=0, pts=0; 1000 bytes at 0x1020210>
****packet time_base= None ***pts= 0 ***dts= 0
<av.Packet of #0, dts=2970, pts=2970; 514 bytes at 0xf3a560>
****packet time_base= None ***pts= 2970 ***dts= 2970
<av.Packet of #0, dts=6030, pts=6030; 482 bytes at 0xf3cfe0>
****packet time_base= None ***pts= 6030 ***dts= 6030
<av.Packet of #0, dts=9000, pts=9000; 445 bytes at 0xf3d100>
****packet time_base= None ***pts= 9000 ***dts= 9000
<av.Packet of #0, dts=11970, pts=11970; 392 bytes at 0xf3a560>

packet.time_base = None is the source of the exception.
If i leave in the print frame inner loop it throws a segmentation fault.

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

@mk-mrshll
Copy link

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:

stream:

... and the recompiled ffmpeg:

ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-nonfree --enable-shared --enable-libtheora --enable-libvorbis -- enable-libxcb --enable-libfreetype --enable-libass --enable-gnutls --enable-libx264 --enable-libmp3lame --enable-opencl --enable-libdrm

... installed in the new package ...

# dpkg -l | grep ffmpeg
ii  ffmpeg                            10:4.1.3-1-1                   amd64        Package created with checkinstall 1.6.2

I get the following exceptions (only with the Arlo Qs):

2019-07-21 12:16:13 ERROR (stream_worker) [homeassistant.components.stream.worker] Error demuxing stream: No dts in packet
2019-07-21 12:16:13 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/stream/core.py", line 176, in get
    return await self.handle(request, stream, sequence)
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 38, in handle
    track, utcnow()).encode("utf-8"), headers=headers)
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 98, in render
    self.render_preamble(track) +
  File "/usr/src/app/homeassistant/components/stream/hls.py", line 72, in render_preamble
    "#EXT-X-TARGETDURATION:{}".format(track.target_duration),
  File "/usr/src/app/homeassistant/components/stream/core.py", line 83, in target_duration
    return round(sum(durations) // len(self._segments)) or 1
ZeroDivisionError: integer division or modulo by zero

Any bright ideas on what could lead the Arlo Qs to behaving differently?

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:

ffmpeg version 4.1.4 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.3.0 (Alpine 8.3.0)
  configuration: --prefix=/usr --enable-avresample --enable-avfilter --enable-gnutls --enable-gpl --enable-libass --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-libtheora --enable-libv4l2 --enable-postproc --enable-pic --enable-pthreads --enable-shared --enable-libxcb --disable-stripping --disable-static --disable-librtmp --enable-vaapi --enable-vdpau --enable-libopus --disable-debug
  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
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'

@twrecked
Copy link
Owner

twrecked commented Dec 4, 2019

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.

@guice
Copy link

guice commented Dec 15, 2019

+1 for me as well. Exactly the same issue as @mk-mrshll. Same error message:

2019-12-14 21:28:28 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/homeassistant/homeassistant/components/http/real_ip.py", line 40, in real_ip_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 73, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 136, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 123, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/stream/core.py", line 181, in get
    return await self.handle(request, stream, sequence)
  File "/usr/src/homeassistant/homeassistant/components/stream/hls.py", line 36, in handle
    body=renderer.render(track, utcnow()).encode("utf-8"), headers=headers
  File "/usr/src/homeassistant/homeassistant/components/stream/hls.py", line 95, in render
    + self.render_playlist(track, start_time)
  File "/usr/src/homeassistant/homeassistant/components/stream/hls.py", line 67, in render_preamble
    return ["#EXT-X-VERSION:3", f"#EXT-X-TARGETDURATION:{track.target_duration}"]
  File "/usr/src/homeassistant/homeassistant/components/stream/core.py", line 83, in target_duration
    return round(sum(durations) // len(self._segments)) or 1
ZeroDivisionError: integer division or modulo by zero
2019-12-14 21:29:37 ERROR (stream_worker) [homeassistant.components.stream.worker] Error demuxing stream: No dts in packet

Division by Zero is an interesting one.

As mentioned, Arlo Pro and Pro 2 work. It's just the Arlo Q that fails.

pz@hermes:~$ ffmpeg -version
ffmpeg version 4.1.4-1build2 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9 (Ubuntu 9.2.1-4ubuntu1)
configuration: --prefix=/usr --extra-version=1build2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --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-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

@twrecked
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants