diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index 0bf0fb919..30a1280f6 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -837,8 +837,7 @@ bool SimpleOutput::StartStreaming(obs_service_t *service) static void remove_reserved_file_characters(string &s) { - replace(s.begin(), s.end(), '/', '_'); - replace(s.begin(), s.end(), '\\', '_'); + replace(s.begin(), s.end(), '\\', '/'); replace(s.begin(), s.end(), '*', '_'); replace(s.begin(), s.end(), '?', '_'); replace(s.begin(), s.end(), '"', '_'); diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 53f189220..70b42184a 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -863,6 +863,13 @@ static void replay_buffer_save(struct ffmpeg_muxer *stream) dstr_cat_ch(&stream->path, '/'); dstr_cat(&stream->path, filename); + char *slash = strrchr(stream->path.array, '/'); + if (slash) { + *slash = 0; + os_mkdirs(stream->path.array); + *slash = '/'; + } + bfree(filename); obs_data_release(settings);