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:
parent
6270c92b44
commit
0fe1a47295
@ -322,6 +322,7 @@ def main():
|
|||||||
cmd += [
|
cmd += [
|
||||||
"-map", "0:v:0", # samo prvi video stream
|
"-map", "0:v:0", # samo prvi video stream
|
||||||
"-c:v", "libx264", "-preset", "veryfast", "-crf", "20",
|
"-c:v", "libx264", "-preset", "veryfast", "-crf", "20",
|
||||||
|
"-pix_fmt", "yuv420p", # web/mobile compat (broadcast .mpg = yuv422p)
|
||||||
]
|
]
|
||||||
cmd += audio_args
|
cmd += audio_args
|
||||||
else:
|
else:
|
||||||
@ -349,7 +350,8 @@ def main():
|
|||||||
audio_args = build_audio_args(audio_streams)
|
audio_args = build_audio_args(audio_streams)
|
||||||
cmd = ["ffmpeg", "-y", "-i", str(src),
|
cmd = ["ffmpeg", "-y", "-i", str(src),
|
||||||
"-map", "0:v:0",
|
"-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]
|
cmd += audio_args + [tmp.name]
|
||||||
print(f"🔧 PRE-CONVERT CMD: {' '.join(cmd)}", file=sys.stderr)
|
print(f"🔧 PRE-CONVERT CMD: {' '.join(cmd)}", file=sys.stderr)
|
||||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
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.append(f"afade=t=out:st={fade_start}:d={args.fade_out}")
|
||||||
audio_filter_str = ",".join(audio_filter) if audio_filter else None
|
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":
|
if args.mode == "blur":
|
||||||
# blur uporablja filter_complex
|
# blur uporablja filter_complex
|
||||||
cmd = [
|
cmd = [
|
||||||
"ffmpeg", "-y", "-i", str(work_input),
|
"ffmpeg", "-y", "-i", str(work_input),
|
||||||
"-filter_complex", vfilter,
|
"-filter_complex", vfilter,
|
||||||
"-c:v", "libx264", "-preset", preset, "-crf", crf,
|
"-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)
|
"-map", "0:a:0?", # samo prvi audio stream (če obstaja)
|
||||||
"-ac", "2", # force stereo
|
"-ac", "2", # force stereo
|
||||||
"-c:a", "aac", "-b:a", "192k",
|
"-c:a", "aac", "-b:a", "192k",
|
||||||
@ -405,6 +412,7 @@ def main():
|
|||||||
"ffmpeg", "-y", "-i", str(work_input),
|
"ffmpeg", "-y", "-i", str(work_input),
|
||||||
"-vf", vfilter,
|
"-vf", vfilter,
|
||||||
"-c:v", "libx264", "-preset", preset, "-crf", crf,
|
"-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
|
"-map", "0:v:0", "-map", "0:a:0?", # video + samo prvi audio
|
||||||
"-ac", "2", # force stereo
|
"-ac", "2", # force stereo
|
||||||
"-c:a", "aac", "-b:a", "192k",
|
"-c:a", "aac", "-b:a", "192k",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user