теперь я использую steamlink и ffmpeg для записи потоков и сохранения их в файл, во многих случаях сохраненный видеофайл имеет большую задержку. Я нашел эту ссылку https://www.reddit.com/r/Twitch/comments/62601b/laggy_stream_on_streamlinklivestreamer_but_not_on/, где они утверждают, что проблема задержки возникает из-за того, что на плеере не включен кэш. Я попытался выставить опции -hls_allow_cache allowcache -segment_list_flags cache
, в результате чего процесс ffmpeg начался более или менее на 8 секунд, после чего он заканчивался и сразу же начинался снова, не возвращая видеофайл. Если я не поставлю эти две опции, видео записывается правильно но большую часть времени с некоторой задержкой.
Очевидно, что если я посещаю потоковую передачу из браузера, у меня нет проблем с задержкой
это код
from streamlink import Streamlink, NoPluginError, PluginError
streamlink = Streamlink()
#this code is just a snippet, it is inside a while loop to restart the process
try:
streams = streamlink.streams(m3u8_url)
stream_url = streams['best'].url
#note hls options not seem to work
ffmpeg_process = Popen(
["ffmpeg", "-hide_banner", "-loglevel", "panic", "-y","-hls_allow_cache", "allowcache", "-segment_list_flags", "cache","-i", stream_url, "-fs", "10M", "-c", "copy",
"-bsf:a", "aac_adtstoasc", fileName])
ffmpeg_process.wait()
except NoPluginError:
print("noplugin")
except PluginError:
print("plugin")
except Exception as e:
print(e)
что такое лучшие варианты включить кеш и максимально ограничить лаг?