From 6e4dbfd8439e5e5568ab7a0a9e046d23ab89dfdc Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 28 Mar 2025 18:08:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E6=A8=A1=E6=9D=BF=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=9F=B3=E4=B9=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- util/ffmpeg.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/util/ffmpeg.py b/util/ffmpeg.py index 8684cd3..4c0efb1 100644 --- a/util/ffmpeg.py +++ b/util/ffmpeg.py @@ -19,12 +19,13 @@ def re_encode_and_annexb(file): span.set_status(Status(StatusCode.ERROR)) return file logger.info("ReEncodeAndAnnexb: %s", file) - ffmpeg_process = subprocess.run(["ffmpeg", "-y", "-hide_banner", "-i", file, - *MUTE_AUDIO_INPUT, - "-map", "0:v", "-map", "1:a", + has_audio = not not probe_video_audio(file) + ffmpeg_process = subprocess.run(["ffmpeg", "-y", "-hide_banner", "-vsync", "cfr", "-i", file, + *(set() if has_audio else MUTE_AUDIO_INPUT), + "-map", "0:v", "-map", "0:a" if has_audio else "1:a", *VIDEO_ARGS, "-bsf:v", "h264_mp4toannexb", *AUDIO_ARGS, "-bsf:a", "setts=pts=DTS", - *ENCODER_ARGS, "-shortest", + *ENCODER_ARGS, "-shortest", "-fflags", "+genpts", "-f", "mpegts", file + ".ts"]) logger.info(" ".join(ffmpeg_process.args)) span.set_attribute("ffmpeg.args", json.dumps(ffmpeg_process.args)) @@ -33,7 +34,7 @@ def re_encode_and_annexb(file): if ffmpeg_process.returncode == 0: span.set_status(Status(StatusCode.OK)) span.set_attribute("file.size", os.path.getsize(file+".ts")) - os.remove(file) + # os.remove(file) return file+".ts" else: span.set_status(Status(StatusCode.ERROR))