Open nijhawank opened 3 years ago
Haven't done much testing, but here's a basic config for Camera-ffmpeg that should get you started:
{
"name": "Wyze",
"videoConfig": {
"source": "-i http://CAMIP:12345",
"stillImageSource": "-i http://CAMIP:12345 -vframes 1 -r 1",
"vcodec": "copy",
"additionalCommandline": "-pix_fmt yuv420p -re -force_key_frames -x264-params intra-refresh=1:bframes=0",
"maxStreams": 2,
"maxWidth": 1920,
"maxHeight": 1088,
"maxBitrate": 1200,
"audio": false,
"packetSize": 188,
"maxFPS": 15
}
}
It worked.
Seems like this has been resolved. Closing.
@FiveLeavesLeft Can we keep this open for a while?
I'd like to see what other people are using or if anyone has some improvements to add.
@mrlt8 . Sure, reopening.
Though it works, there’s a big delay (6-7 seconds) at the opening of steam. Also I see this error messages in the home bridge logs like below…
5/3/2021, 8:49:25 AM [Camera FFmpeg] [Wyze] [Snapshot] Last message repeated 1 times 5/3/2021, 8:49:25 AM [Camera FFmpeg] [Wyze] [Snapshot] [h264 @ 0x2414290] decode_slice_header error 5/3/2021, 8:49:25 AM [Camera FFmpeg] [Wyze] [Snapshot] [h264 @ 0x2414290] no frame! 5/3/2021, 8:49:30 AM [Wyze] The image snapshot handler for the given accessory is slow to respond! See https://git.io/JtMGR for more info. 5/3/2021, 8:49:31 AM [Camera FFmpeg] [Wyze] Fetching snapshot took 6.086 seconds. It is highly recommended you switch to unbridge mode. 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] Starting video stream: native x native, native fps, ??? kbps 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] decode_slice_header error 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] no frame! 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] decode_slice_header error 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] no frame! 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] decode_slice_header error 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] no frame! 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] non-existing PPS 0 referenced 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] decode_slice_header error 5/3/2021, 8:49:33 AM [Camera FFmpeg] [Wyze] [h264 @ 0x24c27f0] [error] no frame! 5/3/2021, 8:49:39 AM [Camera FFmpeg] [Wyze] Getting the first frames took 5.929 seconds. 5/3/2021, 8:50:00 AM [Camera FFmpeg] [Wyze] Stopped video stream.
@nijhawank , is this with the version I released yesterday or the previous version? This is kind of expected because h264 frames have several different types and the software needs to wait until one of a particular type arrives. The new version will get rid of the errors messages but the delay will still be there.
This is the previous version. Do I have to reflash your new version, or just an updated libimp.so would suffice? If that's the case, can you please provide the link to the update libimp.so
I made some tweaks to my original config:
{
"name": "CAM-NAME",
"manufacturer": "Wyze",
"model": "Cam v2",
"unbridge": true,
"videoConfig": {
"source": "-i http://CAM-IP:12345",
"stillImageSource": "-i http://CAM-IP:12345 -vframes 1 -r 1",
"vcodec": "copy",
"maxStreams": 1,
"audio": false,
"packetSize": 188
}
}
I removed most of the extra setting since I couldn't really see any noticeable difference. (about 5-8 seconds to load first frame)
Added unbridge to prevent the camera from slowing down the homebridge.
Could probably also remove stillImageSource
without any negatives.
@nijhawank I don't think there is much more that can be tweaked in homebridge to get the camera to load any faster since the stream has a similar delay in VLC (keyframe issue?).
You could try playing around with some additionalCommandline
options https://ffmpeg.org/ffmpeg-formats.html to see if that will get rid of some of your errors.
It's probably very similar to the HomeBridge settings but in case anyone is interested in using this on Frigate for Home Assistant sees this, here's settings that work for me
My hardware acceleration is turned off for other reasons but the important parts are the import_args
otherwise, you'll get a green video
@romedtino Thanks for this. Are you getting good results with Frigate? I can't seem to stream for more than 10 sec without it losing connection. MPV seems to work fine. I also cannot get the stream into home assistant driectly, although it will show the static image updated every 10 sec in lovelace.
Here's my config to get motion notification/automation in homekit/homebridge:
"motion": true,
for your camera#!/bin/sh
SLEEP=10
BRIDGE=<homebridge ip and "HTTP port" set earlier>
CAMERA=<cam name in homebridge>
while : ; do
sleep $SLEEP
JPG=$(ls -t /media/mmc/alarm/$(date +'%Y%m%d')/*.jpg | head -n 1)
[[ $(echo $JPG | wc -w) -eq 0 ]] && continue
[[ -z ${LAST+x} ]] && LAST=$JPG && continue
if [[ $JPG != $LAST ]]; then
wget -q -O - "http://$BRIDGE/motion?$CAMERA"
LAST=$JPG
fi
done
You can auto start the script by calling it from export CUSTOM_SCRIPT=
in /configs/wyze_hack.cfg
/media/mmc/alarm doesn't even exist on my v3.
Hmm.. I did see a /tmp/alarm_1.jpg that was there while it was recording and then went away when it was done. So maybe you could watch for that on a V3.
/media/mmc/alarm doesn't even exist on my v3.
Do you have an SD card in the cam? Not sure if they changed things on the v3, but that's where it saves the 'events' on the v2.
You could monitor the tmp folder with something like this:
#!/bin/sh
SLEEP=10
BRIDGE=homebridge-ip:port
CAMERA=camera-name-in-homebridge
while : ; do
[[ -f /tmp/*.jpg ]] && wget -q -O - "http://$BRIDGE/motion?$CAMERA"
sleep $SLEEP
done
or substitute *.jpg
with alarm_*
to check for alarm_1.jpg and alarm_record_1.mp4
but, as you noticed, the file get removed so there's a chance you could miss an event..?
I also noticed that the camera writes a log to /tmp/metric.log
, so you might be able to parse and monitor that file.
Either way, all methods seem to suffer from the 300 second cool down.
Yeah I did something similar like this:
#!/bin/sh
alarmfile="/tmp/alarm_*.jpg"
alarmactive=false
while true
do
if [ -f $alarmfile ] ; then
if [ "$alarmactive" = false ] ; then
alarmactive=true
wget -O - "http://blablabla.com" > /dev/null 2>&1
fi
else
alarmactive=false
fi
sleep 1
done
I'm using it to call a nodejs app running on another server that then sends a message to a Telegram group. I would directly send a telegram but wget on the camera doesn't support HTTPS and the Telegram APIs only support HTTPS.
BTW, I don't see /tmp/metric.log on my V3.
My hardware acceleration is turned off for other reasons but the important parts are the
import_args
otherwise, you'll get a green video
Which hardware acceleration options should be turned on for a v3 cam?
@romedtino
Do you know how to display the feed in HA without frigate?
I tried this without luck:
camera:
- platform: ffmpeg
input: http://x.x.x.x:12345
@romedtino
Do you know how to display the feed in HA without frigate?
I tried this without luck:
camera: - platform: ffmpeg input: http://x.x.x.x:12345
Sorry I do not. I did need to add
-avoid_negative_ts make_zero
to my ffmpeg input arguments for frigate, hope that helps!
While I could see the RTSP stream on macOS with VLC, my hoobs based home bridge installation is not working. Can you provide the homebridge-ffmpeg configuration that you used to stream the camera to HomeKit.