comment réduire l'utilisation du processeur de ffmpeg?
salut, je suis restreaming un flux hls comme un flux hls
SETLOCAL
:loop
ffmpeg -thread_queue_size 32768 -i "http://xx/636.m3u8" -f hls -hls_time 5 -hls_list_size 5 -hls_allow_cache 0 -hls_flags delete_segments -segment_list_flags +live -hls_base_url "../ts/" -hls_segment_filename "C:\nginx\html\ts\lig-%random%%random%-%%3d.svgz" -y "C:\nginx\html\hls\lig1.m3u8" > log.txt
goto loop
mais il utilise %15-20 de cpu que j'ai à faire 16 flux comme ça dans la même serveur, mais je ne peux pas.
ne puis-je pas faire une configuration comme juste de le télécharger .les fichiers ts, le clonage de l'm3u8?
- Cette question n'a rien à voir avec de la programmation, et appartient à SuperUser.com.
Vous devez vous connecter pour publier un commentaire.
Par défaut, FFmpeg vais essayer de ne réencode pas l'entrée, même si vous n'utilisez pas n'importe quel codage des paramètres liés.
Si vous voulez simplement copier le flux est, vous devriez essayer le streamcopy fonction:
En copiant les flux entrants, vous pouvez ignorer le processus d'encodage entièrement.
Votre commande devrait ressembler à ceci:
(Je ne sais pas si ça va marcher, si.)
Lorsque vous avez besoin de ré-encoder le flux entrant, vous devriez envisager d'ajouter certains paramètres d'encodage de la commande.
Par défaut, ffmpeg essaie de faire correspondre les paramètres de la source et de la qualité, lequel n'est pas toujours la plus optimale pour les applications de scène.
La "veryfast, ultra-rapide et ultra-rapide" h264 presets est un bon début pour obtenir certains de performances.
Vous pouvez également jouer avec des CRF (Taux Constant Facteur de codage, les débits les plus élevés, etc.
Plus sur H264 enoding: https://trac.ffmpeg.org/wiki/Encode/H.264
e.g.: -c:v h264
!!! Aussi, couper la> log
part, elle interdit de ffmpeg pour dire ce qui est faux.Bien que cette question est déjà considéré répondu, je crois qu'il manque une réponse qui n'implique pas de réglage les paramètres de la commande et qui pourtant peut être utilisé avec d'autres outils ou des commandes, et pas seulement FFmpeg.
La CPUlimit outil est conçu exactement pour cette fin et ne peut travailler efficacement non seulement pour FFmpeg, mais aussi pour tout autre CPU intensive processus que vous souhaitez réduire cette utilisation des ressources.
L'argument le plus important de CPUlimit est
-l
, qui permet de spécifier le pourcentage PROCESSEUR le processus sera autorisé à utiliser (sa limite supérieure).Veuillez également observer que cette limite dépend du nombre de Processeurs/Cœurs/Threads de la machine a, par exemple, si la machine dispose de 8 Processeurs, CPULimit
-l
les valeurs valides vont de 0 à 800 (0 étant inutile, bien sûr, et 800 sens de ne pas limiter le processus à tous les 800% signifie que tous les machine de la capacité de traitement).Exemple pour l'utilisation de la moitié de la capacité pour 8 Processeurs de la machine:
Espère que cette aide pour cette question spécifique ainsi que des besoins similaires dans l'avenir.
Lire l'entrée à la maternelle taux de trame. Principalement utilisé pour simuler un appui de l'appareil, ou vivre de flux d'entrée (par exemple, lors de la lecture à partir d'un fichier). Ne doit pas être utilisé avec de véritables saisir appareils ou vivent les flux d'entrée (où il peut causer la perte de paquets).
Par défaut FFmpeg tente de lire l'entrée(s) aussi vite que possible. Cette option ralentit la lecture de l'entrée(s) pour le natif de taux de trame de l'entrée(s). Il est utile pour une sortie en temps réel (par exemple, live streaming).