The logic for deleting the process done files was wrong, resulting in
the script (attempting and failing) deleting all of the done files for
all of the processed recordings after the publish completes for one of
them.
Fix the logic to only delete the process done file for the recording that
just completed publishing.
Makes it handle possibly corrupted video files with less chance of
breakage. Use features from newer ffmpeg release to simplify the video
trimming - in particular, using -ss as an input option is accurate now.
This is the point at which the start/stop events for the audio are
correctly matched up with eachother; doing it later can give
incorrect results if an 'end recording' event was missing from
the events file.
The previous version may have the beginning of the audio off by a bit,
since it was seeking in the audio file to find the start before the
stretch was applied.
There's some fairly major changes here, including:
* All audio is resampled to 48kHz stereo on input, allowing files with
non-standard or varying rates to be mixed
* The audio processing is now done in a single pass; ffmpeg reads all
inputs, concatenates them, and outputs one file.
The 'mkclean' tool reorganizes the encoded webm file to optimize it for
streaming. In particular, it moves the index to the start of the file.
This fixes streaming in Chrome, which otherwise had a very long delay
before playback started since it downloaded until it saw the index
before it started playback.
This needs a new dependency added to the bbb-record-core package to
pull in the mkclean tool.
I had it on DEBUG temporarily for testing. The old version used ERROR,
but this made it print virtually no output which made diagnosing
issues difficult.
It now does much less directory reading, and performance should
scale far better with large numbers of recordings.
Semantics should be mostly unchanged, but there's greater use
of '.fail' files to mark errors, and '.done' files are now removed
after all of the following processing steps complete.
The rap worker no longer relies on processing scripts leaving
behind empty directories; those are now removed where appropriate.
We now use ghostscript to output pngs directly from the original pdf,
rather than using convert on the split pages. This should make corrupt
or strange pdfs less likely to cause issues.
As well, if a pdf page conversion fails (for any reason, including that
the original pdf is missing...) it will be logged, and a blank page
generated, and processing will continue.