FFMPEG kopieren hls hohe CPU-Auslastung

494
Gordon A.

Ich habe eine Reihe von Batch-Skripts (Windows 10), um eine "Sofortwiedergabe" für einige (11) HLS-Streams mit FFMPEG zu erstellen. Wenn alles funktioniert, verwendet jede Instanz weniger als 1% CPU. Das Problem, das ich habe, ist, dass FFMPEG regelmäßig hängt und nicht weiterläuft. In diesem Fall springt die Instanz auf 10-15% CPU-Auslastung.

Das erste Mal, als ich dieses Problem hatte, habe ich meine Grafikkartentreiber und die FFMPEG-Version aktualisiert. Das funktionierte eine Weile, aber das Problem kam wieder. Ich nahm an, dass die Grafikkarte schlecht lief. Ich habe jetzt einen brandneuen Computer (Precision 7520 mit Xeon E3-1535M v6, Quadro M2200 und 32 GB ECC-RAM), und das Problem bleibt bestehen. Ich habe keine Ahnung, was die Ursache ist. Ich habe versucht, FFMPEG erneut zu aktualisieren, ohne Erfolg.

Wenn jemand eine Lösung hat, wäre das das Beste. Wenn Sie jedoch einen Weg kennen, um die Prozessorauslastung zu überwachen und ffmpeg automatisch zu beenden, wenn es mehr als 10 Sekunden dauert, wäre dies eine akzeptable Lösung.

Das Recorder-Skript lautet wie folgt:

Set Event=%1 Set CamName=%4 ::SegLength is normally 30 to 60 seconds Set SegLength=%2 Set BasePath=%3

mkdir "%BasePath%\%Event%\%CamName%\" for /f %%i in ('yt-dl PATH_TO_master.m3u8 -f best --get-url') do set url="%%i"

:beg Set "FileName=%CamName%.%TIME::=-%.mp4" ffmpeg -n -i %url% -t %SegLength% -c:v copy -c:a copy -f mp4 "%BasePath%\%Event%\%CamName%\%FileName%"
goto :beg

0

0 Antworten auf die Frage