exeldro / obs-source-record

GNU General Public License v2.0
333 stars 37 forks source link

Stuck on Stopping Recording , works well when I turn off source record #99

Open Mohammad-Orabi opened 3 months ago

Mohammad-Orabi commented 3 months ago

System Information

Issue Description I am experiencing an issue with OBS Studio where the recording process gets stuck at "stopping recording." This seems to be related to the use of the Source Record plugin. When I disable this plugin, the problem does not occur. I am using an Apple M3 Max with the latest version of macOS.

Steps to Reproduce

  1. Start OBS Studio with two additional sources set to record with hardware encoding.
  2. Start recording.
  3. Attempt to stop the recording.

Expected Behavior The recording should stop promptly without any issues.

Current Behavior The recording hangs at the stopping phase, and OBS Studio does not finalize the recording process.

Logs Attached are the logs from my session which include all startup procedures, settings, and the point where the issue occurs. I have also adjusted the keyframe interval to 2 seconds upon suggestions from the community, but the issue persists.

Here, you will insert the log text.

Troubleshooting Done

I suspect there may be an issue with how the Source Record plugin interacts with the hardware encoder or a potential problem with resource allocation on the M3 Max. Any assistance or insights from the community would be greatly appreciated.

Thank you for your time and help.

loom:https://www.loom.com/share/885bb2b231e54055829749ffbac15cbb

log.txt

w3cj commented 3 months ago

Ran into this today after upgrading to OBS 30.1.0

Plugin is working again after downgrading to 30.0.2 - https://github.com/obsproject/obs-studio/releases/tag/30.0.2

exeldro commented 3 months ago

Can you test if this build fixes the issue for you? https://github.com/exeldro/obs-source-record/actions/runs/8401004163 You should be able to download it from the bottom of that page when logged in on GitHub

Mohammad-Orabi commented 3 months ago

@exeldro Thank you for looking into it , no unfortunately it is still exactly the same behavior ps: I am a web developer , happy to help testing/debugging further if I can in someway

exeldro commented 3 months ago

new attempt: https://github.com/exeldro/obs-source-record/actions/runs/8401539004 please let me know if this fixes it for you.

Mohammad-Orabi commented 3 months ago

still :/

w3cj commented 3 months ago

Same error. Here are my logs. Not sure if there are other logs I can provide.

06:05:15.806: CPU Name: Apple M1
06:05:15.806: Physical Cores: 8, Logical Cores: 8
06:05:15.806: Physical Memory: 16384MB Total
06:05:15.807: Model Identifier: MacBookPro17,1
06:05:15.807: OS Name: macOS
06:05:15.807: OS Version: Version 14.3.1 (Build 23D60)
06:05:15.807: Rosetta translation used: false
06:05:15.807: Kernel Version: 23.3.0
06:05:15.807: hotkeys-cocoa: Using layout 'com.apple.keylayout.US'
06:05:15.807: Current Date/Time: 2024-03-23, 06:05:15
06:05:15.807: Browser Hardware Acceleration: true
06:05:15.807: Qt Version: 6.6.2 (runtime), 6.6.2 (compiled)
06:05:15.807: Portable mode: false
06:05:15.903: OBS 30.1.0 (mac)
...
6:05:16.277: [Source Record] loaded version 0.3.3
...
06:05:23.583: [VideoToolbox advanced_video_stream: 'h264']: session created with hardware encoding
06:05:23.598: [VideoToolbox advanced_video_stream: 'h264']: settings:
06:05:23.598:   vt_encoder_id          com.apple.videotoolbox.videoencoder.ave.avc
06:05:23.598:   rate_control:          CBR
06:05:23.598:   bitrate:               6000 (kbps)
06:05:23.598:   quality:               0.600000
06:05:23.598:   fps_num:               30
06:05:23.598:   fps_den:               1
06:05:23.598:   width:                 1920
06:05:23.598:   height:                1080
06:05:23.598:   keyint:                2 (s)
06:05:23.598:   limit_bitrate:         off
06:05:23.598:   rc_max_bitrate:        2500 (kbps)
06:05:23.598:   rc_max_bitrate_window: 1.500000 (s)
06:05:23.598:   hw_enc:                on
06:05:23.598:   profile:               high
06:05:23.598:   codec_type:            h264
06:05:23.598: 
06:05:23.600: [CoreAudio AAC: 'Track1']: settings:
06:05:23.600:   mode:          AAC
06:05:23.600:   bitrate:       192
06:05:23.600:   sample rate:   48000
06:05:23.600:   cbr:           on
06:05:23.600:   output buffer: 1536
06:05:23.604: ==== Recording Start ===============================================
06:05:23.604: [ffmpeg muxer: 'adv_file_output'] Writing file '/Users/cj/Movies/OBS-Recordings/2024-03-23 06-05-23.mkv'...
06:05:23.652: [VideoToolbox Source Record: 'h264']: session created with hardware encoding
06:05:23.659: [VideoToolbox Source Record: 'h264']: settings:
06:05:23.659:   vt_encoder_id          com.apple.videotoolbox.videoencoder.ave.avc
06:05:23.659:   rate_control:          CBR
06:05:23.659:   bitrate:               6000 (kbps)
06:05:23.659:   quality:               0.600000
06:05:23.659:   fps_num:               30
06:05:23.659:   fps_den:               1
06:05:23.659:   width:                 1920
06:05:23.659:   height:                1080
06:05:23.659:   keyint:                2 (s)
06:05:23.659:   limit_bitrate:         off
06:05:23.659:   rc_max_bitrate:        2500 (kbps)
06:05:23.659:   rc_max_bitrate_window: 1.500000 (s)
06:05:23.659:   hw_enc:                on
06:05:23.659:   profile:               high
06:05:23.659:   codec_type:            h264
06:05:23.659: 
06:05:23.659: ---------------------------------
06:05:23.659: [FFmpeg aac encoder: 'Source Record'] bitrate: 128, channels: 2, channel_layout: stereo
06:05:23.659: 
06:05:23.661: [ffmpeg muxer: 'Source Record'] Writing file '/Users/cj/Movies/OBS-Recordings/multi-source/SCREEN-2024-03-23 06-05-23.mkv'...

