|
@ -0,0 +1,250 @@ |
|
|
|
|
|
setting up zm on raspberry pi |
|
|
|
|
|
|
|
|
|
|
|
installed raspbian, |
|
|
|
|
|
|
|
|
|
|
|
installed zm per docker steps |
|
|
|
|
|
|
|
|
|
|
|
using entrypoint.sh in docker utils |
|
|
|
|
|
zm wouldn't start, because zmsystemctl is not working via this docker script |
|
|
|
|
|
|
|
|
|
|
|
i migrated to devuan |
|
|
|
|
|
(change apt repos, then apt-get install sysvinit-core, then reboot) |
|
|
|
|
|
|
|
|
|
|
|
and it now doesn't try to run zmsystemctl and it actually works |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
next error: |
|
|
|
|
|
failed to open vchiq instance |
|
|
|
|
|
|
|
|
|
|
|
this reportedly has to do with www-user not having permissions to video group |
|
|
|
|
|
let's change that... |
|
|
|
|
|
usermod -a -G video www-data |
|
|
|
|
|
usermod -a -G wheel www-data |
|
|
|
|
|
|
|
|
|
|
|
edit: that was not it. dead end. |
|
|
|
|
|
let's try |
|
|
|
|
|
https://raspberrypi.stackexchange.com/questions/19436/how-can-i-permanently-fix-dev-vchiq-permission-errors |
|
|
|
|
|
|
|
|
|
|
|
chmod 777 on /dev/vchiq worked. |
|
|
|
|
|
NOTE: it looks like a reboot would've worked for the video group as well. |
|
|
|
|
|
need to log out and back in the www-data user... |
|
|
|
|
|
|
|
|
|
|
|
but i 777'd it. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Now, on to testing the RTSP path for H264, and use passthrough. |
|
|
|
|
|
|
|
|
|
|
|
I tested the path in Mplayer and it does work from my laptop, so the path |
|
|
|
|
|
is correct. ZM doesn't seem to work. Something with ZM is broken... |
|
|
|
|
|
|
|
|
|
|
|
i tried to run the onvif probe... |
|
|
|
|
|
seems there are a couple dependencies not installed on |
|
|
|
|
|
this install for onvif probe |
|
|
|
|
|
i'm giving up for now on configuring onvif probe. |
|
|
|
|
|
This is no doubt due to it being a docker script. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rtsp://admin:@192.168.1.138:88/videoMain |
|
|
|
|
|
this path works in mplayer but not in zm ffmpeg. |
|
|
|
|
|
let's try changing to tcp or udp or something else... |
|
|
|
|
|
OK |
|
|
|
|
|
this time it seems to work sorta |
|
|
|
|
|
except |
|
|
|
|
|
[zmc_m1] [Monitor dimensions are 1280x720 but camera is sending 320x240] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7]: INF [zmc_m1] [Got signal 15 (Terminated), exiting] |
|
|
|
|
|
Aug 11 03:44:00 raspberrypi zmc_m1[2657]: INF [zmc_m1] [Unable to read packet from stream 0: error -541478725 "End of file".] |
|
|
|
|
|
Aug 11 03:44:00 raspberrypi zmc_m1[2657]: WAR [zmc_m1] [Return from Capture (-1), signal loss] |
|
|
|
|
|
Aug 11 03:44:00 raspberrypi zmc_m1[2657]: ERR [zmc_m1] [Failed to capture image from monitor 1 main (1/1)] |
|
|
|
|
|
|
|
|
|
|
|
ok this |
|
|
|
|
|
|
|
|
|
|
|
hm.... |
|
|
|
|
|
// |
|
|
|
|
|
all kinds of errors |
|
|
|
|
|
// |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmdc[2349]: INF ['zmc -m 1' sending stop to pid 2764 at 18/08/11 03:45:29] |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmc_m1[2764]: INF [zmc_m1] [Got signal 15 (Terminated), exiting] |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmc_m1[2764]: ERR [zmc_m1] [Unable to read packet from stream 0: error -1414092869 "Immediate exit requested".] |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmc_m1[2764]: WAR [zmc_m1] [Return from Capture (-1), signal loss] |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmc_m1[2764]: ERR [zmc_m1] [Failed to capture image from monitor 1 main (1/1)] |
|
|
|
|
|
Aug 11 03:45:29 raspberrypi zmdc[2349]: INF ['zmc -m 1' exited normally] |
|
|
|
|
|
Aug 11 03:45:30 raspberrypi zmdc[2349]: INF [Starting pending process, zmc -m 1] |
|
|
|
|
|
Aug 11 03:45:30 raspberrypi zmdc[2349]: INF ['zmc -m 1' starting at 18/08/11 03:45:30, pid = 2787] |
|
|
|
|
|
Aug 11 03:45:30 raspberrypi zmdc[2787]: INF ['zmc -m 1' started at 18/08/11 03:45:30] |
|
|
|
|
|
Aug 11 03:45:31 raspberrypi zmc_m1[2787]: INF [zmc_m1] [Starting Capture version 1.31.44] |
|
|
|
|
|
Aug 11 03:45:31 raspberrypi zmc_m1[2787]: INF [zmc_m1] [Priming capture from rtsp://admin:@192.168.1.138:88/videoMain] |
|
|
|
|
|
Aug 11 03:45:31 raspberrypi zmc_m1[2787]: WAR [zmc_m1] [Unknown method (rtpUni)] |
|
|
|
|
|
Aug 11 03:45:31 raspberrypi zmc_m1[2787]: INF [zmc_m1] [Stream open rtsp://admin:@192.168.1.138:88/videoMain, parsing streams...] |
|
|
|
|
|
Aug 11 03:45:39 raspberrypi zmwatch[2428]: INF [Restarting capture daemon for main, no image since startup. Startup time was 1533959131 - now 1533959139 > 5] |
|
|
|
|
|
Aug 11 03:45:41 raspberrypi zmdc[2349]: INF ['zmc -m 1' sending stop to pid 2787 at 18/08/11 03:45:41] |
|
|
|
|
|
Aug 11 03:45:44 raspberrypi zmc_m1[2787]: INF [zmc_m1] [Got signal 15 (Terminated), exiting] |
|
|
|
|
|
Aug 11 03:45:44 raspberrypi zmc_m1[2787]: ERR [zmc_m1] [Unable to read packet from stream 0: error -1414092869 "Immediate exit requested".] |
|
|
|
|
|
Aug 11 03:45:44 raspberrypi zmc_m1[2787]: WAR [zmc_m1] [Return from Capture (-1), signal loss] |
|
|
|
|
|
Aug 11 03:45:44 raspberrypi zmc_m1[2787]: ERR [zmc_m1] [Failed to capture image from monitor 1 main (1/1)] |
|
|
|
|
|
Aug 11 03:45:44 raspberrypi zmdc[2349]: INF ['zmc -m 1' exited normally] |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
hm... now mplayer doesn't work. |
|
|
|
|
|
let's reboot camera. |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
Exiting... (Quit) |
|
|
|
|
|
dev@dev:~/delete/zmhwlasergit/ZMHW_Project_LaserDiodeSensor$ mplayer rtsp://admin:@192.168.1.138:88/videoMain |
|
|
|
|
|
Playing: rtsp://admin:@192.168.1.138:88/videoMain |
|
|
|
|
|
(+) Video --vid=1 (h264) |
|
|
|
|
|
(+) Audio --aid=1 (pcm_mulaw) |
|
|
|
|
|
File tags: |
|
|
|
|
|
Comment: videoMain |
|
|
|
|
|
Title: IP Camera Video |
|
|
|
|
|
AO: [pulse] 8000Hz mono 1ch s16 |
|
|
|
|
|
VO: [opengl] 1280x720 yuv420p |
|
|
|
|
|
AV: 00:00:00 A-V: -0.462 Dropped: 8 |
|
|
|
|
|
|
|
|
|
|
|
Audio/Video desynchronisation detected! Possible reasons include too slow |
|
|
|
|
|
hardware, temporary CPU spikes, broken drivers, and broken files. Audio |
|
|
|
|
|
position will not match to the video (see A-V status field). |
|
|
|
|
|
|
|
|
|
|
|
AV: 00:00:04 A-V: -1.915 ct: -1.916 Dropped: 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Exiting... (Quit) |
|
|
|
|
|
dev@dev:~/delete/zmhwlasergit/ZMHW_Project_LaserDiodeSensor$ mplayer rtsp://admin:@192.168.1.138:88/videoMain |
|
|
|
|
|
Playing: rtsp://admin:@192.168.1.138:88/videoMain |
|
|
|
|
|
[ffmpeg/demuxer] rtsp: Could not find codec parameters for stream 0 (Video: h264, none): unspecified size |
|
|
|
|
|
[ffmpeg/demuxer] Consider increasing the value for the 'analyzeduration' and 'probesize' options |
|
|
|
|
|
(+) Video --vid=1 (h264) |
|
|
|
|
|
(+) Audio --aid=1 (pcm_mulaw) |
|
|
|
|
|
File tags: |
|
|
|
|
|
Comment: videoMain |
|
|
|
|
|
Title: IP Camera Video |
|
|
|
|
|
AO: [pulse] 8000Hz mono 1ch s16 |
|
|
|
|
|
[lavf] error reading packet. |
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I rebooted the camera, tried mplayer again and it worked. |
|
|
|
|
|
|
|
|
|
|
|
I set the zm rpi to videoSub and resolution 640x360 |
|
|
|
|
|
and it didn't work, but then two minutes later it worked... hm.. |
|
|
|
|
|
|
|
|
|
|
|
Load is good. I've taken a picture. very low. Looking at 3% |
|
|
|
|
|
wow. |
|
|
|
|
|
|
|
|
|
|
|
OK, but that's 640 x 360. Let's try HD, and then let's try both without |
|
|
|
|
|
mmal to see if there's a difference. See if the mmal is implemented in |
|
|
|
|
|
this zm. |
|
|
|
|
|
|
|
|
|
|
|
tcp by the way, on ffmpeg. |
|
|
|
|
|
tcp, ffmpeg, the path above, and videoSub worked. |
|
|
|
|
|
trying videoMain now, let's see if it suddenly catches after a few minutes. |
|
|
|
|
|
|
|
|
|
|
|
I didn't have any luck with HD. |
|
|
|
|
|
I tried rebooting camera, no luck. |
|
|
|
|
|
|
|
|
|
|
|
I set it back to 640 x 480 and it caught near immediately (within a minute) |
|
|
|
|
|
this seems to be what the rpi wants. It looks like HD isn't working with the RPI. |
|
|
|
|
|
|
|
|
|
|
|
Load is low. I'm going to take this device on the road, and try it with |
|
|
|
|
|
a couple more cameras. Let's see how many SD cameras we can get running |
|
|
|
|
|
on it. |
|
|
|
|
|
|
|
|
|
|
|
Load is about .7, though htop shows no more than 5% on any given core (more |
|
|
|
|
|
around 1-3.3%. |
|
|
|
|
|
|
|
|
|
|
|
So for rpi3, I'd stick with SD for now. |
|
|
|
|
|
|
|
|
|
|
|
TODO: try more cameras, try ffmpeg without mmal... |
|
|
|
|
|
|
|
|
|
|
|
just as a reminder there is |
|
|
|
|
|
armel (32 bit arm without hardware floating point peripheral) |
|
|
|
|
|
armhf (32 bit with fp peripheral) |
|
|
|
|
|
arm64 (64 bit arm) |
|
|
|
|
|
|
|
|
|
|
|
Although each device has its own requirements beyond that which is why |
|
|
|
|
|
arm is shit and not nearly as compatible as x86. I digress. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
After looking a bit more, I realized that they aren't using the binary ffmpeg in ZM. I've never really |
|
|
|
|
|
investigated much. I have used MJPEG up to this point. |
|
|
|
|
|
here: |
|
|
|
|
|
dev@raspberrypi:~/ZoneMinder/src $ less zm_ffmpeg.cpp |
|
|
|
|
|
dev@raspberrypi:~/ZoneMinder/src $ grep -r mmal |
|
|
|
|
|
zm_ffmpeg_camera.cpp: if ( (mVideoCodec = avcodec_find_decoder_by_name("h264_mmal")) == NULL ) { |
|
|
|
|
|
zm_ffmpeg_camera.cpp: Debug(1, "Failed to find decoder (h264_mmal)" ); |
|
|
|
|
|
zm_ffmpeg_camera.cpp: Debug(1, "Success finding decoder (h264_mmal)" ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
I'm enabling debug logging in component files to see where this shows up. |
|
|
|
|
|
|
|
|
|
|
|
and then |
|
|
|
|
|
grep -r ffmpeg | less |
|
|
|
|
|
in the /var/log/zm folder |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526451 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/503 [Success finding decoder (h264_mmal)] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526678 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/512 [Video Found decoder h264_mmal] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526743 zmc_m1[5486].DB1-zm_ffmpeg.cpp/266 [Dumping stream index i(0) index(0)] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526806 zmc_m1[5486].DB1-zm_ffmpeg.cpp/271 [ Stream #0:0] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526865 zmc_m1[5486].DB1-zm_ffmpeg.cpp/279 [, frames:17, timebase: 1/90000] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.526974 zmc_m1[5486].DB1-zm_ffmpeg.cpp/281 [: Video: h264 (Baseline), yuv420p(progressive), 640x360] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.527227 zmc_m1[5486].DB1-zm_ffmpeg.cpp/229 [90k stream tb numerator , ] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.527316 zmc_m1[5486].DB1-zm_ffmpeg.cpp/229 [180k codec time base:] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.527382 zmc_m1[5486].DB1-zm_ffmpeg.cpp/336 [ |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.527438 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/519 [Calling avcodec_open2] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.588667 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/542 [HWACCEL not in use] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589192 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/554 [Audio Found decoder] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589282 zmc_m1[5486].DB1-zm_ffmpeg.cpp/266 [Dumping stream index i(1) index(0)] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589347 zmc_m1[5486].DB1-zm_ffmpeg.cpp/271 [ Stream #0:1] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589407 zmc_m1[5486].DB1-zm_ffmpeg.cpp/279 [, frames:86, timebase: 1/8000] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589575 zmc_m1[5486].DB1-zm_ffmpeg.cpp/281 [: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s] |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589641 zmc_m1[5486].DB1-zm_ffmpeg.cpp/336 [ |
|
|
|
|
|
zm_debug.log.05486:08/11/18 04:51:33.589699 zmc_m1[5486].DB1-zm_ffmpeg_camera.cpp/561 [Calling avcodec_open2] |
|
|
|
|
|
|
|
|
|
|
|
Ah, so it is working. but I don't know where the decoders are found.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
However, I'd like to disable it, to see what the difference is.. How do I do that? |
|
|
|
|
|
|
|
|
|
|
|
And even with all this success, the foscam, still has too slow of a h264 |
|
|
|
|
|
stream. My cheaper Amovision camera gets better FPS than this... 3.5 vs 15fps. |
|
|
|
|
|
|
|
|
|
|
|
At least CPU is low. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
here's an idea. Let's change it to remote, which doesn't use mmal |
|
|
|
|
|
and see what the resource usage is. |
|
|
|
|
|
not exactly the same, but similar. |
|
|
|
|
|
|
|
|
|
|
|
hm.. getting a no rtsp sources error. Will give up on that for now. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
looking at the code |
|
|
|
|
|
and this forum post: |
|
|
|
|
|
https://forums.zoneminder.com/viewtopic.php?f=34&t=26112&p=100221&hilit=avcodec_find_decoder_by_name#p100221 |
|
|
|
|
|
ffmpeg libavcodec |
|
|
|
|
|
includes mmal codecs. Let's see if I can get an older one without libavcodec. |
|
|
|
|
|
|
|
|
|
|
|
https://packages.debian.org/stretch/libavcodec-dev |
|
|
|
|
|
this is the package we want to get an older copy of . |
|
|
|
|
|
|
|
|
|
|
|
Hm.. well as long as I know mmal is being used, I don't really need |
|
|
|
|
|
to test the old one, but I would like to. |
|
|
|
|
|
|
|
|
|
|
|
Question is, how to get the old version, without mmal installed... |
|
|
|
|
|
|
|
|
|
|
|
http://snapshot.debian.org/binary/libavcodec-dev/ |
|
|
|
|
|
has it |
|
|
|
|
|
but when was mmal added, and it is compatible with stretch... |
|
|
|
|
|
Maybe I should just install 1.30.4 and compare that... Might be easier |
|
|
|
|
|
in this case. |
|
|
|
|
|
|
|
|
|
|
|
That is the end for now. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|