----1. 소개
----은행의 디지털 감시 및 모니터링 시스템은 현재 상대적으로 유망한 시장 및 응용 전망을 갖춘 개발 프로젝트입니다. 다양한 MPEG 캡처 카드 및 하드웨어 주변 장치를 기반으로 개발된 감시 및 감시 시스템은 국내외에서 비교적 성숙한 기술을 보유하고 있습니다. 실시간 모니터링, 실시간 획득 및 압축, 언제든지 재생, 압축된 데이터 스트림 전송 등의 특정 요구 사항을 충족하기 위해 네트워크 비디오/오디오 다지점 전송(비디오 방송)용 비디오 데이터 획득 카드가 사용됩니다. 본 시스템에서는 AVI(MPEGIFrame 압축 인코딩) 컬렉션, MPG 컬렉션을 제공합니다. 송신측에서는 MPEG 스트림을 브로드캐스트하고, 수신측에서는 MPEG 스트림을 받아 표시하며, 네트워크 전송에서는 WinSock2ip-Multicast를 사용합니다. 이 기기가 발신자라면 네트워크의 다른 PC가 수신자가 될 수 있습니다. 서로 다른 포트 번호를 지정하면 여러 대의 PC를 동시에 발신자로 사용할 수 있으며, 여러 대의 PC를 수신자로 사용하여 서로 다른 발신자로부터 비디오 데이터를 수신할 수도 있으며, 데이터를 전송하는 동안 데이터를 MPEG 파일로 로컬로 저장할 수도 있습니다. . 이 기사에서는 주로 VB 환경에서 MPEG 카드로 캡처한 오디오/비디오 데이터 재생을 개발하기 위한 몇 가지 프로그래밍 기술을 소개합니다.
----2. MPEG 콘텐츠 소개 및 개발
----멀티미디어 정보는 주로 이미지, 사운드, 텍스트의 세 가지 범주로 구성됩니다. 그 중 비디오, 오디오 및 기타 신호에 포함된 정보의 양은 매우 크며 이 정보의 표현, 입력 및 출력 요구 사항도 다릅니다. 이러한 데이터를 효과적으로 표현하고 적절하게 처리하는 것이 매우 중요하므로 멀티미디어 정보 압축 기술은 멀티미디어 통신 분야의 핵심 기술 중 하나입니다. 1988년 ISO와 IEC가 공동으로 설립한 MPEG(Moving Picture Expert Group)는 동영상 및 그에 수반되는 오디오 코딩의 글로벌 표준화를 위해 노력하고 있습니다. 여기에는 MPEG 시스템(MPEG 비디오, MPEG 오디오)이 포함됩니다. ISO는 텍스트 정보 시대에서 멀티미디어 정보 시대로의 사회 전환을 촉진하기 위해 MPEG-1, 2, 4에 이어 MPEG-7을 출시했습니다.
----MPEG-1은 1993년에 제정되었습니다(ISO/IEC11172). 이는 1.5Mbit/s 미만의 데이터 전송 속도를 위한 디지털 저장 매체 동영상 및 그에 수반되는 오디오 코딩에 대한 국제 표준입니다. 비디오 압축률은 26:1입니다. MPEG-2는 1995년에 제정되었습니다(ISO/IEC13818). 이는 3-10Mbit/s 동영상 및 관련 오디오 코딩에 대한 국제 표준으로, 화질 DVB, HDTV 및 DVD에 대해 CCIR601에서 권장됩니다. 1998년 11월에 발표된 국제 표준 MPEG-4는 정보 이론을 바탕으로 비디오 및 오디오 코딩을 특정 비트 전송률로 목표로 하는 파형 코딩 이론을 기반으로 한 이전 MPEG 표준과 달리 멀티미디어 시스템의 상호 작용성과 유연성에 더 많은 관심을 두고 있습니다. . AV 개체(Audio/VisualObjects)를 도입하여 더욱 대화형 작업이 가능해졌습니다. 1998년 10월 국제표준화기구(International Organization for Standardization)는 MPEG-7 개념을 발표했는데, 이는 2001년 초에 최종 확정되어 발표될 예정입니다. 공식 명칭은 "MultimediaContentDescriptionInterface"입니다. 기술 대상의 다양한 특성 추출을 기반으로 실생활의 다양한 멀티미디어 콘텐츠에 적합한 표준화된 기술 방식을 제안하여 필요한 멀티미디어 자료를 빠르고 효과적으로 검색할 수 있도록 한다.
----3. VB는 MPEG-오디오/비디오 데이터 스트림 재생 기술을 개발합니다.
----3.1. MPEG 데이터 스트림 재생을 위한 VB의 MultimediaMCI 컨트롤 및 MediaPlayer 컨트롤의 단점
----VB에서 일반적으로 사용되는 멀티미디어 컨트롤은 MCI(Media Control Interface) 장치에서 멀티미디어 파일의 녹음 및 재생을 관리하는 MultimediaMCI 컨트롤입니다. 사운드 카드, MIDI 시퀀서, CD-ROM 드라이브, 비디오 CD 플레이어, 비디오 테이프 레코더 및 플레이어와 같은 장치에 MCI 명령을 실행하는 데 사용됩니다. 또한 Windows(*.avi) 비디오 파일의 재생도 지원합니다. MultimediaMCI 컨트롤을 사용하여 수집된 MPEG 데이터 스트림을 재생하면 실시간 모니터링 디스플레이보다 재생 속도가 더 빠른 것으로 테스트 중에 MPEG 파일 길이를 500k~600k로 줄이면 방송 영상이 재생되지 않는 것으로 나타났습니다. 볼 수 있습니다. VB에서 MediaPlayer 컨트롤을 사용하도록 전환해도 위에서 언급한 단점이 여전히 존재합니다. 분석 이유는 MPEG 파일 길이가 너무 짧기 때문에 재생 장치가 켜지자마자 닫혀 프로그래밍으로 제어할 수 없기 때문입니다. 또한 그래프 선 크기, CopmressionRate, 그래픽 줌 표시, 인터페이스 아름다움 등과 같이 사용자가 필요로 하는 압축 데이터 스트림에 대한 일부 정보와 구현하려는 일부 기능에 대해 위에서 언급한 컨트롤은 프로그램 개발에 편의를 제공합니다. 직원이 사용하는 상위 수준 인터페이스는 더 이상 적용할 수 없습니다. 이를 기반으로 하위 계층에서 일부 작업을 구현하는 것은 당연히 어렵습니다. 위에서 언급한 실질적인 문제를 해결하기 위해 우리는 동적 링크 라이브러리 Quatrz.dll을 호출했습니다.
----3.2. MPEG 스트림에 대한 편리한 하위 수준 작업과 상위 수준 인터페이스를 제공하는 동적 링크 라이브러리 Quatrz.dll
----Windows/System에서 동적 링크 라이브러리 Quatrz.dll을 찾을 수 있습니다. 이것은 Windows에서 동영상 재생을 제어하는 데 사용되는 유형 라이브러리입니다. VB Ready to use의 "참조" 메뉴에 추가하기만 하면 됩니다. 이 라이브러리는 CommandButton 컨트롤의 Cl에 쉽게 추가할 수 있는 IBasicAudio, IBasicVideo 및 IBasicVideo2, IMediaEvent, IMediaEventEx, IMediaPosition 및 기타 클래스를 정의합니다. ick 등의 이벤트에서 오디오의 관련 값을 설정하고 읽는 코드를 추가하고, 비디오 입력 및 출력 소스의 관련 매개변수를 설정하거나 읽으며, 매개변수 없는 함수인 Run, Pause, Stop 등을 직접 호출하여 재생 이벤트 프로세스를 제어하고, 특정 재생을 제어하려면 IMediaPosition 클래스를 사용하여 세부적으로 작동합니다. 압축된 MPEG 데이터 스트림의 출력 표시에는 특별한 컨트롤이 필요하지 않습니다. Visual Basic에서는 양식을 컨테이너로 선택하거나 양식의 PictureBox 컨트롤을 컨테이너로 선택할 수 있습니다. 인터페이스의 아름다움과 사용자의 관련 정보 검색 편의성을 위해 PictureBox 컨트롤을 재생된 MPEG 데이터 스트림을 표시하는 컨테이너로 사용합니다.
----3.3. PictureBox 컨트롤을 사용하여 MPEG 데이터 스트림 표시
----VisualBasic의 PictureBox 컨트롤은 비트맵, 아이콘 또는 메타파일은 물론 향상된 메타파일, JPEG 또는 GIF 파일의 그래픽을 표시할 수 있습니다. 코드에서 그래픽 속성과 메서드를 조작하여 애니메이션을 만들거나 시뮬레이션을 수행할 수도 있습니다. Windows/System에서 동적 링크 라이브러리 Quatrz.dll 호출을 기반으로 PictureBox 컨트롤 picTV를 배치하고 pMC가 FilgraphManager의 새 인스턴스를 가리키도록 한 다음 재생을 위해 M을 엽니다. 그런 다음 로컬 개체 pVW를 IVideoWindow의 새 인스턴스로 정의하고 비디오를 재생하기 위한 창을 열고 pVW=pMC로 설정하고 개체 참조 pVW에 값을 할당하고 picTV의 속성 값 hWnd를 소유자에게 할당합니다. pVW, picTV를 표시할 수 있도록 MPEG 데이터 스트림이 수신됩니다. 구체적인 작업은 다음과 같습니다.
SetpMC=NewFilgraphManager
pMC.RenderFile"C:/은행/Montior/Example.MPG"
SetpVW=pMC
pVW.WindowStyle=CLng(&H6000000)
pVW.왼쪽=0
pVW.Top=0
OldWidth=pVW.폭
OldHeight=pVW.Height
picTV.width=pVW.width*15
picTV.Height=pVW.Height*15
pVW.Owner=picTV.hWnd
----이러한 코드를 포함하도록 별도의 함수를 정의하거나 CommandButton 컨트롤의 Click 이벤트에 넣을 수 있습니다.
----3.4. MPEG 데이터 스트림의 줌 표시
----MPEG 이미지를 확대하거나 축소하는 것은 다양한 멀티미디어 재생 소프트웨어에서 일반적으로 사용되는 이미지 표시 처리 방법입니다. Visual Basic에서는 이미지 컨트롤을 사용하여 정적 그림의 크기를 조정할 수 있습니다. 컨트롤의 Stretch 속성을 True로 설정하면 로드된 그림의 비율이 이미지 컨트롤의 범위에 맞게 변경됩니다. 이미지 컨트롤의 높이와 높이가 됩니다. 너비 속성 값의 크기가 변경됩니다. 컨트롤의 크기가 변경됨에 따라 표시되는 포인트 피치를 변경할 수 없으므로 표시 포인트의 픽셀이 사진과 완전히 일대일 대응되지 않고 표시 품질이 크게 저하됩니다. Image 컨트롤만 그림의 크기를 조정할 수 있습니다. PictureBox 컨트롤이 전체 이미지를 표시할 만큼 크지 않으면 이미지가 컨트롤 크기에 맞게 잘립니다. PictureBox 컨트롤을 사용하여 출력 MPEG 이미지의 크기를 조정하려면 MPEG 데이터 스트림의 출력 비율을 변경하고 PictureBox 컨트롤의 크기를 출력 MPEG 이미지에 맞게 조정해야 합니다. 실제로 이는 출력 MPEG 이미지를 표시하기 위해 위의 섹션 3에서 이미 수행되었습니다. MPEG 이미지의 OldWidth 및 OldHeight 읽기를 사용합니다. 다음은 MPEG 이미지를 원래 크기의 1/2로 출력하는 예입니다.
pVW.width=이전 너비/2
pVW.Height=OldHeight/2
picTV.왼쪽=135
picTV.Top=135
picTV.width=pVW.width*15
picTV.Height=pVW.Height*15
pVW.Owner=picTV.hWnd
----MPEG 이미지의 크기를 확대하거나 축소할 때 출력 이미지의 변형을 방지하기 위해 너비와 높이의 비율을 일관되게 유지하도록 주의하십시오.
----3.5. MPEG 데이터 스트림을 재생하려면 마우스를 드래그하세요.
----마우스를 사용하여 스크롤 막대를 끌어서 MPEG 데이터 스트림을 마음대로 재생하는 것은 Windows의 멀티미디어 플레이어에서 VCD를 재생하는 일반적인 기술입니다. VB의 Slider 컨트롤은 슬라이더와 선택적 눈금 표시가 포함된 창입니다. 슬라이더를 끌거나 마우스로 슬라이더의 한쪽을 클릭하거나 키보드를 사용하여 슬라이더를 이동할 수 있습니다. 슬라이더 컨트롤은 이산 값 또는 범위 내의 연속 값 집합을 선택할 때 유용합니다. 슬라이더를 눈금 표시로 이동하면 MPEG 데이터 스트림의 위치를 지정하고 재생할 수 있습니다. Slider 컨트롤 Slider1을 폼에 배치하고 커서 이동의 최대 단계 크기를 LargeChange=5, 최소 단계 크기 SmallChange=1, 최대 이동 범위 Max=50으로 설정합니다.
PRivateSubSlider1_Scroll()
'
DimpMPAIMedia위치
DimvAsDouble
IfNotbOpenThenExitSub
b찾기=참
pMC.일시 중지
SetpMP=pMC
v=Slider1.Value-Slider1.Min
v=v/Slider1.Max*pMP.기간
pMP.CurrentPosition=v
SetpMP=아무것도 없음
pMC.실행
'
EndSub
----3.6. MPEG 데이터 스트림 획득 시간 획득
----VisualBasic은 파일 생성 또는 업데이트 날짜와 시간을 얻는 데 사용할 수 있는 FileDateTime 함수를 제공합니다. 로컬 객체 pMP를 IMediaPosition의 새 인스턴스로 정의하고, pMP=pMC를 설정하고 객체 참조 pMP에 값을 할당한 다음 두 개의 Double 유형 변수 curpos 및 length를 정의하고 pMP.CurrentPosition을 curpos에 할당하고 현재 상대 값을 얻습니다. MPEG 데이터 스트림의 위치 시간, MPEG 데이터 스트림의 시간 길이 값을 얻으려면 길이에 pMP.Duration을 할당하십시오. MPEG 데이터 스트림의 상대적인 수집 시간을 얻을 수 있습니다. MPEG 획득 파일 생성의 특성에 따라 MPEG 데이터 스트림의 획득 시간은 두 개의 날짜와 시간을 더하거나 빼서 얻을 수 있습니다.
----전체 MPEG 재생 프로세스 동안 MPEG 데이터 스트림의 수집 시간을 실시간으로 표시해야 합니다. 수집 시간을 가져오는 함수를 정의하고 Timer 컨트롤의 Timer 이벤트를 사용하여 이를 구동할 수 있습니다. . Timer 이벤트를 트리거함으로써 Timer 컨트롤은 MPEG 데이터 스트림의 수집 시간을 얻기 위해 정기적으로 기능을 실행할 수 있습니다.
----4. 결론
----TV 감시 분야에서 성숙한 이미지 압축 기술을 사용하는 것은 매우 중요합니다. 예: 은행의 감시 시스템에서 고객(은행)의 신원의 특수성으로 인해 타인의 예금을 사칭하거나 은행 절도 또는 강도 등의 경우 수집된 데이터는 압축되어 처리됩니다. 데이터 흐름은 사건 처리에 있어 매우 중요한 단서이자 증거입니다. 이 시스템에서는 모니터링 영상이 선명하고 수집된 데이터가 중복되어야 할 뿐만 아니라 MPEG 데이터 스트림 재생 기술도 매우 중요합니다. 이 기사에서는 Windows 환경에서 MPEG 카드로 수집된 오디오/비디오 데이터의 재생 기술을 개발하기 위해 Visual Basic 고유의 조건과 독창적인 컨트롤을 사용하는 방법을 소개합니다. VB의 우수한 조건을 최대한 활용하고 VB의 다양한 기존 컨트롤과 유연하게 결합하여 개발된 MPEG 미디어 플레이어는 완전한 기능을 갖추고 있습니다. 재생 MPEG 영상은 데이터 수집 중에 장면을 명확하게 재현하여 "소리 듣기"를 달성합니다. 그 사람'을 통해 사건이 발생한 시간과 순간을 정확하게 판단할 수 있다. 단일 프레임만 기록하는 오디오/비디오 데이터 스트림도 동일한 방식으로 재생할 수 있습니다. 위의 기술은 모니터링 시스템에 사용되어 좋은 결과를 얻었습니다. ->