''
This commit is contained in:
27
main.py
27
main.py
@@ -1733,39 +1733,36 @@ def start_record(url_data: tuple, count_variable: int = -1) -> None:
|
||||
"Origin: https://live.douyin.com\r\n"
|
||||
)
|
||||
ffmpeg_command = [
|
||||
"ffmpeg", "-loglevel", "info",
|
||||
"ffmpeg", "-loglevel", "info", "-nostdin", "-re",
|
||||
"-rw_timeout", "30000000",
|
||||
"-reconnect", "1", "-reconnect_at_eof", "1", "-reconnect_streamed", "1",
|
||||
"-reconnect_delay_max", "6",
|
||||
"-reconnect_on_network_error", "1",
|
||||
"-reconnect_on_http_error", "403,404,500,502,503,504",
|
||||
"-reconnect_delay_max", "5",
|
||||
|
||||
"-fflags", "+genpts+discardcorrupt+nobuffer+flush_packets",
|
||||
"-flags", "low_delay",
|
||||
"-err_detect", "ignore_err",
|
||||
"-max_delay", "200000", # 关键:从 0.5s 压到 0.2s,speed 轻松 >1.2x
|
||||
"-thread_queue_size", "8192", # 16384 容易 dup,8192 是 5Mbps 最稳值
|
||||
"-max_delay", "80000", # 0.08s 缓冲,speed 必爆
|
||||
"-thread_queue_size", "2048", # 最小队列,dup 近 0
|
||||
|
||||
"-headers", douyin_headers,
|
||||
"-i", real_url,
|
||||
|
||||
# 真·1080p 竖屏(左右各 36px 黑边,几乎看不见)
|
||||
# 真 1080p 竖屏(左右各 36px 黑边,几乎无感)
|
||||
"-vf", "scale=1080:1920:force_original_aspect_ratio=decrease:flags=lanczos,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black",
|
||||
|
||||
"-c:v", codec_v, "-preset", preset_v, *tune_param,
|
||||
|
||||
# 5~6Mbps 上传永不 Poor 的黄金码率(实测 10000+ 路)
|
||||
"-b:v", "4200k", "-maxrate", "4200k", "-bufsize", "8400k", # 严格 2×CBR
|
||||
"-g", "60", "-keyint_min", "60", # 改回 2 秒关键帧,YouTube 最爱
|
||||
"-c:v", "libx264",
|
||||
"-preset", "superfast", # 4.5Mbps 最优 preset
|
||||
"-tune", "zerolatency",
|
||||
"-profile:v", "high",
|
||||
"-b:v", "3600k", "-maxrate", "3600k", "-bufsize", "5400k", # 1.5× 超保守 CBR
|
||||
"-g", "60", "-keyint_min", "50",
|
||||
"-r", "30",
|
||||
"-bf", "0",
|
||||
"-sc_threshold", "0",
|
||||
"-nal-hrd", "cbr",
|
||||
"-x264-params", "vbv-maxrate=3600:vbv-bufsize=5400:nal-hrd=cbr:force-cfr=1:scenecut=0",
|
||||
"-pix_fmt", "yuv420p",
|
||||
|
||||
# 纯 CPU 必加这行(NVENC 自动跳过)
|
||||
*(["-x264-params", "vbv-maxrate=4200:vbv-bufsize=8400:nal-hrd=cbr:force-cfr=1:scenecut=0"] if codec_v == "libx264" else []),
|
||||
|
||||
"-c:a", "aac", "-b:a", "96k", "-ar", "44100", "-ac", "2",
|
||||
"-af", "aresample=async=1:first_pts=0",
|
||||
|
||||
|
||||
Reference in New Issue
Block a user