diff --git a/record-and-playback/core/lib/recordandplayback/edl/audio.rb b/record-and-playback/core/lib/recordandplayback/edl/audio.rb index e5758a28150f56d630dfaab40f6a6af1779a1057..e9525a8fd016aaa90e00856efecd55ebab6f558e 100644 --- a/record-and-playback/core/lib/recordandplayback/edl/audio.rb +++ b/record-and-playback/core/lib/recordandplayback/edl/audio.rb @@ -21,7 +21,7 @@ module BigBlueButton module EDL module Audio FFMPEG_AEVALSRC = "aevalsrc=s=48000:c=stereo:exprs=0|0" - FFMPEG_AFORMAT = "aformat=sample_fmts=s16:sample_rates=48000:channel_layouts=stereo" + FFMPEG_AFORMAT = "aresample=async=1000,aformat=sample_fmts=s16:sample_rates=48000:channel_layouts=stereo" FFMPEG_WF_CODEC = 'libvorbis' FFMPEG_WF_ARGS = ['-c:a', FFMPEG_WF_CODEC, '-q:a', '2', '-f', 'ogg'] WF_EXT = 'ogg' @@ -145,6 +145,10 @@ module BigBlueButton if audioinfo[input[:filename]][:format][:format_name] == 'wav' ffmpeg_cmd += ['-ignore_length', '1'] end + # Prefer using the libopus decoder for opus files, it handles discontinuities better + if audioinfo[input[:filename]][:audio][:codec_name] == 'opus' + ffmpeg_cmd << '-c:a' << 'libopus' + end ffmpeg_cmd += ['-i', input[:filename]] end