- if ((ret = avio_open2(&out, s->filename, AVIO_FLAG_WRITE,
+ if (!use_rename && !warned_non_file++)
+ av_log(s, AV_LOG_ERROR, "Cannot use rename on non file protocol, this may lead to races and temporarly partial files\n");
+
+ snprintf(temp_filename, sizeof(temp_filename), use_rename ? "%s.tmp" : "%s", s->filename);
+ if ((ret = avio_open2(&out, temp_filename, AVIO_FLAG_WRITE,