From patchwork Wed Oct 21 13:40:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 23133 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6867D44A1EE for ; Wed, 21 Oct 2020 17:49:22 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5245768AF73; Wed, 21 Oct 2020 17:49:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4DD5568A0C3 for ; Wed, 21 Oct 2020 17:49:15 +0300 (EEST) Received: by mail-pf1-f195.google.com with SMTP id e10so1629972pfj.1 for ; Wed, 21 Oct 2020 07:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lcreQwH3tH1TZzM/Wb858Ec12xuS/UrnDT8CW7ZJi8Y=; b=W5bc8B1gamYKa33sbmOsH4n1xw5juq9kyuvvX2bRU9VBXUkaxTG+1wVHYVlGMCsrzd anbt26ACEQjccy6HBTgdKvoyfHvhXkIK/3352/VYxm8drVfigfqXwveys/1hNAPUTBfa 48CaBR75KQl+WbFOIOl05WPkYu2n7JM6zYuXAGT/uQT8clSFsi6tE87L7mYU6qWlvuny kFhmWSIm1rbX6Qh6O/tug0jUyb174wPbp/4eLFKHbn7p15qyMMMo+0OqZw4KeCoEglDF MIcmvYbvzZLa438D3pm24ohgCTBt89ERtpaBeqrjNmPdp/ZKkp5FEGu1KMEXBP+OWePZ B0gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lcreQwH3tH1TZzM/Wb858Ec12xuS/UrnDT8CW7ZJi8Y=; b=bUwSWwVga7Cx3fcBzsJty5JmQmcoYXtI7DpFdwI3uZBDKWsezJ/Lpp9m5q6A/PGSUN MMJ9rd/sxoZ00Bba8DxrfhYJZeUfSlGleQWgE7FTIitKCLnQIP4Cs8/I74VdedlLSZA/ CzKcDq68LbZ/EreNpCBe/AJp07gyxJQ5CQyhOsCEGXIrPx0vVdBPImO4/kQGMQQVWM79 ZzA8FbYtiu5dcbcicjy5kj8JqOW/b4y9nKMieVioYvQDzqCxXsn3Jr4X2PDer1SXsseG uK3daItKWuGjKRxA5HV/+E4ElV74fnwgtWO2yTA5hKtt8fyzV5wUlsU6qFqsbHF4Rz12 pLQA== X-Gm-Message-State: AOAM530VFCrUEdqBIj/5E/nNNmHMQP24mbdN0/h64tMFlkPoH6fkYR5r wsHqaC6HOIOb+K/46sqoif9U+NBEi0o= X-Google-Smtp-Source: ABdhPJwNRQBo6GxIbC9iLuMG9jZ4TW0Iwcd+QksAazg27ZiGTUtmf1TWXp8SqEH3ePfjeTLkYQO8iQ== X-Received: by 2002:a63:654:: with SMTP id 81mr3342205pgg.27.1603287624919; Wed, 21 Oct 2020 06:40:24 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id o15sm2624718pfd.16.2020.10.21.06.40.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Oct 2020 06:40:24 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Oct 2020 21:40:14 +0800 Message-Id: <1603287614-11545-3-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1603287614-11545-1-git-send-email-lance.lmwang@gmail.com> References: <1603287614-11545-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] fftools/ffmpeg: fix the wrong bitrate and speed stats X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang The bitrate and speed stats are wrong If the copyts is enabled. Please test with below command: wget http://samples.mplayerhq.hu/MPEG2/foxksaz.ts ./ffmpeg -y -copyts -i ./foxksaz.ts -c:v libx264 -x264opts \ nal-hrd=cbr:force-cfr=1 -b:v 3500k -minrate 3500k -maxrate 3500k -bufsize \ 1000k -c:a mp2 -muxrate 4500k -vframes 1000 test.ts before: frame= 1000 fps=112 q=-1.0 Lsize= 9063kB time=09:10:12.41 bitrate= 2.2kbits/s speed=3.7e+03x after: frame= 1000 fps=112 q=-1.0 Lsize= 9062kB time=00:00:15.78 bitrate=4703.4kbits/s speed=1.77x Signed-off-by: Limin Wang --- fftools/ffmpeg.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index cb7644d..6a5bf7d 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -344,6 +344,7 @@ static volatile int received_nb_signals = 0; static atomic_int transcode_init_done = ATOMIC_VAR_INIT(0); static volatile int ffmpeg_exited = 0; static int main_return_code = 0; +static int64_t copy_ts_first_pts = AV_NOPTS_VALUE; static void sigterm_handler(int sig) @@ -1753,9 +1754,17 @@ static void print_report(int is_last_report, int64_t timer_start, int64_t cur_ti vid = 1; } /* compute min output value */ - if (av_stream_get_end_pts(ost->st) != AV_NOPTS_VALUE) + if (av_stream_get_end_pts(ost->st) != AV_NOPTS_VALUE) { pts = FFMAX(pts, av_rescale_q(av_stream_get_end_pts(ost->st), ost->st->time_base, AV_TIME_BASE_Q)); + if (copy_ts) { + if (copy_ts_first_pts == AV_NOPTS_VALUE && pts > 1) + copy_ts_first_pts = pts; + if (copy_ts_first_pts != AV_NOPTS_VALUE) + pts -= copy_ts_first_pts; + } + } + if (is_last_report) nb_frames_drop += ost->last_dropped; }