Mock the struct StreamContext with only one member variable transcodingCmd: *exec.Cmd;
Mock the method StreamContext.getStreamName(void): string by returning any string (will be used in log information);
Mock the method StreamContext.getRecordingFileName(void): string by returning the directory of the video to test;
Mock the method StreamContext.getTranscodingFileName(void): string by returning the directory of the output video (with a proper file extension, such as .mp4)
Initialize a variable, say sc, of the mocked type StreamContext, with transcodingCmd = nil
Call function transcode(streamCtx: *StreamContext): error with the parameter &sc
Get transcoded video, of which the audio is normalized
Motivation and Context
Reason for this feature: #1206 With the new feature, this problem can be avoided: #1186
Description
Applies the loudnorm filter of ffmpeg during transcoding. Parameters are chosen according to the EBU recommendation R128. Results of some experiments with this method
Steps for Testing
Prerequisites:
StreamContext
with only one member variabletranscodingCmd: *exec.Cmd
;StreamContext.getStreamName(void): string
by returning any string (will be used in log information);StreamContext.getRecordingFileName(void): string
by returning the directory of the video to test;StreamContext.getTranscodingFileName(void): string
by returning the directory of the output video (with a proper file extension, such as .mp4)sc
, of the mocked typeStreamContext
, withtranscodingCmd = nil
transcode(streamCtx: *StreamContext): error
with the parameter&sc