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

ffmpeg fails on event video #140

Closed
anarchocactus opened this issue Jun 20, 2021 · 4 comments
Closed

ffmpeg fails on event video #140

anarchocactus opened this issue Jun 20, 2021 · 4 comments
Assignees
Labels
bug Something isn't working fixed. waiting for feedback Issue should be fixed. Waiting on feedback

Comments

@anarchocactus
Copy link

anarchocactus commented Jun 20, 2021

Describe the bug
ffmeg fails on video for event:

eufy-security.0 | 2021-06-20 06:00:56.295 | error | - Cancelling download...
eufy-security.0 | 2021-06-20 06:00:56.295 | error | (22107) Station: T8010N231949122D channel: 0 - Error: Error: ffmpeg    exited with code 1: unix:/tmp/eufy-security.0.2.sock: End of file
eufy-security.0 | 2021-06-20 06:00:56.295 | error | unix:/tmp/eufy-security.0.2.sock: End of file

To Reproduce
Steps to reproduce the behavior:

  1. trigger movement event on eufyCam 2C
  2. observe the logs

Expected behavior
The video should be downloaded and encoded correctly

Screenshots & Logfiles
eufylog.txt

Versions:

  • Adapter version: 0.5.5
  • JS-Controller version: 3.2.16
  • Node version: 12.18.2
  • Operating system: 4.19.0-9-amd64 Feature request: Support 2FA #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

Additional context
I stumbled upon this while testing the datapoints last_event_pic_url/html. In my case they only got updated when polling the cloud e.g. after restarting the adapter. No idea why it's working on polling. I had the impression that the last_event_pic is generated by processing the downloaded event video through ffmpeg, but I may be on the wrong track. The problem also exists when the adapter has direct access to the station.

I am not really sure if ffmeg might just fail due to missing data

@anarchocactus anarchocactus changed the title ffmpeg fails on downloaded event video ffmpeg fails on event video Jun 20, 2021
@bropat bropat self-assigned this Jun 21, 2021
@bropat bropat added the bug Something isn't working label Jun 21, 2021
@bropat
Copy link
Owner

bropat commented Jun 21, 2021

The latest p2p livestream fixes caused a regression in p2p video download.
This needs to be fixed.

@bropat bropat added the work in progress Working on it label Jul 2, 2021
bropat added a commit that referenced this issue Aug 13, 2021
…tates will be dropped and recreated (Note: some states where renamed)