Pressed stop recording and logs hung here.

Then clicked exit and allowed shut down.

06:06:59.528: ==== Shutting down ==================================================
06:06:59.555: [ffmpeg muxer: 'Source Record'] Output of file '/Users/cj/Movies/OBS-Recordings/multi-source/SCREEN-2024-03-23 06-05-23.mkv' stopped
06:06:59.555: Output 'Source Record': stopping
06:06:59.555: Output 'Source Record': Total frames output: 2873
06:06:59.555: Output 'Source Record': Total drawn frames: 2877
06:06:59.557: [ffmpeg muxer: 'adv_file_output'] Output of file '/Users/cj/Movies/OBS-Recordings/2024-03-23 06-05-23.mkv' stopped
06:06:59.557: Output 'adv_file_output': stopping
06:06:59.557: Output 'adv_file_output': Total frames output: 138
06:06:59.557: Output 'adv_file_output': Total drawn frames: 2879
06:06:59.771: ==== Recording Stop ================================================
exeldro commented 3 months ago

Does it work correct when one of the recordings is not using hardware encoding?

Mohammad-Orabi commented 3 months ago

No I tried to use software encoding on both the main and the source record and also tried 1 hardware 1 software

I am also happy if you want to get in a meeting and playaround if you want to try things out if that helps

w3cj commented 3 months ago

I'm new to C OBS plugin development but trying to get some debug logs for you.

The source_record_filter_update method gets called when I press "Stop Recording".

But for some reason obs_frontend_recording_active() still returns true

Added some logging near the end of the method (not sure how to interactive debug yet...)

  blog(LOG_INFO, "[Source Record] replay_buffer: %i", replay_buffer);
  blog(LOG_INFO, "[Source Record] record: %i", record);
  blog(LOG_INFO, "[Source Record] stream: %i", stream);
  blog(LOG_INFO, "[Source Record] obs_frontend_recording_active: %i", obs_frontend_recording_active());

  if (!replay_buffer && !record && !stream) {
    if (filter->encoder) {
      obs_encoder_release(filter->encoder);
      filter->encoder = NULL;
    }
    if (filter->aacTrack) {
      obs_encoder_release(filter->aacTrack);
      filter->aacTrack = NULL;
    }
  }

Outputs:

08:08:29.002: [Source Record] replay_buffer: 0
08:08:29.002: [Source Record] record: 1
08:08:29.002: [Source Record] stream: 0
08:08:29.002: [Source Record] obs_frontend_recording_active: 1
w3cj commented 3 months ago

