From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A0880405F8 for ; Tue, 21 Dec 2021 21:46:32 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B23D768AEE0; Tue, 21 Dec 2021 23:46:30 +0200 (EET) Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 218F768A82A for ; Tue, 21 Dec 2021 23:46:25 +0200 (EET) Received: by mail-yb1-f182.google.com with SMTP id x32so317288ybi.12 for ; Tue, 21 Dec 2021 13:46:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=J/Y7q+PgTA4OTTuAXTkstZyAfeDZEwTpMkFwmWz8Zmo=; b=nR1+kOjDA+3625KCpTFQfRaCFCGU82rPWv4zqA6etdierELEQY+kd8gln+K38g2U7H /H3CCQWsCUszc/MkprTSGEv7PCKR+ftzbxXK8x9Nqg7vx2jZ/gdZFvNSVg4hCLeU5O+I phA3HTTwN1fpvxXt8Q6MmlvYtQtVZRuNfzKMJPgf6aR2DXFCmXRzHobwEaXjY7skLmju vjS9IJBELnbFoxJS2aLDR6B/3IDn7ukLK/SxB4A0ctFKZ1CpYsRZp6jMjuL/+0GnPd4f UJkUCL87lItWyuqxV9gS3AS7IMb8P1CO81MU1N1l+RT4hvBbC8OfUyjoZ7qvUhxVI6dS XQ/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=J/Y7q+PgTA4OTTuAXTkstZyAfeDZEwTpMkFwmWz8Zmo=; b=wyb7iD3ao3Q8IfEiFEjv7SdugH2agSwICc5Pne8ZRlZAqxGhsRxjX9td13JX8pvKv3 kPEqx6uorDEvAMX+oCEo0h+EgIqGbOXA5E/I6FJxRMMUAGaZ5GxFurEaDxfHSWfmwLy2 7uixmXC5773u5V2PC6ZEFcvr5hIedKyGQ4WyaRNug4lXpx25EGvMyP9kgmyh9yh+omcJ gKuZbo9Si7Og3gWZ+yrDZGhr9iopal7xu6UC/YkEpej4no9Tgh9Ec+ba9cDg30KRpe7C EO0d4Sd7Zrf9Ez+opxBTrCcVn2CYq5Qgfb5xgRGlwmwjZKdZikC8CVAHVpa3B1T4lEq6 JWXQ== X-Gm-Message-State: AOAM531Zn9dX+n9nnNVqIDq1JJr9kFwlx7pCjgDM5xre/S2oM31Kztze zJOe1KH0LApV7mGOQE3OK8FHH27oLCyhrjtqIADq2hXZbb9MvA== X-Google-Smtp-Source: ABdhPJyr/RcxwFwn0/6mSwr7uW+nD6HQeKThtPN7wmhx5juHTi7uxeUj7Y8TlOSTLEbaY/pEumrJkl9HBPt2zJGj09U= X-Received: by 2002:a25:d002:: with SMTP id h2mr353527ybg.581.1640123183681; Tue, 21 Dec 2021 13:46:23 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: James Dutton Date: Tue, 21 Dec 2021 21:45:46 +0000 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH] libavformat/segment: strftime date sub-directories X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Hi, This is a follow on from: https://patchwork.ffmpeg.org/project/ffmpeg/patch/CAAMvbhG9QsKSXfUzrt3REsRR89J5scYd84ec6OLEARqx4CUD-A@mail.gmail.com/ On Tue, 21 Dec 2021 at 21:39, James Dutton wrote: > > Automatically create sub-directories if needed based on date. > E.g. > ffmpeg ... -timelimit 2147483647 -f segment -strftime 1 -segment_time > 10 "%Y/%m/%d/%Y-%m-%d_%H-%M-%S.mkv" > > Signed-off-by: James Courtier-Dutton > --- > libavformat/segment.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/libavformat/segment.c b/libavformat/segment.c > index e9b0aa4fa8..86ca243ae6 100644 > --- a/libavformat/segment.c > +++ b/libavformat/segment.c > @@ -198,12 +198,27 @@ static int set_segment_filename(AVFormatContext *s) > if (seg->use_strftime) { > time_t now0; > struct tm *tm, tmpbuf; > + const char *dir; > + char *fn_copy; > time(&now0); > tm = localtime_r(&now0, &tmpbuf); > if (!strftime(buf, sizeof(buf), s->url, tm)) { > av_log(oc, AV_LOG_ERROR, "Could not get segment filename > with strftime\n"); > return AVERROR(EINVAL); > } > + /* Automatically create directories if needed */ > + /* E.g. %Y/%m/%d/%Y-%m-%d_%H-%M-%S.mkv */ > + fn_copy = av_strdup(buf); > + if (!fn_copy) { > + return AVERROR(ENOMEM); > + } > + dir = av_dirname(fn_copy); > + if (ff_mkdir_p(dir) == -1 && errno != EEXIST) { > + av_log(oc, AV_LOG_ERROR, "Could not create directory %s > with use_localtime_mkdir\n", dir); > + av_free(fn_copy); > + return AVERROR(errno); > + } > + av_free(fn_copy); > } else if (av_get_frame_filename(buf, sizeof(buf), > s->url, seg->segment_idx) < 0) { > av_log(oc, AV_LOG_ERROR, "Invalid segment filename template > '%s'\n", s->url); > -- > 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".