Grabación de audio/video y resguardo en BD
-
Upload
jacobo-hernandez-v -
Category
Documents
-
view
794 -
download
4
description
Transcript of Grabación de audio/video y resguardo en BD
Grabación de audio/video y resguardo en BD
Notas para el desarrollo de un componente de software para la grabación de voz y video digital, y el
resguardo de grabaciones en BD.
Fase de análisis de factibilidad.
Eugenio Jacobo Hernández Valdelamar
Abril/2008
http://creativecommons.org/licenses/by-nc-nd/2.5/mx/
Esquema del requerimiento
CAT
CAT
Entregable: Componente para integrar en aplicación VB6.
Arquitectura propuesta
Capa de acceso a datos
Lógica de negocio
Interfaz de usuario
Grabación y consultasde pláticas
Base de datos
ComponenteVB6
Proceso de grabación de audio (en 2 pasos)
.wavGrabador
Conversor/codificador
.mp3.ogg.wma.vox
Si se realiza el proceso mediante APIsconvencionales de Windows, se tieneun overhead de tiempo por la conversión a otro formato (el peor caso seria un tiempoigual al de la grabación original).
Grabación de audio y codificación en nuevo formato para transmisión (1 paso)
.wma.mp3.ogg.vox
Grabador/Codificador
Sin embargo, hay herramientas que permiten grabardirectamente en formatos diferentes al WAV.Esto optimiza el tiempo de respuesta de la solución.
Micrófonos
• Características:– Mono/stereo– Convertidor analógico-digital– Filtro de cancelación de ruido– Patrón omni-direccional
• Los micros omnidireccionales tienen una respuesta de sensibilidad constante, lo que significa que capta todos los sonidos independientemente de la dirección desde donde lleguen.
– 50 - 16000 Hz • Precios
– Mínimo: $5.50 USD– Máximo: $173.95 USD
Formatos de audio
• WAV– 10 MB p/minuto, 16 bits estereo
• MP3– 0.72 MB p/minuto, 96 kbps
• WMA• OGG
– 10-25%<MP3• VOX
– 1 Mb por hora (baja calidad)– http://www.webdeveloper.com/multimedia/
multimedia_dark_side.html
¿Cuál es el mejor formato para la solución?
• El mejor formato debe permitir:– Calidad de audio– Tamaño reducido para transmitirse por la red
de datos a un servidor.
• Opciones de tamaño de grabación aprox:– WAV , 10Mb por minuto– MP3 , 1 Mb por minuto– WMA , 1 Mb por minuto– VOX , 0.016 MB por minuto
¿Con qué se realizar el proceso de captura?
La captura de audio desde software se realiza accediendo a la tarjetade sonido de la computadora.El acceso de bajo nivel es el más complejo, aunque el SO Windowsofrece APIs que permiten obtener las muestras de audio digital, para guardarlo en formato WAV.La codificación posterior implica algoritmos complejos y a veces, propietarios.
Una buena solución es el uso de herramientas especializadas que ofrecen buena funcionalidad, calidad de grabación, acceso a distintasfuentes de audio y soportan varios formatos.
Herramientas de grabación de audio directa a WMA/MP3/OGG
• Active Audio Record Component – http://www.guangmingsoft.net/audiorecord/ – It can directly record audio to mp3, wav, wma, ogg, au, aiff and
vox audio file. You have full control on the quality of the audio file by setting the encoding parameters.
– Implemented as ATL ActiveX object, Active Audio Record can be easily integrated into applications written in languages that support ActiveX Component such as Visual C++, Visual Basic, Delphi, C++ Builder, .Net languages like C#, VB.Net, Java, Scripts like Perl, Php, Python, ASP.Net.
– User license $149.95– Team license $299.95
• Once registered, you can redistribute Active Audio Record royalty-freely
Librerías y componentes para grabación de audio
• Alvas.Audio – http://www.alvas.net/alvas.audio.aspx – to create applications that play (including
mixed audio data), record, edit and convert sound.
– .Net framework 1.1 o superior– Single license $295– Team license $885
Utilerías y componentes para conversión de formatos de audio
• LAME – http://www.lame.sourceforge.net/ – http://www.elguille.info/colabora/puntoNET/PabloTilli_WavToMp3.htm– LAME es un proyecto, que tiene como finalidad crear un
compresor/descompresor de mp3/wav de gran calidad.– En el caso del EXE podemos convertir archivos de un formato a otro, desde la
línea de comandos.– En la versión DLL, la idea es que podemos hacer llamadas a esta desde nuestra
aplicación escrita en cualquier lenguaje, y así crear una aplicación totalmente grafica que utiliza LAME.
• Blade– http://www.vbforums.com/showthread.php?s=&threadid=281650
• Windows Media Encoder– http://msdn2.microsoft.com/en-us/library/ms867158.aspx – Windows Media Encoder Software Development Kit (SDK)
• http://go.microsoft.com/fwlink/?LinkId=5328
• DirectX - DirectShow – http://www.codeproject.com/audio/dshowencoder.asp
Ejemplos de captura de audio VB
• Audio recorder – http://vbcity.com/forums/topic.asp?tid=126307
• Simple audio recording– http://www.codeproject.com/KB/winsdk/SoundRecord.aspx
• How to record voice from microphone? – http://www.dotnetspider.com/code/C-470-How-record-voice-from-microp
hone.aspx– Winmm.dll, mciStringA
• Grabar entrada de audio del microfono – http://www.canalvisualbasic.net/forum/forum_posts.asp?TID=25772 – mciSendStringA
• Voice Recording/Playing back using simple classes – http://www.codeproject.com/KB/audio-video/VoiceRecording.aspx – MS WAVE APIs
Muestra de código VB6• Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
'Envia los comandos al dispositivo MCI:Private Sub SendCommand(Command As String, Optional ReturnString As String, Optional ReturnLength As Long) If ReturnString = vbNullString Then ReturnString = 0 Call mciSendString(Command, ReturnString, ReturnLength, 0)End Sub
'Inicia la grabacion de audio:Public Sub RECORD_Start() Call SendCommand("open new type waveaudio alias WavFile") Call SendCommand("record WavFile insert")End Sub
'Termina la grabacion de audio:Public Sub RECORD_Finish() Call SendCommand("stop WavFile wait")End Sub
'Guarda la grabacion en un archivo de sonido WAV:Public Sub RECORD_Save(Filename As String) Call SendCommand("save WavFile " & Filename) Call SendCommand("close WavFile")End Sub
Ejemplos de codificación de audio
• Sound recording and encoding in MP3 format – http://www.codeproject.com/KB/audio-video/
RecordingAndMP3Encoding.aspx
• Sending and playing microphone audio over network – http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx
• What's That Tune? - Mashing up Three Web Services – http://www.codeproject.com/KB/cpp/What_s_That_Tune_.aspx
• Aumplib: C# Namespace And Classes For Audio Conversion – http://www.codeproject.com/KB/audio-video/Aumplib.aspx
Captura de imágenes de una cámara
Cámara Web
Manejador de la cámara
(driver)
API de la cámara
Obtener imagen
Cámara IP/Net
EthernetW
i-fihttp
Guardarimagen
BD
Captura de imágenes con cámara Web
• Revisar que la cámara este disponible
• Abrir cámara para captura• Capturar la imagen de la cámara• Cerrar cámara• Procesar la imagen
– Guardarla– Desplegarla– Transmitirla
Driver de la cámara
WC API OCX/DLL
AVI Capture DLL
(avicap32.dll)
Aplicación
Controles compatibles
Cámaras: características generales
• Cámaras Web• Resolución:
– Captura estática• Mínima:352*288• Máxima:1600*1200
– Captura en movimiento• Mínima:320*240 15 fps• Máxima:800*600 30 fps
• Interfaz:– USB– USB wireless server (WiFi
802.11)• Alimentación :
– USB• Formato de imagen de salida
– JPG
• Cámaras IP (net cams)• Resolución:
– Captura estática• Mínima:320*240• Máxima:1280 x 1024 (1.3 Mpix)
– Captura en movimiento• Mínima:160*120 15 fps• Máxima:800*600 30 fps
• Sensibilidad:– 0.2-10 Lux
• Interfaz:– Ethernet– Wi-fi
• Alimentación:– PoE (via ethernet)– Eliminador de voltaje.
• Formato de imagen de salida:– JPG
Fabricantes
• Lista de fabricantes– http://en.wikipedia.org/wiki/List_of_digital_cam
era_brands
• Cámaras Web para Windows – Creative– Logitech – Microsoft – Philips– Micro Innovations
Grabación de video
• Formatos de audio/video continuo:– DV-AVI 25Gb/hr– MPEG2 4.7GB/hr de audio y video (DVD)– MPEG1– WMV
• Una solución alterna es grabar 2 frames por minuto, sin audio, lo cual disminuye el tamaño de almacenamiento.
Componentes/controles de acceso a video en cámaras Web
• Video OCX– http://www.videoocx.de/
Ejemplos VB• Accessing WebCam in Visual Basic 6
– http://www.codeproject.com/KB/vb/webcamcapture.aspx– senmessageA– Avicap32.dll
• How to Capture video from a video device such as a Webcam with VB .NET – http://www.thaiio.com/prog-cgi/vbnetwebcam.html – Avicap32.dll
• WIA webcam sample– http://www.vbforums.com/archive/index.php/t-378126.html – WIA (Windows Image adquisition)
• A WebCam Class in Visual Basic– http://www.codeguru.com/csharp/csharp/cs_misc/graphicsandimages/article.php/
c13951/– http://www.vbforums.com/showthread.php?p=2048466
• Streaming video with VB.Net– http://www.webtropy.com/articles/art7.asp
Uso de VB.Net desde VB6
• Demasiado esfuerzo para integrar lo nuevo a lo legado
• http://www.dotnetjunkies.com/WebLog/vbpuntonet/articles/vb_fusion.aspx