


Introduction à la méthode pour déterminer si une vidéo est au format mp3 à l'aide de python
Dans le projet, le format mp3 est utilisé pour la lecture des effets sonores. Lorsque je rencontre un fichier mp3 qui ne peut pas être lu dans le programme, je découvre finalement qu'il s'agit d'un fichier au format wav, mais qui se termine par mp3. Pour déterminer le format mp3 d'une ressource, comment le déterminer ? L'utilisation du suffixe .mp3 n'est définitivement pas fiable. Nous savons que l'extension peut être modifiée arbitrairement. Il faut juger à partir du format d'encodage.
-
Encodage mp3
Le fichier MP3 est un format de fichier multimédia en streaming, il n'y a donc pas d'en-tête de fichier. Les formats de format avec des en-têtes de fichiers tels que AVI et WAV sont faciles à juger. Ils commencent tous par RIFF. Il suffit de comparer les chaînes RIFF pour savoir si elles sont AVI ou WAV, tandis que mp3 ne peut analyser que le format d'encodage. Voici une brève introduction aux règles d'encodage mp3. Pour des informations détaillées, veuillez vous référer à cet article
Les fichiers MP3 sont généralement divisés en trois parties : TAG_V2 (ID3V2), données audio, TAG_V1 (ID3V1)
a). ID3V2 est au début du fichier, commençant par ID3, et contient des informations telles que l'auteur, le compositeur, l'album, etc. La longueur n'est pas fixe, étendant la quantité d'informations de ID3V1, et est facultative
b) Une série d'images de données audio, au milieu du fichier, le nombre est déterminé par la taille du fichier et la longueur de l'image ; chaque image commence par FFF, la longueur peut ne pas être fixe, ou peut être être fixe, déterminé par le débit ; chaque trame est divisée en un en-tête de trame et il y a deux parties de l'entité de données qui enregistrent le débit binaire, le taux d'échantillonnage, la version et d'autres informations du mp3, et chaque trame est indépendante ; les uns des autres.
c). ID3V1 se trouve à la fin du fichier, commençant par TAG, et contient des informations telles que l'auteur, le compositeur, l'album, etc. La longueur est de 128 octets et est facultative.
ID3V2
contient des informations telles que l'auteur, le compositeur, l'album, etc. La longueur n'est pas fixe, augmentant la quantité d'informations d'ID3V1.
Cadre
.
.
.
Cadre
Une série de cadres dont le nombre est déterminé par le fichier Déterminé par la taille et la longueur de la trame
La longueur de chaque FRAME peut ne pas être fixe, ou peut être fixe, et est déterminée par le débit
Chaque FRAME est divisée en deux parties : en-tête de trame et entité de données
L'en-tête de trame enregistre le débit binaire, le taux d'échantillonnage, la version et d'autres informations du mp3, et chaque image est indépendante les unes des autres.
ID3V1
contient l'auteur, le compositeur, l'album et d'autres informations, et mesure 128 octets.
En d'autres termes, sur la base des informations de début dans les trois structures TAG_V2 (ID3V2), données audio et TAG_V1 (ID3V1), vous pouvez déterminer s'il s'agit d'un fichier encodé en mp3.
2.code python
# coding: utf-8 import os #mp3filePath是否是mp3格式的 def isMp3Format(mp3filePath): #读取文件内字符串 f = open(mp3filePath, "r"); fileStr = f.read(); f.close(); head3Str = fileStr[:3]; #判断开头是不是ID3 if head3Str == "ID3": return True; #判断结尾有没有TAG last32Str = fileStr[-32:]; if last32Str[:3] == "TAG": return True; #判断第一帧是不是FFF开头, 转成数字 # fixme 应该循环遍历每个帧头,这样才能100%判断是不是mp3 ascii = ord(fileStr[:1]); if ascii == 255: return True; return False; #遍历folderPath看看是不是都是mp3格式的, #是就true,不是就是false, 并返回是mp3的list,不是MP3的list def isMp3FolderTraverse(folderPath): mp3List = []; notMp3List = []; isAllMpFormat = True; for dirpath, dirnames, filenames in os.walk(folderPath): for filename in filenames: path = dirpath + os.sep + filename; isMp3 = isMp3Format(path); #判断是不是mp3结尾的 并且 是mp3格式的 if isMp3 == False and str.endswith(path, ".mp3") == True: # print("--warning: file " + path + " is not mp3 format!--"); notMp3List.append(path); isAllMpFormat = False; else: mp3List.append(path); return isAllMpFormat, mp3List, notMp3List; if __name__ == '__main__': isMp3Format("s_com_click1.mp3"); isAllMp3, mp3List, notMp3List = isMp3FolderTraverse("sound"); print isAllMp3; print mp3List; print notMp3List;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

HaDIDB: Une base de données Python évolutive de haut niveau légère HaDIDB (HaDIDB) est une base de données légère écrite en Python, avec un niveau élevé d'évolutivité. Installez HaDIDB à l'aide de l'installation PIP: PiPinStallHaDIDB User Management Créer un utilisateur: CreateUser () pour créer un nouvel utilisateur. La méthode Authentication () authentifie l'identité de l'utilisateur. FromHadidb.OperationMportUserUser_OBJ = User ("Admin", "Admin") User_OBJ.

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

MySQL peut s'exécuter sans connexions réseau pour le stockage et la gestion des données de base. Cependant, la connexion réseau est requise pour l'interaction avec d'autres systèmes, l'accès à distance ou l'utilisation de fonctionnalités avancées telles que la réplication et le clustering. De plus, les mesures de sécurité (telles que les pare-feu), l'optimisation des performances (choisissez la bonne connexion réseau) et la sauvegarde des données sont essentielles pour se connecter à Internet.

MySQL Workbench peut se connecter à MARIADB, à condition que la configuration soit correcte. Sélectionnez d'abord "MariADB" comme type de connecteur. Dans la configuration de la connexion, définissez correctement l'hôte, le port, l'utilisateur, le mot de passe et la base de données. Lorsque vous testez la connexion, vérifiez que le service MARIADB est démarré, si le nom d'utilisateur et le mot de passe sont corrects, si le numéro de port est correct, si le pare-feu autorise les connexions et si la base de données existe. Dans une utilisation avancée, utilisez la technologie de mise en commun des connexions pour optimiser les performances. Les erreurs courantes incluent des autorisations insuffisantes, des problèmes de connexion réseau, etc. Lors des erreurs de débogage, analysez soigneusement les informations d'erreur et utilisez des outils de débogage. L'optimisation de la configuration du réseau peut améliorer les performances

Pour les environnements de production, un serveur est généralement nécessaire pour exécuter MySQL, pour des raisons, notamment les performances, la fiabilité, la sécurité et l'évolutivité. Les serveurs ont généralement un matériel plus puissant, des configurations redondantes et des mesures de sécurité plus strictes. Pour les petites applications à faible charge, MySQL peut être exécutée sur des machines locales, mais la consommation de ressources, les risques de sécurité et les coûts de maintenance doivent être soigneusement pris en considération. Pour une plus grande fiabilité et sécurité, MySQL doit être déployé sur le cloud ou d'autres serveurs. Le choix de la configuration du serveur approprié nécessite une évaluation en fonction de la charge d'application et du volume de données.
