stopRecording is not working properly

Hi Guys,

We are using Licode right now; thanks a lot for your contribution for the society.

We are experiencing the following issue.
During vision-talking, we are using what the script.js provided to record the video. When we click the stopRecording, we can clearly see the recordingId has been “stopped” from the console logging.
However, the recording is not stopping obviously, we can see this still happening in the
erizo-agent loggging, and we cannot not see the expected as indicated in the following logging:

[erizo-f0e8c446-71c3-7f37-bfa2-eb35e7fe0b5e] 2020-06-10 17:57:56.338 - INFO: Publisher - message: Removing externalOutput, id /tmp/729737785353411700.mkv
[erizo-f0e8c446-71c3-7f37-bfa2-eb35e7fe0b5e] 2020-06-10 17:57:56.338 - INFO: Publisher - message: Removing ExternalOutput, url: /tmp/729737785353411700.mkv
from the publisher.js
unless we close the browser.

So far we are suspecting the rabbit message queue manager is not timely responding, and we lost the log information from publisher.js, and the “mkv” file is keeping growing.

Besides, when we use {vp8, opus}, as well as {h264, opus} as our default codec configuration, we found the audio is completely noisy or lost.

Could you please give us any clues to proceed ? Thanks again !

Besides, I think there is a but in
/erizo/src/erizo/media/ExternalOutput.cpp for function syncClose() :
if(!recording_) {
return;
}

After that to my understanding we should immediately use
recording_ = false
then we do other things, otherwise, we cannot jump out of the sendLoop thread.

Thanks !

Hi guys, there is a bug in function onStopRecorder(options, callback)
in
erizo_controller/erizoController/models/Client.js file
the original is
this.room.controller.removeExternalOutput(options.id, url, callback);
should be changed to
this.room.controller.removeExternalOutput(stream.id, url, callback);

Otherwise it cannot stop the recording, due to the returned queue for the erizo being empty.

Now I still cannot playback the recorded video using html tag mechanism.
I am guessing the c++ code has bugs :slight_smile: Frankly to say, it’s a little bit messy for a fresh c++ coder.
Referring to some previous thread, I am using the following code to transcode the recorded file first:
ffmpeg -y -i /tmp/826573762707463800.mkv -c copy ./826573762707463800.mkv
ffmpeg -i ./826573762707463800.mkv -c:a libvorbis ./extras/basic_example/public/videolog/826573762707463800.webm
Then I was using the html tag to playback the video. Sadly, I was failed.

  1. The video is much longer than the audio, obviously abnormal (For instance, I have just recorded 6 second of file, however, the video length displayed from the chrome browser is over 1 min. How come ?!)
  2. the audio length is closer to my expected length of the recorded file
  3. The audio is completely noise-corrupted (typical encodec-decodec mismatching issue).
    Is there anyone of the organisers give me any tips to proceed to check the C++ code ?
    Thank you a lot for your contribution again !