diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index f152b2849e3e1a..08879c3e4c5c0d 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -582,10 +582,10 @@ static void generate_filename(struct ffmpeg_muxer *stream, struct dstr *dst, boo char *filename = os_generate_formatted_filename(ext, space, fmt); dstr_copy(dst, dir); - dstr_replace(dst, "\\", "/"); - if (dstr_end(dst) != '/') + if (dstr_end(dst) != '/' && dstr_end(dst) != '\\') dstr_cat_ch(dst, '/'); dstr_cat(dst, filename); + dstr_replace(dst, "\\", "/"); char *slash = strrchr(dst->array, '/'); if (slash) { diff --git a/plugins/obs-outputs/mp4-output.c b/plugins/obs-outputs/mp4-output.c index fd4e1fca43bb69..a2cdc490a73879 100644 --- a/plugins/obs-outputs/mp4-output.c +++ b/plugins/obs-outputs/mp4-output.c @@ -392,10 +392,10 @@ static void generate_filename(struct mp4_output *out, struct dstr *dst, bool ove char *filename = os_generate_formatted_filename(ext, space, fmt); dstr_copy(dst, dir); - dstr_replace(dst, "\\", "/"); - if (dstr_end(dst) != '/') + if (dstr_end(dst) != '/' && dstr_end(dst) != '\\') dstr_cat_ch(dst, '/'); dstr_cat(dst, filename); + dstr_replace(dst, "\\", "/"); char *slash = strrchr(dst->array, '/'); if (slash) {