Open ArtemM opened 3 years ago
Probably issues are somewhere else (OpenCV? Streaming server?). I guess this issue could be closed as irrelevant to kerberos.io unless someone is willing to investigate further and/or there are obvious steps I could try.
Just in case will describe a "proof" that excludes kerberos.io from the equation:
I put a python file which saves rtsp to my host machine: https://gist.github.com/ArtemM/3e92d8138437eac9d214690c143df604 (note that rtsp URL should be changed to one which corresponds target environment)
From the same folder I run OpenCV docker image with ffmpeg
docker run --rm -it -v $PWD:/out borda/docker_python-opencv-ffmpeg /bin/bash
and then from within a container
root@6f4ca7f33b06:/out# python ./opencv_capture.py
Result: With "regular" rtsp camera (mentioned Hikvision) it outputs playable file while with the stream from Android it gives an error:
[rtsp @ 0x5566161fe700] Nonmatching transport in server reply
[ WARN:0] global /opencv/modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ERROR:0] global /opencv/modules/videoio/src/cap.cpp (140) open VIDEOIO(GSTREAMER): raised OpenCV exception:
OpenCV(4.5.1) /opencv/modules/videoio/src/cap_gstreamer.cpp:764: error: (-215:Assertion failed) uridecodebin in function 'open'
[ERROR:0] global /opencv/modules/videoio/src/cap.cpp (561) open VIDEOIO(GSTREAMER): raised OpenCV exception:
OpenCV(4.5.1) /opencv/modules/videoio/src/cap_gstreamer.cpp:1427: error: (-215:Assertion failed) frameSize.width > 0 && frameSize.height > 0 in function 'open'
[ERROR:0] global /opencv/modules/videoio/src/cap.cpp (561) open VIDEOIO(CV_IMAGES): raised OpenCV exception:
OpenCV(4.5.1) /opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): output.avi in function 'icvExtractPattern'
ffplay and VLC are playing stream (ffplay complying on something in the console but still playing, probably vlc does the same but I only run from GUI).
I thought that the potential cause could be WiFi connectivity issues but another configuration streaming over WiFi from Android works. Namely GoPro Android application connected to nginx-rtmp-docker streaming to kerberos.io container. That does not fully exclude "WiFi issue" scenario but reduces probability quite a bit.
I'm evaluating kerberos.io and successfully connected to one of my cameras (Hikvision). For testing purposes I installed RTSP server on Android device and can't connect there.
Details Android server: RTSP Camera Server V1.10 Kerberos.io "installation" is in docker. E.g. (ports might differ):
docker run --name camera2 -p 81:80 -p 8890:8889 -d kerberos/kerberos
Error:
06/03/2021 16:38:19.784 ERROR [trivial] OpenCV : can't open url of ip camera
Application log/configuration: https://pastebin.com/mgjF53P1Actions performed Ensured that server is visible from container:
Tried to adjust encoding:
Tried to connect from VLC with very same URL (stream works) Tried to set up from scratch on a different host machine (same behavior, does not work)