Maybe there is some kind of bug / race condition in obs-studio on MacOS for the built in obs_frontend_recording_active() method?

I was able to get it working by looking for the OBS_FRONTEND_EVENT_RECORDING_STOPPING event as well. This way it will still stop the recording even if obs_frontend_recording_active() returns true.

Don't know if this is a good practice or the way to go about a fix.

I setup a global variable to keep track of the current event:

static int current_event = 0;
// codes...
static void frontend_event(enum obs_frontend_event event, void *data)
{
  // codes...  
  current_event = event;
  // codes...
}

and then updated source_record_filter_update to check this value as well:

bool record = false;
if (filter->closing) {
} else if (record_mode == OUTPUT_MODE_ALWAYS) {
  record = true;
} else if (record_mode == OUTPUT_MODE_RECORDING) {
  record = obs_frontend_recording_active() && current_event != OBS_FRONTEND_EVENT_RECORDING_STOPPING;
} else if (record_mode == OUTPUT_MODE_STREAMING) {
  record = obs_frontend_streaming_active();
} else if (record_mode == OUTPUT_MODE_STREAMING_OR_RECORDING) {
  record = obs_frontend_streaming_active() ||
      (obs_frontend_recording_active() && current_event != OBS_FRONTEND_EVENT_RECORDING_STOPPING);
} else if (record_mode == OUTPUT_MODE_VIRTUAL_CAMERA) {
  record = obs_frontend_virtualcam_active();
}
Mammothv200 commented 3 months ago

System Information

* CPU: Apple M3 Max

* Physical Cores: 14, Logical Cores: 14

* Memory: 36864MB Total

Issue Description I am experiencing an issue with OBS Studio where the recording process gets stuck at "stopping recording." This seems to be related to the use of the Source Record plugin. When I disable this plugin, the problem does not occur. I am using an Apple M3 Max with the latest version of macOS.

Steps to Reproduce

1. Start OBS Studio with two additional sources set to record with hardware encoding.

2. Start recording.

3. Attempt to stop the recording.

Expected Behavior The recording should stop promptly without any issues.

Current Behavior The recording hangs at the stopping phase, and OBS Studio does not finalize the recording process.

I have been experiencing this also. I'm on a Mac Studio M1 Ultra. If I Force Quit OBS, all three of my .MP4 files then close and are playable once OBS is closed. If you click on the pause button, the recording time counter stops. My process: I click Exit. Then I watch and wait for OBS (not responding). Then I Force Quit. Files then are closed and playable. I re-launch OBS, and skip Safe Mode. Once OBS opens cleanly, I close it once more, then re-launch, so as not to get any Safe Mode prompts.

Mohammad-Orabi commented 3 months ago

@Mammothv200 yes exactly same behavior and process

w3cj commented 3 months ago

I determined the root cause. Hopefully this will help with a solution.

Internally, after the OBS_FRONTEND_EVENT_RECORDING_STOPPING event is fired, the deactivate method of obs-ffmpeg-mux gets called. This waits for the process to exit, and then calls the method that will trigger the OBS_FRONTEND_EVENT_RECORDING_STOPPED event.

source-record has a handle to the ffmpeg_muxer output file created here: https://github.com/exeldro/obs-source-record/blob/master/source-record.c#L327

The file handle is only removed if recording has fully stopped: https://github.com/exeldro/obs-source-record/blob/master/source-record.c#L655

But, as mentioned above recording wont be fully stopped until the file handle is removed and the obs-ffmpeg-mux process has exited.

I moved the closing of the output file to the OBS_FRONTEND_EVENT_RECORDING_STOPPING event, and this allowed the obs-ffmpeg-mux process to exit and the OBS_FRONTEND_EVENT_RECORDING_STOPPED event to get called, but this requires keeping track of the current event, not sure if there is a better way:

if (record != filter->record) {
    if (record) {
        if (obs_source_enabled(filter->source) &&
            filter->video_output)
            start_file_output(filter, settings);
    }
    // moved from here
    filter->record = record;
}

