Fix output pixel format: -pix_fmt yuv420p + setsar=1 v vseh ffmpeg ukazih (broadcast .MPG iz Qnet je yuv422p z anamorphic SAR 64:45 \u2192 popa\u010den DAR 4:5 namesto 9:16, ne kompatibilen z Instagram/FB/mobile playerji)

This commit is contained in:
OpenClaw Agent 2026-05-02 11:42:08 +00:00
parent 6270c92b44
commit 0fe1a47295

View File

@ -322,6 +322,7 @@ def main():
cmd += [
"-map", "0:v:0", # samo prvi video stream
"-c:v", "libx264", "-preset", "veryfast", "-crf", "20",
"-pix_fmt", "yuv420p", # web/mobile compat (broadcast .mpg = yuv422p)
]
cmd += audio_args
else:
@ -349,7 +350,8 @@ def main():
audio_args = build_audio_args(audio_streams)
cmd = ["ffmpeg", "-y", "-i", str(src),
"-map", "0:v:0",
"-c:v", "libx264", "-preset", "veryfast", "-crf", "20"]
"-c:v", "libx264", "-preset", "veryfast", "-crf", "20",
"-pix_fmt", "yuv420p"] # web/mobile compat
cmd += audio_args + [tmp.name]
print(f"🔧 PRE-CONVERT CMD: {' '.join(cmd)}", file=sys.stderr)
result = subprocess.run(cmd, capture_output=True, text=True)
@ -387,12 +389,17 @@ def main():
audio_filter.append(f"afade=t=out:st={fade_start}:d={args.fade_out}")
audio_filter_str = ",".join(audio_filter) if audio_filter else None
# Force kvadraten pixel (SAR=1:1) — fix za broadcast .MPG ki ima 64:45 anamorphic
if not vfilter.endswith(",setsar=1"):
vfilter = vfilter + ",setsar=1"
if args.mode == "blur":
# blur uporablja filter_complex
cmd = [
"ffmpeg", "-y", "-i", str(work_input),
"-filter_complex", vfilter,
"-c:v", "libx264", "-preset", preset, "-crf", crf,
"-pix_fmt", "yuv420p", # web/mobile compat (Instagram/FB/web players)
"-map", "0:a:0?", # samo prvi audio stream (če obstaja)
"-ac", "2", # force stereo
"-c:a", "aac", "-b:a", "192k",
@ -405,6 +412,7 @@ def main():
"ffmpeg", "-y", "-i", str(work_input),
"-vf", vfilter,
"-c:v", "libx264", "-preset", preset, "-crf", crf,
"-pix_fmt", "yuv420p", # web/mobile compat (Instagram/FB/web players)
"-map", "0:v:0", "-map", "0:a:0?", # video + samo prvi audio
"-ac", "2", # force stereo
"-c:a", "aac", "-b:a", "192k",