modified the BigBlueButton.execute method so it can raise an exception when the command passed didn't finish successfully; you can optionally pass fail_on_error=false so it won't raise an exception
extracted FFMPEG_LOG_LEVEL to a module constant, and use it in all FFmpeg commands; now it's easy to increase the log level during development
implemented the possibility to include the desktop sharing streams to the presentation playback; it composes the presentation video file just like the other video streams, with the difference that while the screen is being sharing, it appears as the unique video stream in the presentation video - when the presenter stops sharing his screen, the other videos populate the video display;
also, the output video resolution is modified to the highest screen resolution shared during the conference, independently on the output video resolution set by the user; it was done to preserve the quality of the desktop sharing image; if there's no desktop sharing, the output video resolution is respected