----1. introdução
----O sistema de vigilância e monitoramento digital do banco é atualmente um projeto de desenvolvimento com perspectivas de mercado e aplicação relativamente promissoras. Os sistemas de vigilância e vigilância desenvolvidos com base em diferentes placas de captura MPEG e periféricos de hardware possuem tecnologias relativamente maduras no país e no exterior. A fim de atender aos requisitos específicos de monitoramento em tempo real, aquisição e compactação em tempo real, reprodução a qualquer momento e disseminação de fluxos de dados compactados, uma placa de aquisição de dados de vídeo para transmissão multiponto de vídeo/áudio em rede (transmissão de vídeo) é usado neste sistema para fornecer coleção AVI (codificação de compressão MPEGIFrame), coleção MPG. A extremidade emissora transmite o fluxo MPEG, a extremidade receptora aceita o fluxo MPEG e o exibe, e a transmissão da rede usa WinSock2ip-Multicast. Se esta máquina for o remetente, qualquer outro PC na rede poderá ser o receptor. Contanto que você especifique números de porta diferentes, vários PCs podem ser usados como remetentes ao mesmo tempo e vários PCs podem ser usados como receptores para receber dados de vídeo de diferentes remetentes. Você também pode salvar os dados como arquivos MPEG localmente durante a transmissão de dados. . Este artigo apresenta principalmente algumas técnicas de programação para desenvolver a reprodução de dados de áudio/vídeo capturados por cartões MPEG em um ambiente VB.
----2. Introdução ao conteúdo e desenvolvimento do MPEG
----As informações multimídia incluem principalmente três categorias: imagens, sons e texto. Entre eles, a quantidade de informações em sinais de vídeo, áudio e outros sinais é muito grande, e os requisitos de expressão, entrada e saída dessas informações também são diferentes. É muito importante expressar eficazmente e processar adequadamente estes dados, o que torna a tecnologia de compressão de informação multimédia uma das principais tecnologias no domínio das comunicações multimédia. O MPEG (Moving Picture Expert Group), estabelecido conjuntamente pela ISO e IEC em 1988, está comprometido com a padronização global de imagens em movimento e a codificação de áudio que as acompanha. Inclui sistemas MPEG: vídeo MPEG, áudio MPEG. A fim de promover a transição da sociedade da era da informação textual para a era da informação multimídia, a ISO lançou o MPEG-7 após o MPEG-1, 2 e 4.
----MPEG-1 foi formulado em 1993 (ISO/IEC11172). É um padrão internacional para mídia de armazenamento digital de imagens em movimento e sua codificação de áudio com uma taxa de transmissão de dados abaixo de 1,5 Mbit/s. A taxa de compressão de vídeo é de 26:1. MPEG-2 foi formulado em 1995 (ISO/IEC13818). É um padrão internacional para imagem em movimento de 3-10 Mbit/s e codificação de áudio recomendada pelo CCIR601 para qualidade de imagem DVB, HDTV e DVD. Diferente do padrão MPEG anterior baseado na teoria da codificação de formas de onda baseada na teoria da informação e visando a codificação de vídeo e áudio em uma determinada taxa de bits, o padrão internacional MPEG-4, anunciado em novembro de 1998, dá mais atenção à interatividade e flexibilidade dos sistemas multimídia. . Ele introduz objetos AV (Audio/VisualObjects), possibilitando operações mais interativas. Em outubro de 1998, a Organização Internacional de Padronização lançou o conceito MPEG-7, que deverá ser finalizado e anunciado no início de 2001. Seu nome oficial é "MultimediaContentDescriptionInterface". Propõe um esquema de descrição padronizado adequado para diversos conteúdos multimídia da vida real, baseado na extração de diversas características do objeto a ser descrito, para facilitar às pessoas a recuperação rápida e eficaz dos materiais multimídia necessários.
----3. VB desenvolve MPEG - tecnologia de reprodução de fluxo de dados de áudio/vídeo
----3.1. Desvantagens do controle MultimediaMCI e controle MediaPlayer em VB para reproduzir fluxo de dados MPEG
----O controle multimídia comumente usado em VB é o controle MultimediaMCI, que gerencia a gravação e reprodução de arquivos multimídia no dispositivo Media Control Interface (MCI). Ele é usado para emitir comandos MCI para dispositivos como placas de som, sequenciadores MIDI, unidades de CD-ROM, reprodutores de CD de vídeo e gravadores e reprodutores de fita de vídeo. Ele também suporta a reprodução de arquivos de vídeo do Windows (*.avi). Usando o controle MultimediaMCI para reproduzir o fluxo de dados MPEG coletado, a velocidade de reprodução é mais rápida do que a exibição de monitoramento em tempo real. Durante o teste, também foi descoberto que quando o comprimento do arquivo MPEG é reduzido para 500k-600k, a imagem transmitida não pode. ser visto. Mude para o controle MediaPlayer em VB e as deficiências mencionadas acima ainda existirão. O motivo da análise é: como o comprimento do arquivo MPEG é muito curto, o dispositivo de reprodução foi fechado assim que foi ligado, o que não pode ser controlado por programação. Além disso, para algumas informações sobre fluxos de dados compactados que os usuários necessitam e algumas funções que desejam implementar, como tamanho de linha, CopmressionRate, exibição de zoom gráfico, beleza da interface, etc., os controles fornecidos acima são fornecidos para facilitar o desenvolvimento do programa. As interfaces de alto nível utilizadas pelo pessoal não são mais aplicáveis. É compreensivelmente difícil implementar algumas operações na camada inferior nesta base. Ao resolver os problemas práticos mencionados acima, chamamos a biblioteca de vínculo dinâmico Quatrz.dll.
----3.2. Biblioteca de vínculo dinâmico Quatrz.dll que fornece operações convenientes de baixo nível e interfaces de alto nível para fluxos MPEG
----Você pode encontrar uma biblioteca de vínculo dinâmico Quatrz.dll em Windows/System. Esta é uma biblioteca de tipos no Windows usada para controlar a reprodução de imagens em movimento. Basta adicioná-la no menu "Referência" do VB. Esta biblioteca define IBasicAudio, IBasicVideo e IBasicVideo2, IMediaEvent, IMediaEventEx, IMediaPosition e outras classes, que podem ser facilmente adicionadas ao Cl do controle CommandButton. Adicione código para definir e ler valores relacionados ao áudio em ick e outros eventos, definir ou ler parâmetros relacionados de fontes de entrada e saída de vídeo, chamar diretamente funções sem parâmetros Executar, Pausar, Parar, etc. a classe IMediaPosition para controlar a reprodução específica Opera em detalhes. Nenhum controle especial é necessário para a exibição de saída de fluxos de dados MPEG compactados. No Visual Basic, você pode selecionar um formulário como contêiner ou o controle PictureBox no formulário como contêiner. Em prol da beleza da interface e da conveniência para os usuários recuperarem informações relevantes, usamos o controle PictureBox como um contêiner para exibir o fluxo de dados MPEG reproduzido.
----3.3. Use o controle PictureBox para exibir o fluxo de dados MPEG
----O controle PictureBox no VisualBasic pode exibir gráficos de bitmaps, ícones ou metarquivos, bem como de metarquivos aprimorados, arquivos JPEG ou GIF. Você também pode manipular propriedades e métodos gráficos no código para criar animações ou realizar simulações. Coloque um controle PictureBox picTV no formulário Com base na chamada da biblioteca de vínculo dinâmico Quatrz.dll no Windows/System, defina um objeto Object global pMC, deixe o pMC apontar para uma nova instância do FilgraphManager e abra o M para reprodução. arquivo PEG; em seguida, defina um objeto local pVW como uma nova instância de IVideoWindow e abra uma janela para reproduzir o vídeo, defina pVW = pMC, atribua um valor à referência do objeto pVW e atribua o valor do atributo hWnd de picTV ao proprietário de pVW, para que o picTV possa ser exibido. O fluxo de dados MPEG é recebido. As operações específicas são as seguintes:
SetpMC = NovoFilgraphManager
pMC.RenderFile"C:/Banco/Montior/Example.MPG"
DefinirpVW=pMC
pVW.WindowStyle=CLng(&H6000000)
pVW.Esquerda=0
pVW.Top=0
OldWidth=pVW.largura
AlturaVelha=pVW.Altura
picTV.largura=pVW.largura*15
picTV.Altura=pVW.Altura*15
pVW.Proprietário=picTV.hWnd
----Você pode definir uma função separada para incluir esses códigos ou pode colocá-la no evento Click do controle CommandButton.
----3.4. Exibição de zoom do fluxo de dados MPEG
----Ampliar ou reduzir imagens MPEG é um método de processamento de exibição de imagem comumente usado em vários softwares de reprodução multimídia. No Visual Basic, você pode usar o controle Image para dimensionar imagens estáticas. Defina a propriedade Stretch do controle como True e a imagem carregada alterará sua proporção para se adaptar ao intervalo do controle Image. torna-se a Altura e a Altura do controle Imagem. O tamanho do valor do atributo Largura é alterado. À medida que o tamanho do controle muda, a distância do ponto exibido não pode ser alterada, resultando em pixels dos pontos de exibição não correspondendo completamente um a um com a imagem e a qualidade de exibição sendo significativamente deteriorada. Somente o controle Image pode dimensionar a imagem. Se o controle PictureBox não for grande o suficiente para exibir a imagem inteira, a imagem será cortada para caber no tamanho do controle. Se desejar usar o controle PictureBox para dimensionar a imagem MPEG de saída, você deverá alterar a proporção de saída do fluxo de dados MPEG e ajustar o tamanho do controle PictureBox para se adaptar à imagem MPEG de saída. Na verdade, isso já foi feito na seção 3 acima para exibir a imagem MPEG de saída. Ele apenas usa OldWidth e OldHeight lidos da imagem MPEG. Aqui está um exemplo de saída da imagem MPEG com metade do tamanho original.
pVW.width=Largura Antiga/2
pVW.Height = Altura Antiga/2
picTV.Esquerda=135
picTV.Top=135
picTV.largura=pVW.largura*15
picTV.Altura=pVW.Altura*15
pVW.Proprietário=picTV.hWnd
----Ao ampliar ou reduzir o tamanho das imagens MPEG, preste atenção em manter a proporção de largura e altura consistente para evitar a deformação da imagem de saída.
----3,5. Arraste o mouse para reproduzir o fluxo de dados MPEG
---- Usar o mouse para arrastar a barra de rolagem para reproduzir o fluxo de dados MPEG à vontade é uma tecnologia comum para reprodutores multimídia no Windows reproduzirem VCD. O controle Slider em VB é uma janela que contém um controle deslizante e marcas de seleção opcionais. Você pode arrastar o controle deslizante, clicar em qualquer lado do controle deslizante com o mouse ou usar o teclado para movê-lo. O controle Slider é útil ao selecionar valores discretos ou um conjunto de valores contínuos dentro de um intervalo. Ao mover o controle deslizante até a marca de seleção, o fluxo de dados MPEG pode ser posicionado e reproduzido. Coloque um controle Slider Slider1 no formulário, defina o tamanho máximo do passo para o movimento do cursor LargeChange=5, o tamanho mínimo do passo SmallChange=1 e a faixa máxima de movimento Max=50.
PRivateSubSlider1_Scroll()
'
DimpMPasIMediaPosição
DimvAsDouble
IfNotbOpenThenExitSub
bSeeking = Verdadeiro
pMC.Pausa
SetpMP=pMC
v=Slider1.Value-Slider1.Min
v=v/Slider1.Max*pMP.Duration
pMP.CurrentPosition=v
SetpMP=Nada
pMC.Run
'
Fim Sub
----3.6. Aquisição do tempo de aquisição do fluxo de dados MPEG
----VisualBasic fornece uma função FileDateTime que pode ser usada para obter a data e hora da criação ou atualização do arquivo. Defina um objeto local pMP como uma nova instância de IMediaPosition, defina pMP = pMC e atribua um valor à referência do objeto pMP, em seguida, defina duas variáveis de tipo duplo, curpos e comprimento, atribua pMP.CurrentPosition a curpos e obtenha o relativo atual; posição do fluxo de dados MPEG, atribua pMP.Duration ao comprimento para obter o valor do comprimento de tempo do fluxo de dados MPEG, você pode obter o tempo de coleta relativo do fluxo de dados MPEG; De acordo com as características da criação do arquivo de aquisição MPEG, o tempo de aquisição do fluxo de dados MPEG pode ser obtido adicionando ou subtraindo duas datas e horas.
----Durante todo o processo de reprodução MPEG, é necessário exibir o tempo de coleta do fluxo de dados MPEG em tempo real. Você pode definir uma função para obter o tempo de coleta e usar o evento Timer do controle Timer para acioná-lo. . Ao acionar o evento Timer, o controle Timer pode executar regularmente uma função em intervalos para obter o tempo de coleta do fluxo de dados MPEG.
----4. Conclusão
----É de grande importância usar tecnologia madura de compressão de imagem no campo da vigilância de TV. Por exemplo: No sistema de vigilância de um banco, devido à particularidade da identidade do cliente (banco), durante a investigação e processamento de incidentes que perturbem o normal funcionamento do banco, como falsificação de depósitos de terceiros, roubo bancário ou roubo, etc., os dados coletados serão compactados. O fluxo de dados é uma pista e evidência muito importante para o tratamento dos casos. Neste sistema, não apenas a tela de monitoramento deve ser clara e os dados coletados redundantes, mas também a tecnologia de reprodução de fluxo de dados MPEG é muito importante. Este artigo apresenta o uso de condições e controles originais do próprio Visual Basic para desenvolver a tecnologia de reprodução de dados de áudio/vídeo coletados por placas MPEG no ambiente Windows. Aproveitando ao máximo as condições superiores do VB e combinando-o de forma flexível com vários controles existentes no VB, o reprodutor de mídia MPEG desenvolvido possui funções completas. A reprodução da imagem MPEG pode reproduzir claramente a cena durante a coleta de dados, conseguindo “ouvir o som”, veja. a pessoa" e ser capaz de determinar com precisão a hora e o momento em que o evento ocorreu. Os fluxos de dados de áudio/vídeo que gravam apenas um único quadro também podem ser reproduzidos da mesma maneira. A tecnologia acima tem sido utilizada em sistemas de monitoramento com bons resultados. ->