if (current_event == OBS_FRONTEND_EVENT_RECORDING_STOPPING) {
    // to here
    if (filter->fileOutput) {
        pthread_t thread;
        pthread_create(&thread, NULL,
                   force_stop_output_thread,
                   filter->fileOutput);
        filter->fileOutput = NULL;
    }
}
Mammothv200 commented 3 months ago

Soooo... Am I the only one who did not know there is a separate Apple Silicon version of OBS? Sadly, this is NOT made clear when looking in About OBS. But anyway, the most current version is 30.1.1, so I have that now. Anyone else NOT on the AS version yet? This problem still occurs in this version too, so don't get your hopes up.

If you use Get Info on the OBS App, there it will tell you "Kind: Application (Apple silicon).

jaminmc commented 3 months ago

If this works for you, make a pull request :)

I determined the root cause. Hopefully this will help with a solution.

Internally, after the OBS_FRONTEND_EVENT_RECORDING_STOPPING event is fired, the deactivate method of obs-ffmpeg-mux gets called. This waits for the process to exit, and then calls the method that will trigger the OBS_FRONTEND_EVENT_RECORDING_STOPPED event.

source-record has a handle to the ffmpeg_muxer output file created here: https://github.com/exeldro/obs-source-record/blob/master/source-record.c#L327

The file handle is only removed if recording has fully stopped: https://github.com/exeldro/obs-source-record/blob/master/source-record.c#L655

But, as mentioned above recording wont be fully stopped until the file handle is removed and the obs-ffmpeg-mux process has exited.

I moved the closing of the output file to the OBS_FRONTEND_EVENT_RECORDING_STOPPING event, and this allowed the obs-ffmpeg-mux process to exit and the OBS_FRONTEND_EVENT_RECORDING_STOPPED event to get called, but this requires keeping track of the current event, not sure if there is a better way:

if (record != filter->record) {
  if (record) {
      if (obs_source_enabled(filter->source) &&
          filter->video_output)
          start_file_output(filter, settings);
  }
  // moved from here
  filter->record = record;
}

if (current_event == OBS_FRONTEND_EVENT_RECORDING_STOPPING) {
  // to here
    if (filter->fileOutput) {
        pthread_t thread;
        pthread_create(&thread, NULL,
                   force_stop_output_thread,
                   filter->fileOutput);
        filter->fileOutput = NULL;
    }
}
w3cj commented 3 months ago

Waiting for the maintainer to chime in on best practices and confirm this is an okay way to go about a fix. I've only tested on a Mac. Not sure if this fix will effect Linux / Windows.

If this works for you, make a pull request :)

exeldro commented 3 months ago

I plan on working on it this week. The problem for me is that I am not able to replicate the issue yet. So a pull request from somebody that can replicate the issue should help. Also if a pull request is made others can test the build to see if it also fixes it for them.

jaminmc commented 3 months ago

Well, It seems that the Stuck on Stopping Recording issue is not really related to the stopping of the recording on OBS. When I set my records to always, and set hotkeys for starting and stopping the filter for the sources, the trigger starts the recordings, but it does not reliably stop them. And this is with the latest Commit for Source-Recorder from move frontend event to graphics thread

I have tested 30.1, 30.1.1, and even the latest OBS from the Action Scheduled Repository Actions, and it is all the same. Even if I don't record from OBS, it does not stop.

I can, however, start and stop the recording while the source records are recording, and it will stop the OBS recording just fine.

This is on the Apple Silicon M1 Ultra.

The start trigger does work for all 3 sources I have.. But when I roll back to 30.0.2, The triggers only start 1 video, and it ends up saving the same thing as the the OBS record. So for older versions of OBS, I have to remove the filters and add them again for all sources for it to record them. In 30.1.0 +, I can start the records manually, record the switched version, and stop it. but I can't stop the source record unless I close OBS. The Hotkey does successfully disable the plugin, but it doesn't stop the record until OBS is closed.

So, I am using 30.1.1 now, and hotkeys to start and stop my source records manually. Then I record in OBS, and after I am done recording, I close OBS. I use the mkv format. Then I have a script that will remux the MKV to MOV with ffmpeg, and mp4fpsmod to fix it so it isn't a variable framerate. Since for some reason ffmpeg takes a constant fps mkv and makes is varible for some reason.

Hmm... So after a few restarts of OBS, now I can start and stop the recordings with the hotkeys, and it works. I can record OBS and it works too. I have yet to try it with the autostart when recording. But it is working for now. It isn't that stable though. But it never stops by itself, so at least it will get the recordings I need, and using mkv ensures that if OBS needs to be forced to quit, I won't loose any recordings.

