|
|
- 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.
-
-
-
|