Supports Admin 5
Added new adapter setting "Accept incoming invitations" to automatically accept device invitations
Added new adapter setting "Alarm sound duration (sec)" used for triggering alarm sound on supported devices/stations (#76)
Added enable/disable led setting for camera 1 products
Added motion detection sensitivity setting for camera 1 products and wired doorbell
Added motion detection type setting for camera 1 products
Added motion audio recording setting for camera 1 products and wired doorbell
Added ringtone volume setting for wired doorbell
Added enable/disable indoor chime setting for wired doorbell (#100)
Added notification ring setting for wired doorbell
Added notification motion setting for wired doorbell
Added video streaming quality setting for wired doorbell
Added video recording quality setting for wired doorbell
Added video HDR setting for wired doorbell
Added video distortion correction setting for wired doorbell
Added video ring recording setting for wired doorbell
Added notification type setting for camera 1 products, solo cameras and wired doorbell
Added chirp volume setting for entry sensor
Added chirp tone setting for entry sensor
Added pan an tilt functionality to supported indoor cameras (#129)
Added error detection if stopping or starting stream that isn't running or already running
Added new setting "acceptInvitations" to "EufySecurity" to accept invitations automatically
Added floodlight camera light switch (#133)
Added motion detection sensitivity for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added motion detection type for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added motion tracking for indoor camera pan & tilt cameras
Added video stream quality setting for indoor cameras, solo cameras, floodlight cameras and battery doorbell (#133)
Added video recording quality setting for indoor cameras
Added WDR setting for battery doorbells
Added microphone mute setting for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added audio recording setting for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added enable/disable speaker setting for indoor cameras, solo cameras, floodlight cameras, camera 2 products (#133)
Added speaker volume setting for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added power source setting for camera 2 products cameras, eufy cameras and eufy E cameras
Added power working mode setting for solo cameras, camera 2 products, battery doorbells, eufy cameras and eufy E cameras
Added power custom working mode recording clip length setting for solo cameras, floodlight cameras, camera 2 products, battery doorbells, eufy cameras and eufy E cameras (#133)
Added power custom working mode recording retrigger interval setting for solo cameras, floodlight cameras, camera 2 products, battery doorbells, eufy cameras and eufy E cameras (#133)
Added power custom working mode recording ends if motion stops setting for solo cameras, floodlight cameras, camera 2 products, battery doorbells, eufy cameras and eufy E cameras (#133)
Added video streaming quality setting for indoor cameras, solo cameras, floodlight cameras, 2c pro cameras and battery doorbells (#133)
Added video recording quality setting for indoor 2k cameras and 2c pro cameras
Added motion detection sensitivity setting for indoor cameras, floodlight cameras and camera 2 products (#133)
Added enable/disable motion tracking setting for indoor pan & tilt cameras
Added motion detection type setting for indoor cameras, solo cameras, floodlight cameras, camera 2 products and battery doorbells (#133)
Added enable/disable WDR setting for battery doorbells
Added ringtone volume setting for battery doorbells
Added enable/disable chime indoor setting for battery doorbells (#100)
Added enable/disable chime homebase setting for battery doorbells (#100)
Added chime homebase ringtone volume setting for battery doorbells
Added chime homebase ringtone type setting for battery doorbells
Added notification type setting for solo cameras, floodlight cameras, camera 2 products, battery doorbells, eufy cameras and eufy E cameras (#133)
Added enable/disable person notification setting for indoor cameras
Added enable/disable pet notification setting for indoor cameras
Added enable/disable all other motion notification setting for indoor cameras
Added enable/disable all sound notification setting for indoor cameras
Added enable/disable crying notification setting for indoor cameras
Added enable/disable motion notification setting for battery doorbells
Added enable/disable ring notification setting for battery doorbells
Added trigger alarm sound for camera 2 products, indoor cameras, solo cameras (incl. new) and floodlight cameras (#76)
Added reset alarm sound for camera 2 products, indoor cameras, solo cameras (incl. new) and floodlight cameras (#76)
Added trigger alarm sound for homebase 1+2 (#76)
Added reset alarm sound for homebase 1+2 (#76)
Added alarm tone setting for homebase 1+2
Added alarm volume setting for homebase 1+2
Added prompt volume setting for homebase 1+2
Added time format setting for homebase 1+2
Added enable/disable switch mode app notification setting for homebase 1+2
Added enable/disable switch mode geofence notification setting for homebase 1+2
Added enable/disable switch mode schedule notification setting for homebase 1+2
Added enable/disable switch mode keypad notification setting for homebase 1+2
Added enable/disable start alarm delay notification setting for homebase 1+2
Added new floodlight, solo and outdoor cameras (untested!)
Added brightness light setting for 2c/2c pro cameras, new solo cameras and new outdoor cameras
Added enable/disable light setting for 2c/2c pro cameras, new solo cameras and new outdoor cameras
Added battery charging state for keypad devices
Added wifi rssi state for keypad devices
Added nightvision setting for devices supporting the "light" nightvision mode
Added enable disable "switch mode with access code" for station with registered keypad
Added enable disable "auto end alarm" for station with registered keypad
Added enable disable "turn off alarm with button" for station with registered keypad
Fixed issue #98
Fixed issue #140
Fixed issue #146
Fixed issue #117
Many small bugfixes
Updated versions of the package dependencies
@bropat bropat added fixed. waiting for feedback Issue should be fixed. Waiting on feedback and removed work in progress Working on it labels Aug 13, 2021
@bropat
Copy link
Owner

bropat commented Aug 13, 2021

@anarchocactus Fixed in version 0.6.0. Please test it and let me know.

@anarchocactus
Copy link
Author

The last_event_pic_* datapoints now appear to get updated correctly and fast, not only on polling or restart. So this is fixed and great for eventually having real fast updates of the camera snapshots in our visualisations when motion was detected.

When writing the ticket I had the misconception that the the last_event_pic_* datapoints need a full download of the event video to be updated but that somehow appears to happen before the video actually gets fully downloaded from what I can see in the logs. No idea how it really works behind the scene, but the timeline is essentially like that:

2021-08-14 10:28:30.252  - info: eufy-security.0 (25323) Downloading video event for device T8113N1319521F10 in 19.388 seconds...

[...]

2021-08-14 10:28:30.741  - debug: eufy-security.0 (25323) [EufySecurity.onStateChange] state eufy-security.0.T8010N231949122D.cameras.T8113N1319521F10.picture_url changed: https://security-app-eu.eufylife.com/v1/s/g/vEkcgcfDd (ack = true) was already acknowledged, ignore it...
2021-08-14 10:28:30.971  - debug: eufy-security.0 (25323) [EufySecurity.onStateChange] state eufy-security.0.T8010N231949122D.cameras.T8113N1319521F10.last_event_pic_url changed: /eufy-security.0/T8010N231949122D/last_event/T8113N1319521F10.jpeg (ack = true) was already acknowledged, ignore it...
2021-08-14 10:28:30.971  - debug: eufy-security.0 (25323) [EufySecurity.onStateChange] state eufy-security.0.T8010N231949122D.cameras.T8113N1319521F10.last_event_pic_html changed: [...]

[...]

2021-08-14 10:28:49.759  - debug: eufy-security.0 (25323) [Station.startDownload] P2P connection to station T8010N231949122D present, download video path: /media/mmcblk0p1/Camera00/20210814102827.dat

After the video got downloaded, I still get an ffmpeg error:

021-08-14 10:28:55.910  - debug: eufy-security.0 (25323) [P2PClientProtocol.handleDataControl] Station T8010N231949122D - CMD_DOWNLOAD_FINISH [{"channel":0}]
2021-08-14 10:28:55.911  - debug: eufy-security.0 (25323) [P2PClientProtocol.handleMsg] Station T8010N231949122D - DATA CONTROL - Received expected sequence (seqNo: 31 queuedData.size: 0)
2021-08-14 10:28:55.917  - debug: eufy-security.0 (25323) [FfmpegCommand] ffmpegStreamToHls(): Processing finished!
2021-08-14 10:28:55.928  - debug: eufy-security.0 (25323) [EufySecurity.onStateChange] state eufy-security.0.T8010N231949122D.cameras.T8113N1319521F10.last_event_video_url changed: /eufy-security.0/T8010N231949122D/last_event/T8113N1319521F10.m3u8 (ack = true) was already acknowledged, ignore it...
2021-08-14 10:28:55.959  - error: eufy-security.0 (25323) ffmpegPreviewImage(): An error occurred: ffmpeg exited with code 1: Output #0, image2, to '/opt/iobroker/iobroker-data/eufy-security.0/T8010N231949122D/last_event/T8113N1319521F10.jpeg':
Output file #0 does not contain any stream

2021-08-14 10:28:55.959  - error: eufy-security.0 (25323) ffmpegPreviewImage(): ffmpeg output:

2021-08-14 10:28:55.959  - error: eufy-security.0 (25323) ffmpegPreviewImage(): ffmpeg stderr:
ffmpeg version 4.4-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[hls @ 0x5cc9880] Skip ('#EXT-X-VERSION:3')
[hls @ 0x5cc9880] Cannot get correct #EXTINF value of segment /opt/iobroker/iobroker-data/eufy-security.0/T8010N231949122D/last_event/T8113N1319521F100.ts, set to default value to 1ms.
[hls @ 0x5cc9880] Opening '/opt/iobroker/iobroker-data/eufy-security.0/T8010N231949122D/last_event/T8113N1319521F100.ts' for reading
[aac @ 0x5cd7540] More than one AAC RDB per ADTS frame is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[aac @ 0x5cd7540] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 0x5cd7540] Inconsistent channel configuration.
[aac @ 0x5cd7540] get_buffer() failed
[aac @ 0x5cd7540] Number of bands (14) exceeds limit (4).
[aac @ 0x5cd7540] channel element 1.14 is not allocated
[aac @ 0x5cd7540] Multiple frames in a packet.
[aac @ 0x5cd7540] Sample rate index in program config element does not match the sample rate index configured by the container.
[aac @ 0x5cd7540] Inconsistent channel configuration.
[aac @ 0x5cd7540] get_buffer() failed
[aac @ 0x5cd7540] channel element 1.14 is not allocated
[aac @ 0x5cd7540] channel element 3.7 is not allocated
[hls @ 0x5cc9880] decoding for stream 1 failed
[hls @ 0x5cc9880] Could not find codec parameters for stream 0 (Video: h264 ([27][0][0][0] / 0x001B), none): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[hls @ 0x5cc9880] Could not find codec parameters for stream 1 (Audio: aac (SSR) ([15][0][0][0] / 0x000F), stereo, fltp): unspecified sample rate
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, hls, from '/opt/iobroker/iobroker-data/eufy-security.0/T8010N231949122D/last_event/T8113N1319521F10.m3u8':
  Duration: 00:00:00.00, start: 1.400000, bitrate: 1232 kb/s
  Program 0 
    Metadata:
      variant_bitrate : 0
  Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), none, 90k tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 0
  Stream #0:1: Audio: aac (SSR) ([15][0][0][0] / 0x000F), stereo, fltp
    Metadata:
      variant_bitrate : 0
Output #0, image2, to '/opt/iobroker/iobroker-data/eufy-security.0/T8010N231949122D/last_event/T8113N1319521F10.jpeg':
Output file #0 does not contain any stream

2021-08-14 10:28:55.960  - error: eufy-security.0 (25323) ffmpegPreviewImage - station: T8010N231949122D device: T8113N1319521F10 - Error [{}]

bropat added a commit that referenced this issue Aug 19, 2021
@bropat
Copy link
Owner

bropat commented Aug 19, 2021

@anarchocactus Please test version 0.6.1 and let me know.

@bropat bropat closed this as completed Aug 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working fixed. waiting for feedback Issue should be fixed. Waiting on feedback
Projects
None yet
Development

No branches or pull requests

2 participants