Here is the script if anyone is interested:

#!/bin/bash

compress=false
compress_suffix="hevc"

usage() {
  echo "Usage: $0 [-c] <input_video1> [<input_video2> ...]"
}

check_input_files() {
  if [ "${#input_files[@]}" -eq 0 ]; then
    usage
    exit 1
  fi
}

while getopts ":c" opt; do
  case ${opt} in
    c)
      compress=true
      ;;
    \?)
      echo "Invalid option: $OPTARG" >&2
      usage
      exit 1
      ;;
  esac
done
shift $((OPTIND -1))

declare -a input_files=("$@")

check_input_files

for input_file in "${input_files[@]}"; do
  fps=$(mediainfo --Inform="Video;%FrameRate%" "$input_file")
  if [ "$fps" = "23.976" ]; then
    fps="24000/1001"
  fi
  if [ "$fps" = "29.97" ]; then
    fps="30000/1001"
  fi
  if ! [ -f "$input_file" ]; then
    echo "File not found: $input_file" >&2
    continue
  fi
  vcodec=$(mediainfo --Inform="Video;%Format%" "$input_file")
  tag=""
  if [ "$vcodec" = "HEVC" ]; then
    tag="-tag:v hvc1"
  fi

  output_file=$(realpath "$input_file")
  output_file="${output_file%.*}.mov"

  if [ "$compress" = true ]; then
    output_file="${output_file%.*}.$compress_suffix.mov"
    ffmpeg -i "$input_file" -map 0:v? -map 0:a?  -c:v hevc_videotoolbox -tag:v hvc1 -q 75 -g 48 -c:a copy "$output_file"
    echo "Compressed video saved as: $output_file"
  else
    if [ -f "$output_file" ]; then
      output_file="${output_file%.*}.remuxed.mov"
    fi
    ffmpeg  -i "$input_file" -map 0:v? -map 0:a? $tag -c copy "$output_file"
    mp4fpsmod -i -r "0:$fps" -x "$output_file"
    echo "Remuxed video saved as: $output_file"
  fi
done
w3cj commented 3 months ago

I plan on working on it this week. The problem for me is that I am not able to replicate the issue yet. So a pull request from somebody that can replicate the issue should help. Also if a pull request is made others can test the build to see if it also fixes it for them.

I'll try to get a PR and replication up later today. @exeldro Are you testing on Linux, Windows or Mac?

In the meantime for those experiencing the issue of OBS hanging on "Stopping Recording...", if you run: pkill obs-ffmpeg-mux from the terminal when this happens, this should stop the recording without needing to exit OBS.

exeldro commented 3 months ago

Made the release of the output be after stop event instead of when stop is called, test build here: https://github.com/exeldro/obs-source-record/actions/runs/8481536510

jaminmc commented 3 months ago

Made the release of the output be after stop event instead of when stop is called, test build here: https://github.com/exeldro/obs-source-record/actions/runs/8481536510

Made no difference.. On Mac M1Ultra, OBS 30.1.1

doing a pkill obs-ffmpeg-mux does stop the stream recordings, but it will only work with file types that don't need to be closed. Like ts, or mkv. I tried it with mov, and got a trash file.

Mohammad-Orabi commented 3 months ago

@exeldro this build did not work M3 Max however confirming that firing pkill obs-ffmpeg-mux will stop recording after getting stuck for mkv

exeldro commented 3 months ago

I had 1 more idea: https://github.com/exeldro/obs-source-record/actions/runs/8489942713

Mohammad-Orabi commented 3 months ago

still

Mammothv200 commented 3 months ago

I had 1 more idea: https://github.com/exeldro/obs-source-record/actions/runs/8489942713

Hello exeldro,

I would be willing to allow you to remote into my Mac Studio M1 Ultra, if this would be helpful to you.

Apple Mac Studio M1 Ultra (2022)

https://everymac.com/systems/apple/mac-studio/specs/mac-studio-m1-ultra-20-core-cpu-48-core-gpu-2022-specs.html

Memory: 65,536MB Total
OS: macOS Version 14.4.1
OBS Studio Version: 30.1.1 (Apple silicon)

Let me know and we can set this up.

🥇

