Está en la página 1de 23

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

Interfaz de usuario

Grabación Componente
Lógica de negocio y consultas VB6
de pláticas

Capa de acceso a datos

Base de datos
Proceso de grabación de audio (en 2
pasos)

.wav Conversor/
Grabador
codificador

.mp3
Si se realiza el proceso mediante APIs .ogg
convencionales de Windows, se tiene .wma
un overhead de tiempo por la conversión .vox
a otro formato (el peor caso seria un tiempo
igual al de la grabación original).
Grabación de audio y codificación en nuevo
formato para transmisión (1 paso)

.wma
.mp3
Grabador/
Codificador
.ogg
.vox

Sin embargo, hay herramientas que permiten grabar


directamente 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 tarjeta


de sonido de la computadora.
El acceso de bajo nivel es el más complejo, aunque el SO Windows
ofrece 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 distintas
fuentes 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

Manejador de
API de
la cámara
(driver) la cámara

Cámara Web

EthernetWi-fi
Obtener
imagen
http

Cámara IP/Net
Guardar
imagen

BD
Captura de imágenes con cámara
Web
• Revisar que la cámara este
disponible Aplicación
• Abrir cámara para captura
• Capturar la imagen de la cámara
• Cerrar cámara AVI Capture WC API
Controles
DLL OCX/
compatibles
• Procesar la imagen (avicap32.dll) DLL

– Guardarla Driver de la cámara

– Desplegarla
– Transmitirla
Cámaras: características generales
• Cámaras Web • Cámaras IP (net cams)
• Resolución: • Resolución:
– Captura estática – Captura estática
• Mínima:320*240
• Mínima:352*288
• Máxima:1280 x 1024 (1.3 Mpix)
• Máxima:1600*1200 – Captura en movimiento
– Captura en movimiento • Mínima:160*120 15 fps
• Mínima:320*240 15 fps • Máxima:800*600 30 fps
• Máxima:800*600 30 fps • Sensibilidad:
• Interfaz: – 0.2-10 Lux
– USB • Interfaz:
– USB wireless server (WiFi – Ethernet
802.11) – Wi-fi
• Alimentación : • Alimentación:
– USB – PoE (via ethernet)
– Eliminador de voltaje.
• Formato de imagen de salida
• Formato de imagen de salida:
– JPG – 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/vbp
untonet/articles/vb_fusion.aspx

También podría gustarte