----1. introduction
----Le système de surveillance et de surveillance numérique de la banque est actuellement un projet de développement avec des perspectives de marché et d'application relativement prometteuses. Les systèmes de surveillance et de surveillance développés sur la base de différentes cartes de capture MPEG et périphériques matériels ont des technologies relativement matures au pays et à l'étranger. Afin de répondre aux exigences spécifiques de surveillance en temps réel, d'acquisition et de compression en temps réel, de lecture à tout moment et de transmission de flux de données compressés, une carte d'acquisition de données vidéo pour la transmission multipoint vidéo/audio sur réseau (diffusion vidéo) est utilisée. dans ce système pour fournir une collection AVI (encodage de compression MPEGIFrame), une collection MPG. L'extrémité émettrice diffuse le flux MPEG, l'extrémité réceptrice accepte le flux MPEG et l'affiche, et la transmission réseau utilise WinSock2ip-Multicast. Si cette machine est l'expéditeur, n'importe quel autre ordinateur du réseau peut être le destinataire. Tant que différents numéros de port sont spécifiés, plusieurs PC peuvent être utilisés comme expéditeurs en même temps, et plusieurs PC peuvent être utilisés comme récepteurs pour recevoir des données vidéo de différents expéditeurs. Les données peuvent également être enregistrées localement sous forme de fichiers MPEG lors de la transmission des données. . Cet article présente principalement quelques techniques de programmation pour développer la lecture de données audio/vidéo capturées par des cartes MPEG dans un environnement VB.
----2. Introduction au contenu et au développement de MPEG
----L'information multimédia comprend principalement trois catégories : les images, les sons et le texte. Parmi eux, la quantité d'informations dans les signaux vidéo, audio et autres est très importante, et les exigences d'expression, d'entrée et de sortie de ces informations sont également différentes. Il est très important d'exprimer efficacement et de traiter correctement ces données, ce qui fait de la technologie de compression d'informations multimédia l'une des technologies clés dans le domaine des communications multimédia. MPEG (Moving Picture Expert Group), créé conjointement par l'ISO et la CEI en 1988, s'engage en faveur de la normalisation mondiale des images animées et du codage audio qui les accompagne. Il comprend les systèmes MPEG : vidéo MPEG, audio MPEG. Afin de promouvoir la transition de la société de l'ère de l'information textuelle à l'ère de l'information multimédia, l'ISO a lancé le MPEG-7 après les MPEG-1, 2 et 4.
----MPEG-1 a été formulé en 1993 (ISO/IEC11172). Il s'agit d'une norme internationale pour les images animées sur supports de stockage numériques et le codage audio qui les accompagne pour des débits de transmission de données inférieurs à 1,5 Mbit/s. Le taux de compression vidéo est de 26:1. MPEG-2 a été formulé en 1995 (ISO/IEC13818). Il s'agit d'une norme internationale pour les images animées de 3 à 10 Mbit/s et le codage audio associé recommandé par le CCIR601 pour la qualité d'image DVB, HDTV et DVD. Différent de la précédente norme MPEG basée sur la théorie du codage de forme d'onde basée sur la théorie de l'information et ciblant le codage vidéo et audio à un certain débit binaire, la norme internationale MPEG-4, annoncée en novembre 1998, accorde davantage d'attention à l'interactivité et à la flexibilité des systèmes multimédia. . Il introduit des objets AV (Audio/VisualObjects), rendant possibles des opérations plus interactives. En octobre 1998, l'Organisation internationale de normalisation a lancé le concept MPEG-7, qui devrait être finalisé et annoncé début 2001. Son nom officiel est « MultimediaContentDescriptionInterface ». Il propose un schéma de description standardisé adapté à divers contenus multimédias dans la vie réelle, basé sur l'extraction de diverses caractéristiques de l'objet à décrire, pour permettre aux utilisateurs de récupérer rapidement et efficacement les matériaux multimédia requis.
----3. VB développe la technologie de lecture de flux de données MPEG--Audio/Vidéo
----3.1. Inconvénients du contrôle MultimediaMCI et du contrôle MediaPlayer en VB pour la lecture du flux de données MPEG
----Le contrôle multimédia couramment utilisé dans VB est le contrôle MultimediaMCI, qui gère l'enregistrement et la lecture des fichiers multimédia sur le périphérique Media Control Interface (MCI). Il est utilisé pour émettre des commandes MCI vers des appareils tels que des cartes son, des séquenceurs MIDI, des lecteurs de CD-ROM, des lecteurs de CD vidéo et des magnétophones et lecteurs vidéo. Il prend également en charge la lecture de fichiers vidéo Windows (*.avi). En utilisant le contrôle MultimediaMCI pour lire le flux de données MPEG collecté, la vitesse de lecture est plus rapide que l'affichage de surveillance en temps réel. Au cours du test, il a également été constaté que lorsque la longueur du fichier MPEG est raccourcie à 500k-600k, l'image diffusée ne peut pas. être vu. Passez à l'utilisation du contrôle MediaPlayer dans VB et les lacunes mentionnées ci-dessus existent toujours. La raison de l'analyse est la suivante : parce que la longueur du fichier MPEG est trop courte, l'appareil de lecture a été fermé dès sa mise sous tension, ce qui ne peut pas être contrôlé par programmation. De plus, pour certaines informations sur les flux de données compressés dont les utilisateurs ont besoin et certaines fonctions qu'ils souhaitent implémenter, telles que la taille des lignes graphiques, CopmressionRate, l'affichage du zoom graphique, la beauté de l'interface, etc., les commandes mentionnées ci-dessus facilitent le développement du programme. les interfaces de haut niveau utilisées par le personnel ne sont plus applicables. Il est naturellement difficile de mettre en œuvre certaines opérations sur la couche inférieure sur cette base. Lors de la résolution des problèmes pratiques mentionnés ci-dessus, nous avons appelé la bibliothèque de liens dynamiques Quatrz.dll.
----3.2. Bibliothèque de liens dynamiques Quatrz.dll qui fournit des opérations pratiques de bas niveau et des interfaces de haut niveau pour les flux MPEG
----Vous pouvez trouver une bibliothèque de liens dynamiques Quatrz.dll sous Windows/Système. Il s'agit d'une bibliothèque de types sous Windows utilisée pour contrôler la lecture d'images animées. Il suffit de l'ajouter dans le menu "Référence" de VB Ready to use. Cette bibliothèque définit IBasicAudio, IBasicVideo et IBasicVideo2, IMediaEvent, IMediaEventEx, IMediaPosition et d'autres classes, qui peuvent être facilement ajoutées au Cl du contrôle CommandButton. Ajoutez du code pour définir et lire les valeurs associées de l'audio dans des événements tels que ick, définir ou lire les paramètres associés des sources d'entrée et de sortie vidéo, appeler directement les fonctions sans paramètre Run, Pause, Stop, etc. pour contrôler le processus d'événement de lecture, et utilisez la classe IMediaPosition pour contrôler une lecture spécifique. Fonctionnez en détail. Aucun contrôle spécial n'est requis pour l'affichage de la sortie des flux de données MPEG compressés. Dans Visual Basic, vous pouvez sélectionner un formulaire comme conteneur ou le contrôle PictureBox sur le formulaire comme conteneur. Par souci de beauté de l'interface et de commodité pour les utilisateurs de récupérer des informations pertinentes, nous utilisons le contrôle PictureBox comme conteneur pour afficher le flux de données MPEG lu.
----3.3. Afficher le flux de données MPEG à l'aide du contrôle PictureBox
----Le contrôle PictureBox dans VisualBasic peut afficher des graphiques à partir de bitmaps, d'icônes ou de métafichiers, ainsi que de métafichiers améliorés, de fichiers JPEG ou GIF. Vous pouvez également manipuler les propriétés et méthodes graphiques dans le code pour créer des animations ou effectuer des simulations. Placez un picTV de contrôle PictureBox sur le formulaire. En fonction de l'appel de la bibliothèque de liens dynamiques Quatrz.dll sous Windows/Système, définissez un objet objet global pMC, laissez pMC pointer vers une nouvelle instance de FilgraphManager et ouvrez le M pour la lecture. Fichier PEG ; puis définissez un objet local pVW en tant que nouvelle instance de IVideoWindow et ouvrez une fenêtre pour lire la vidéo ; définissez pVW=pMC, attribuez une valeur à la référence d'objet pVW et attribuez la valeur d'attribut hWnd de picTV au propriétaire de pVW, afin que picTV puisse être affiché. Le flux de données MPEG est reçu. Les opérations spécifiques sont les suivantes :
SetpMC=NouveauFilgraphManager
pMC.RenderFile"C:/Bank/Montior/Example.MPG"
SetpVW=pMC
pVW.WindowStyle=CLng(&H6000000)
pVW.Gauche=0
pVW.Top=0
AncienneLargeur=pVW.largeur
AncienneHauteur=pVW.Hauteur
picTV.width=pVW.width*15
picTV.Hauteur=pVW.Hauteur*15
pVW.Owner=picTV.hWnd
----Vous pouvez définir une fonction distincte pour inclure ces codes, ou vous pouvez la placer dans l'événement Click du contrôle CommandButton.
----3.4. Affichage zoom du flux de données MPEG
----L'agrandissement ou la réduction des images MPEG est une méthode de traitement d'affichage d'image couramment utilisée dans divers logiciels de lecture multimédia. Dans Visual Basic, vous pouvez utiliser le contrôle Image pour mettre à l'échelle des images statiques. Définissez la propriété Stretch du contrôle sur True et l'image chargée modifiera la proportion pour s'adapter à la plage du contrôle Image. devient la hauteur et la hauteur du contrôle Image. La taille de la valeur de l'attribut Largeur change. À mesure que la taille de la commande change, l'espacement des points affichés ne peut pas être modifié, ce qui fait que les pixels des points d'affichage ne correspondent pas complètement à l'image et que la qualité d'affichage se détériore considérablement. Seul le contrôle Image peut redimensionner l’image. Si le contrôle PictureBox n’est pas suffisamment grand pour afficher l’image entière, l’image sera recadrée pour s’adapter à la taille du contrôle. Si vous souhaitez utiliser le contrôle PictureBox pour mettre à l'échelle l'image MPEG de sortie, vous devez modifier le rapport de sortie du flux de données MPEG et ajuster la taille du contrôle PictureBox pour l'adapter à l'image MPEG de sortie. En fait, cela a déjà été fait dans la section 3 ci-dessus pour afficher l'image MPEG de sortie. Il utilise simplement les valeurs OldWidth et OldHeight lues de l'image MPEG. Voici un exemple de sortie de l'image MPEG à la moitié de la taille d'origine.
pVW.width=AncienneLargeur/2
pVW.Hauteur=AncienneHauteur/2
picTV.Gauche=135
picTV.Top=135
picTV.width=pVW.width*15
picTV.Hauteur=pVW.Hauteur*15
pVW.Owner=picTV.hWnd
----Lorsque vous agrandissez ou réduisez la taille des images MPEG, veillez à maintenir le rapport largeur/hauteur cohérent pour éviter la déformation de l'image de sortie.
----3.5. Faites glisser la souris pour lire le flux de données MPEG
----Utiliser la souris pour faire glisser la barre de défilement afin de lire le flux de données MPEG à volonté est une technologie courante utilisée par les lecteurs multimédia sous Windows pour lire des VCD. Le contrôle Slider dans VB est une fenêtre contenant un curseur et des graduations facultatives. Vous pouvez faire glisser le curseur, cliquer de chaque côté du curseur avec la souris ou utiliser le clavier pour déplacer le curseur. Le contrôle Slider est utile lors de la sélection de valeurs discrètes ou d'un ensemble de valeurs continues dans une plage. En déplaçant le curseur vers la coche, le flux de données MPEG peut être positionné et lu. Placez un contrôle Slider Slider1 sur le formulaire, définissez la taille de pas maximale pour le mouvement du curseur LargeChange=5, la taille de pas minimale SmallChange=1 et la plage de mouvement maximale Max=50.
PRivateSubSlider1_Scroll()
'
DimpMPAsIMediaPosition
DimvAsDouble
IfNotbOpenThenExitSub
bRecherche=Vrai
pMC.Pause
SetpMP=pMC
v=Slider1.Value-Slider1.Min
v=v/Slider1.Max*pMP.Duration
pMP.CurrentPosition=v
SetpMP=Rien
pMC.Exécuter
'
FinSub
----3.6. Acquisition du temps d'acquisition du flux de données MPEG
----VisualBasic fournit une fonction FileDateTime qui peut être utilisée pour obtenir la date et l'heure de création ou de mise à jour du fichier. Définissez un objet local pMP en tant que nouvelle instance de IMediaPosition, définissez pMP=pMC et attribuez une valeur à la référence d'objet pMP ; puis définissez deux variables de type double curpos et length, attribuez pMP.CurrentPosition à curpos et obtenez le relatif actuel. position du flux de données MPEG, attribuez pMP.Duration à la longueur pour obtenir la valeur de durée du flux de données MPEG, vous pouvez obtenir le temps de collecte relatif du flux de données MPEG. Selon les caractéristiques de création du fichier d'acquisition MPEG, l'heure d'acquisition du flux de données MPEG peut être obtenue en ajoutant ou en soustrayant deux dates et heures.
----Pendant tout le processus de lecture MPEG, il est nécessaire d'afficher l'heure de collecte du flux de données MPEG en temps réel. Vous pouvez définir une fonction pour obtenir l'heure de collecte et utiliser l'événement Timer du contrôle Timer pour le piloter. . En déclenchant l'événement Timer, le contrôle Timer peut exécuter régulièrement une fonction à intervalles pour obtenir l'heure de collecte du flux de données MPEG.
----4. Conclusion
----Il est d'une grande importance d'utiliser une technologie de compression d'image mature dans le domaine de la surveillance TV. Par exemple : Dans le système de surveillance d'une banque, en raison de la particularité de l'identité du client (banque), lors de l'enquête et du traitement d'incidents qui perturbent le fonctionnement normal de la banque, comme l'usurpation d'identité sur les dépôts d'autrui, le vol bancaire ou vol, etc., les données collectées seront compressées. Le flux de données constitue des indices et des preuves très importants pour le traitement des cas. Dans ce système, non seulement l'image de surveillance doit être claire et les données collectées redondantes, mais la technologie de lecture du flux de données MPEG est également très importante. Cet article présente l'utilisation des propres conditions et contrôles originaux de Visual Basic pour développer la technologie de lecture des données audio/vidéo collectées par les cartes MPEG dans l'environnement Windows. Tirant pleinement parti des conditions supérieures de VB et en le combinant de manière flexible avec diverses commandes existantes dans VB, le lecteur multimédia MPEG développé possède des fonctions complètes. L'image MPEG de lecture peut reproduire clairement la scène pendant la collecte de données, permettant ainsi d'« entendre le son », voir. la personne » et être capable de déterminer avec précision l’heure et le moment où l’événement s’est produit. Les flux de données audio/vidéo qui n’enregistrent qu’une seule image peuvent également être lus de la même manière. La technologie ci-dessus a été utilisée dans des systèmes de surveillance avec de bons résultats. ->