exeldro commented 3 months ago

I was able to replicate the issue once and made a fix that: https://github.com/exeldro/obs-source-record/actions/runs/8554754393

Mammothv200 commented 3 months ago

I was able to replicate the issue once and made a fix that: https://github.com/exeldro/obs-source-record/actions/runs/8554754393

I wish I could try this right now, but I won't be able to test it until this evening. : ( Hopefully someone will be able to test sooner.

Thank you VERY MUCH exeldro!!! Contribution coming your way SOON! 💯

Mammothv200 commented 3 months ago

I'm going to be able to try this in a few hours.

Is there a "how to" for getting the macOS (arm64) version into a .DMG I can use on my machine? Never had to do this before.

Thank you.

w3cj commented 3 months ago

I was able to replicate the issue once and made a fix that: https://github.com/exeldro/obs-source-record/actions/runs/8554754393

Unfortunately, still not working with this build.

w3cj commented 3 months ago

I'm going to be able to try this in a few hours.

Is there a "how to" for getting the macOS (arm64) version into a .DMG I can use on my machine? Never had to do this before.

Thank you.

If you click the link provided and scroll all the way down, you can find the build artifacts. macos-ARM64 is here: https://github.com/exeldro/obs-source-record/actions/runs/8554754393/artifacts/1384734298

Mammothv200 commented 3 months ago

I'm going to be able to try this in a few hours. Is there a "how to" for getting the macOS (arm64) version into a .DMG I can use on my machine? Never had to do this before. Thank you.

If you click the link provided and scroll all the way down, you can find the build artifacts. macos-ARM64 is here: https://github.com/exeldro/obs-source-record/actions/runs/8554754393/artifacts/1384734298

Thank you for the info! I was able to get it. I saw that for you it is still not working. Most likely will not work for me either, but out of desperation (as I cannot shoot episodes for my 3 cam show without this), I'm going to try it anyway. I arrived home too late last night to try it.

Thanks all. I'm sure a solution WILL soon be found.

Mammothv200 commented 3 months ago

