kerberos-io / agent

An open and scalable video surveillance system for anyone making this world a better and more peaceful place.
https://kerberos.io
MIT License
691 stars 85 forks source link

Cannot watch recordings on phone or mac #120

Closed VC-Semih closed 11 months ago

VC-Semih commented 11 months ago

Using https://github.com/kerberos-io/camera-to-rtsp with a Logitech C270 I can watch my recordings only on Windows (and probably Linux did not test) but not on Mac or Android phone I can only watch them if I download vlc and open the file with it. Does someone have a clue about this ? Thanks !

PS: demo.kerberos.io works on mac so it could be due to camera-to-rtsp ?

VC-Semih commented 11 months ago

Here is the command line in the yml config: ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast -c:v libx264 -x264-params keyint=60:scenecut=0 -f rtsp rtsp://myip$RTSP_PORT/$RTSP_PATH

I'm guessing libx264 is causing the issue

cedricve commented 11 months ago

Hey @VC-Semih, interesting, what happens when you drag and drop these recordings into your browser. Do they also play then?

VC-Semih commented 11 months ago

Hello ! Thanks for your reply.

I only have a spinner that turns indefinitely, even when I download the file only VLC can play it, the MacOs quick time player says that the file is not compatible

VC-Semih commented 11 months ago

Just tested downloading the file on windows, the "Movies & TV" App cannot read it too, I only have a black screen with the player stuck (video timecode not changing) but the browser can read it (with drag and drop as you suggested) I don't know if the file will be processed by github but here is a video upload of a recording https://github.com/kerberos-io/agent/assets/55637588/e1ff67ad-61fe-481c-b054-f9c35a23d901

Metadata about the original file: https://www.metadata2go.com/result#j=cfbada36-2027-48f4-a344-af0a5837a4df

cedricve commented 11 months ago

Hmm I can play it from the browser

Screenshot 2023-10-17 at 18 19 34
VC-Semih commented 11 months ago

Hmm that's strange, here is a screen capture on a Google pixel 6 with android 14:

https://github.com/kerberos-io/agent/assets/55637588/362f547a-c6e5-4294-a727-4b033100fd85

VC-Semih commented 11 months ago

For debugging purpose here is ffprobe result on a recording

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
  Metadata:
    creation_time   : 2020-01-10T19:37:32.000000Z
  Duration: 00:00:40.00, start: 0.000000, bitrate: 1587 kb/s
  Stream #0:0[0x1](und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p(progressive), 640x480, 1585 kb/s, 29.98 fps, 30 tbr, 10000k tbn (default)
    Metadata:
      creation_time   : 2020-01-10T19:37:32.000000Z
      handler_name    : Handler
      vendor_id       : [0][0][0][0]
VC-Semih commented 11 months ago

Little update, I did find a way to make recordings readable by Android and MacOs using ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast -c:v libx264 -profile:v high10 -vf format=yuv420p -f rtsp rtsp:192... but the live video and the movement detection is no longer working image

VC-Semih commented 11 months ago

After a lot of tinkering I have an ffmpeg command that works on Mac Android & Windows and works with Kerberos live stream and movement detection

ffmpeg -f v4l2 -i /dev/video0 -preset ultrafast -c:v libx264 -x264-params keyint=60:scenecut=0 -vf format=yuv420p -f rtsp rtsp://192...

yllekz commented 10 months ago

@VC-Semih what environment variable does that ffmpeg command map to? I am having difficulties finding where this goes in the yml.

VC-Semih commented 9 months ago

@yllekz using camera-to-rtsp repo, replace the "runOnInit: ffmpeg..." with the command above if you have similar problems to mine