J'utilise gstreamer pour convertir l'audio à partir de fichiers/flux RTMP/RTSP, puis l'analyser.Gstreamer lecture audio à partir d'un fichier vidéo avec (uri) décodebin - utilisation élevée du processeur
Le problème est que si mon fichier source est une vidéo ou un flux vidéo, gstreamer utilise beaucoup de CPU.
Exemple 1 (vidéo) - utilise 30 à 35% du processeur comme indiqué par htop.
gst-launch-1.0 uridecodebin uri='test.mp4' ! autoaudiosink
Exemple 2 (audio à partir du fichier vidéo ci-dessus converti avec ffmpeg -c copie) - utilise 2-4% du CPU
gst-launch-1.0 uridecodebin uri='test.mp3' ! autoaudiosink
Comment puis-je préciser que je ne ai besoin source audio de la vidéo fichier? J'utilise décodeur parce que je ne sais pas quels fichiers (formats) je vais obtenir des utilisateurs.
J'ai déjà un pipeline de travail avec decodebin et appsink, ce qui me donne accès à de l'audio pcm16 16khz transcodé brut, merci! On dirait que j'ai trouvé le problème. Decodebin2 (qui est d'ailleurs utilisé dans playbin) décode tous les flux qu'il peut trouver dans le fichier source/stream/etc. On dirait que decodebin3 qui est en cours de développement va maintenant se débarrasser de cette utilisation inutile du processeur. –