Ok, I was able to replicate the issue easily on an M2 MacBook Pro. I used the built in web cam of the MacBook, and two Logitech C925e USB cams. Configure MacBook cam as default, two Logitechs as Source Record filter cams. Reproducible easily and immediately with latest test build. : (

If I can provide any other needed details, please let me know.

NOTE: For a proper test, after the Force Quit of OBS, you MUST launch OBS, select Normal Startup of OBS, THEN IMMEDIATELY CLOSE OBS, AND RELAUNCH! If you do NOT do this, OBS does not run correctly and MAY only record from one cam and then NOT exhibit the failure condition.

w3cj commented 3 months ago

I don't know enough about C or this library to provide a fix, but for anyone that does, here is what's happening within OBS:

  1. User presses "Stop Recording"
  2. OBS_FRONTEND_EVENT_RECORDING_STOPPING event is fired
  3. deactivate of obs-ffmpeg-mux is called
  4. obs-ffmpeg-mux waits for all instances of obs-ffmpeg-mux to stop
  5. All instances of obs-ffmpeg-mux stop
  6. OBS_FRONTEND_EVENT_RECORDING_STOPPED event is fired

Here is what's happening within obs-source-record:

  1. OBS_FRONTEND_EVENT_RECORDING_STOPPING event is fired
  2. source_record_filter_update is called
  3. record within this method is still true because obs_frontend_recording_active() returns true
  4. Output task is not stopped
  5. obs-ffmpeg-mux continues waiting for output task to stop

  1. IF - OBS_FRONTEND_EVENT_RECORDING_STOPPED event is fired
  2. source_record_filter_update is called
  3. record within this method is now false because obs_frontend_recording_active() returns false
  4. The output task is stopped and obs-ffmpeg-mux process exits
Mammothv200 commented 3 months ago

Hey all,

New OBS 30.1.2 released TODAY!

Mammothv200 commented 2 months ago

Well, It seems that the Stuck on Stopping Recording issue is not really related to the stopping of the recording on OBS. When I set my records to always, and set hotkeys for starting and stopping the filter for the sources, the trigger starts the recordings, but it does not reliably stop them. And this is with the latest Commit for Source-Recorder from move frontend event to graphics thread


@jaminmc 

Thank you very much JaminMC for you post. I would like to try your script, but I don't know how to use it. 
Do you have any instructions you could share?

Thanks again! 📀 
profcaju commented 2 months ago

I've tested OBS 30.1.2 with Source Record 0.3.4, and the problem still persists. Anyone had success with the new version?

Kind regards,

Mammothv200 commented 2 months ago

I've tested OBS 30.1.2 with Source Record 0.3.4, and the problem still persists. Anyone had success with the new version?

Kind regards,

Sadly, no. Very disappointing. I am working on launching a 3 camera YouTube show and am dead in the water at this point. I'm trying to obtain two more Macs to "brute force" this dilemma. It's sad, because my Mac Studio M1 Ultra is powerful enough to be able to do this all by itself, with a working Source Record filter. If anyone has a way for me to be able to accomplish 4k simultaneous recording on one machine, without Source Record, I would love to hear about it. Thank you!

w3cj commented 2 months ago

I've tested OBS 30.1.2 with Source Record 0.3.4, and the problem still persists. Anyone had success with the new version? Kind regards,

Sadly, no. Very disappointing. I am working on launching a 3 camera YouTube show and am dead in the water at this point. I'm trying to obtain two more Macs to "brute force" this dilemma. It's sad, because my Mac Studio M1 Ultra is powerful enough to be able to do this all by itself, with a working Source Record filter. If anyone has a way for me to be able to accomplish 4k simultaneous recording on one machine, without Source Record, I would love to hear about it. Thank you!

See beginning of the thread. You can use an older version of OBS: https://github.com/exeldro/obs-source-record/issues/99#issuecomment-2016043434

exeldro commented 2 months ago

I have a Mac incoming, so I should be able to work on it more in a couple of days.

profcaju commented 2 months ago

Thanks for your effort, Exeldro. We appreciate a lot 💯💯💯💯

Mammothv200 commented 2 months ago

I have a Mac incoming, so I should be able to work on it more in a couple of days.

FANTASTIC!!! Yes, thank you for such an amazing filter that so many people love and use. Just AMAZING! THANK YOU!!!

exeldro commented 2 months ago

It looks to be a change in OBS 30.1 for which I made change to fix it here: https://github.com/obsproject/obs-studio/pull/10574

Mammothv200 commented 2 months ago

Oh, boy! This is exciting news! I won't be available to try it until much later this evening or tomorrow, but I will! Thank you for your hard, and much appreciated work exeldro!!!

If anyone is able to try this sooner, please let us know your results.

Thank you all! 💕

Mammothv200 commented 2 months ago

It looks to be a change in OBS 30.1 for which I made change to fix it here: obsproject/obs-studio#10574

Hello exeldro, so there isn't a problem with Source Record, it's something with OBS? We just need to wait for a new release of OBS? Does this also mean your privious version of Source Record should be fine to use once the fixed OBS is available?

Very interesting. Thank you again!!

exeldro commented 2 months ago

Yeah, in a next release of OBS it should be fixed.

jaminmc commented 2 months ago

@jaminmc

Thank you very much JaminMC for you post. I would like to try your script, but I don't know how to use it. Do you have any instructions you could share?

Thanks again! 📀

Save it in your system path.. I added ~/bin for my path. I also saved it as remux. so to run it. I just type remux and drag my mkv files to it. Then is makes my MOV files. It does need ffmpeg to work. I just use ffmpeg from homebrew. It also uses https://github.com/nu774/mp4fpsmod to modify the quicktimes to have constant frame rates instead of varible. It needs mediainfo to get the FPS.. So from homebrew, it needs brew install ffmpeg mediainfo and install mp4fpsmod from the instructions on that github.

jaminmc commented 1 month ago

Yeah, in a next release of OBS it should be fixed.

FYI: With the latest Source Record and the latest commit from OBS (actually even earlier, but I didn't want to test to see which one made it work), Source Record works flawlessly! Which is awesome!

Here is the one I am using now. https://github.com/obsproject/obs-studio/actions/runs/9071742074 Just download OBS from the build action. IT is basically a beta of the next revision of OBS. It shows up as 30.1.0-191-gce4c99be4 on the top when I run it.

Now I can finally use my mixer board without having to use Loopback to create different sources for each mic. Which added a slight delay to the audio channels. And more overhead.

Once the official next build of OBS comes out, I guess this Issue can be closed :)