У меня есть набор пакетных сценариев (Windows 10) для создания "мгновенного воспроизведения" для некоторых (11) потоков HLS с использованием FFMPEG. Когда все работает, каждый экземпляр использует менее 1% ЦП. У меня проблема в том, что FFMPEG регулярно зависает и не продолжает цикл. Когда это происходит, экземпляр переходит на 10-15% загрузки процессора.
Когда я впервые столкнулся с этой проблемой, я обновил драйверы видеокарты и версию FFMPEG, и это работало некоторое время, но проблема вернулась. Я предположил, что видеокарта идет плохо. Теперь у меня новый компьютер (Precision 7520 с Xeon E3-1535M v6, Quadro M2200 и 32 ГБ ECC RAM), и проблема сохраняется. Я понятия не имею, в чем причина. Я попытался обновить FFMPEG снова безрезультатно.
Если у кого-то есть решение, которое будет лучшим; однако, если вы знаете способ контролировать использование процессора и автоматически уничтожать ffmpeg, когда он работает более 10 секунд, это было бы приемлемым решением.
Сценарий рекордера выглядит следующим образом:
Set Event=%1
Set CamName=%4
::SegLength is normally 30 to 60 seconds
Set SegLength=%2
Set BasePath=%3
mkdir "% BasePath%\% Event%\% CamName%\" для /f %% i in ('yt-dl PATH_TO_master.m3u8 -f best --get-url') do set url = "%% i"
:beg Установите "FileName =% CamName%.% TIME::= -%. Mp4 "ffmpeg -n -i% url% -t% SegLength% -c:v копия -c:копия -f mp4"% BasePath%\% Event%\% CamName%\% Имя файла%"
Goto:умолять