Troubleshooting
The first stop in any troubleshooting should always be to review logs. Whether you understand everything you read or barely a word, it will give you at least a few key words to start searching with.
Inspect ffmpeg
With loglevel set to DEBUG in config.yml, the constructed ffmpeg
will be logged, prefixed with: Constructed ffmpeg command:
echo 'loglevel: DEBUG' >>config.yml python3 -m apr -a monitor DEBUG:Constructed ffmpeg command: ffmpeg -y -loglevel error -nostdin -nostats -f v4l2 -video_size 1920x1080 -framerate 5 -thread_queue_size 1024 -i /dev/video0 -f alsa -thread_queue_size 1024 -i hw:CARD=Generic_1,DEV=0 -vf drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf:text="%{localtime}":fontcolor=red@0.8:x=7:y=7 -preset medium -t 00:01:30
Simply copy/paste, add filename.mkv to the end.
Python Debugger
When threading is not a concern, pudb is the absolute best python debugger.
Replace python3 with pudb3 to use:
pudb3 -m apr -a monitor
Pip Space
If pip install runs out of space, the following error will be encountered:
raise ProtocolError("Connection broken: %r" % e, e) pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))
This can be resolved by telling pip to use a different build directory:
mkdir '../piptmp' TMPDIR='../piptmp' pip install '[...]'
Log Noise
APR Review can produce a lot of log output when reviewing videos:
Input #0, wav, from '/tmp/tmpy3th2041.wav': 0KB sq= 0B f=0/0 Duration: 00:00:01.10, bitrate: 1536 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s 1.02 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
This noise is generated by a default log level showing playback status of each 1-second audio clip. Unfortunately this cannot currently be modified.
APR’s requirements.txt includes simpleaudio. Simply having this python
module available changes other behavior, effectively hiding this log noise.
label2index KeyError
This error shows up because unexpected directories were found in data directories.
File "/home/michael/repos/audio_pattern_ranger/apr/model/nnet.py", line 110, in __getitem__ label = self.label2index[class_name] ~~~~~~~~~~~~~~~~^^^^^^^^^^^^ KeyError: 'barking'
This likely requires more careful coding to resolve.