Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:dshow [2013/11/21 19:51] alfred [DirectShow] |
fw:dshow [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== DirectShow ====== | ====== DirectShow ====== | ||
| - | :!: Este artículo se centra en el uso y creación de filtros con DirectShow. El siguiente artículo muestra los pasos a seguir de forma más clara: | + | |
| - | * [[fw:dshowcapture|Filtro de captura con DirectShow]] | + | |
| ===== Conceptos ===== | ===== Conceptos ===== | ||
| DirectShow es la tecnología de Microsoft para el desarrollo de aplicaciones que reproducen audio y video. | DirectShow es la tecnología de Microsoft para el desarrollo de aplicaciones que reproducen audio y video. | ||
| Línea 96: | Línea 95: | ||
| [[http://msdn.microsoft.com/en-us/library/windows/desktop/aa473780(v=vs.85).aspx|Artículo de MSDN]] | [[http://msdn.microsoft.com/en-us/library/windows/desktop/aa473780(v=vs.85).aspx|Artículo de MSDN]] | ||
| - | === Tipo de video no comprimido === | + | === Leer video no comprimido === |
| + | Video no comprimido es una secuencia de bitmaps mostrados en sucesión con ratio de unos 30 frames por segundo. Para descomprimir un frame se utilizará el método CTransformFilter::Transform; este recibe un puntero a IMediaSample donde están encapsulados los datos, IMediaSample::GetPointer retornará un puntero al primer byte de los datos. | ||
| + | |||
| + | === Producir video no comprimido === | ||
| Información sacada de la [[http://msdn.microsoft.com/en-us/library/windows/desktop/ff485865(v=vs.85).aspx|MSDN]], en ese artículo también hay ejemplos de... | Información sacada de la [[http://msdn.microsoft.com/en-us/library/windows/desktop/ff485865(v=vs.85).aspx|MSDN]], en ese artículo también hay ejemplos de... | ||
| * Función que asigna los valores para un vídeo sin comprimir. | * Función que asigna los valores para un vídeo sin comprimir. | ||
| Línea 131: | Línea 134: | ||
| * [[http://msdn.microsoft.com/en-us/library/windows/desktop/bb530104(v=vs.85).aspx|Conversion a YUV]] | * [[http://msdn.microsoft.com/en-us/library/windows/desktop/bb530104(v=vs.85).aspx|Conversion a YUV]] | ||
| * [[http://msdn.microsoft.com/en-us/library/windows/desktop/bb530115(v=vs.85).aspx|Crop, pan y aspect ratio]] | * [[http://msdn.microsoft.com/en-us/library/windows/desktop/bb530115(v=vs.85).aspx|Crop, pan y aspect ratio]] | ||
| + | * [[http://msdn.microsoft.com/en-us/library/windows/desktop/dd407212(v=vs.85).aspx|Imagenes Top-Down y Bottom-Up]] | ||
| ==== Creación de un filtro ==== | ==== Creación de un filtro ==== | ||
| === CUnknown === | === CUnknown === | ||
| Línea 369: | Línea 373: | ||
| ===== Notas ===== | ===== Notas ===== | ||
| * Flash Media Live Encoder reconocerá los filtros de captura en formatos sin procesar I420, YV12, YUY2, UYVY, RGB24 y RGB32. | * Flash Media Live Encoder reconocerá los filtros de captura en formatos sin procesar I420, YV12, YUY2, UYVY, RGB24 y RGB32. | ||
| + | * Script .bat para instalar un filtro: | ||
| + | <code> | ||
| + | @echo off | ||
| + | SET filterfile=VCamD.ax | ||
| + | AT > NUL | ||
| + | IF NOT %ERRORLEVEL% EQU 0 ( | ||
| + | ECHO Necesitas ser administrador para instalar el filtro | ||
| + | pause | ||
| + | EXIT /B 1 | ||
| + | ) | ||
| + | regsvr32 %~dp0%filterfile% | ||
| + | </code> | ||
| ==== Notas de programación COM ==== | ==== Notas de programación COM ==== | ||
| === Funciones de ayuda === | === Funciones de ayuda === | ||
| Línea 400: | Línea 416: | ||
| ==== Recursos ==== | ==== Recursos ==== | ||
| * {{:fw:dshow:com_in_plain_c_-_codeproject.pdf|Explicación del COM}} | * {{:fw:dshow:com_in_plain_c_-_codeproject.pdf|Explicación del COM}} | ||
| + | * {{:fw:dshow:graphstudio.zip|GraphStudio}}, aplicación para debugar los filtros y obtener info de ellos. | ||