Saltar a contenido

Instalar los SDKs multimedia de VisioForge en Unity

Media Blocks SDK .Net Media Player SDK .Net Video Capture SDK .Net Video Edit SDK .Net

Esta guía explica cómo instalar los SDKs multimedia de VisioForge en Unity 6. Un único .unitypackage autónomo integra cuatro productos en Unity a la vez — el pipeline del Media Blocks SDK .NET así como los motores de alto nivel Media Player SDK .NET (MediaPlayerCoreX), Video Capture SDK .NET (VideoCaptureCoreX) y Video Edit SDK .NET (VideoEditCoreX). El paquete agrupa cada runtime nativo soportado en un solo archivo — Windows x64, Android, macOS Standalone e iOS Standalone — permitiendo que Unity seleccione el adecuado según la plataforma de destino (Build Target) al compilar. No compilas nada desde el código fuente, no necesitas NuGet y no hay dependencias externas que instalar.

El paquete apunta a ensamblados gestionados netstandard2.1. Para proyectos limitados a la versión más antigua de Mono en Unity LTS, todavía se publica una versión heredada (legacy) net48 exclusiva para Windows — consulta el spoiler al final de esta página.

Para ver qué incluye y cómo usarlo, consulta Usar VisioForge en Unity — la visión general con el catálogo completo de productos y ejemplos. Para el atajo de cinco pasos, consulta la Guía rápida.

Requisitos

Unity 6 (6000.x) — verificado en 6000.4.6f1
Targets de build distribuidos Windows x64, Android arm64, macOS Universal arm64+x86_64, iOS dispositivo arm64
TFM gestionado netstandard2.1
Ajustes obligatorios del Editor Api Compatibility Level = .NET Standard 2.1 y Disable Domain Reload

Usa una ruta corta en NTFS — no un volumen Dev Drive / ReFS

Importar el paquete escribe miles de pequeños archivos nativos, y la importación/compilación de Unity implica una intensa E/S de archivos pequeños. En un Dev Drive (ReFS) eso es drásticamente más lento (una importación en frío puede tardar varios minutos en lugar de segundos) y es más propenso a la condición de carrera EPERM rename. Mantén el proyecto en una unidad NTFS simple con una ruta raíz corta, p. ej. C:\unity\MyApp. La caché de paquetes de Unity también genera rutas profundas que pueden superar el límite de 260 caracteres MAX_PATH de Windows.

Descarga

Descarga el paquete acumulativo más reciente — Windows + Android + macOS + iOS en un solo archivo:

VisioForge.MediaBlocks.Unity.unitypackage

https://files.visioforge.com/unity/VisioForge.MediaBlocks.Unity.unitypackage

Paso 1 — Crear o abrir un proyecto de Unity

Usa un proyecto de Unity 6 existente o crea uno nuevo (cualquier plantilla). Mantén la raíz del proyecto en una ruta NTFS corta (consulta la advertencia anterior).

Creando un proyecto de Unity 6 en una ruta NTFS corta en Unity Hub

Paso 2 — Importar el paquete

En el Editor: Assets → Import Package → Custom Package…, selecciona el .unitypackage descargado y haz clic en Import (deja todos los elementos marcados).

Cuadro de diálogo Import Unity Package mostrando el contenido del paquete VisioForge

El paquete agrega:

Contenido Ubicación Propósito
SDK gestionado (netstandard2.1) + dependencias Assets/Plugins/ (+ subcarpetas Android/, macOS/, iOS/Managed/) los ensamblados del Media Blocks SDK .NET, por plataforma
Runtime nativo de Windows Assets/StreamingAssets/VisioForge/x64/ libs y plugins de GStreamer para Windows
Runtime nativo de Android Assets/Plugins/Android/libs/arm64-v8a/ libgstreamer_android.so monolítico + AAR Java
Runtime nativo de macOS Assets/Plugins/macOS/ dylibs universales (arm64+x86_64)
Runtime nativo de iOS Assets/Plugins/iOS/GStreamerX.framework/ framework embebido (dispositivo arm64)
Preservación IL2CPP Assets/VisioForge/link.xml preservación de tipos / miembros para Android e iOS
Scripts reutilizables Assets/Scripts/ los asistentes VisioForgeEnvironment y VisioForgeVideoView más los seis scripts de ejemplo
Seis escenas de ejemplo Assets/Scenes/ SimplePlayer, RTSPViewer, MediaPlayerX, IPCameraX, VideoCaptureX, VideoEditX — consulta la visión general de ejemplos
Asistente de configuración inicial Assets/VisioForge/Editor/ aplica los dos ajustes de proyecto requeridos

Los metadatos PluginImporter por flavor en cada archivo nativo le dicen a Unity a qué Build Target pertenece cada binario — cambiar el Build Target en Build Profiles elige automáticamente el slot correcto en tiempo de build.

Paso 3 — Aplicar los ajustes de proyecto requeridos

En la primera importación, el asistente de configuración muestra un cuadro de diálogo que pide aplicar dos ajustes de proyecto requeridos. Haz clic en Apply — ambos ajustes se configuran por ti.

Cuadro de diálogo de configuración del Media Blocks SDK de VisioForge con los botones Apply y Skip

Estos dos ajustes son obligatorios — el SDK no funcionará sin ellos:

  • Api Compatibility Level = .NET Standard 2.1 — el SDK se distribuye como ensamblados netstandard2.1; el ajuste legacy .NET Framework no puede cargarlos.
  • Disable Domain Reload — el SDK se inicializa una vez por proceso y se reutiliza entre sesiones de Play/Stop; con Domain Reload activado, el Editor puede colgarse al salir del modo Play.

Para targets móviles, también cambia Scripting Backend a IL2CPP — Mono no está soportado en Android o iOS por el propio Unity. Consulta Compilar para Android y Compilar para iOS para las listas de comprobación por target.

Paso 4 — Configurar los ajustes manualmente (solo si hiciste clic en Skip)

Si hiciste clic en Skip, configura ambos a mano:

  1. Api Compatibility Level = .NET Standard 2.1 Edit → Project Settings → Player → Other Settings → Configuration → Api Compatibility Level.

Ajustes del Player con Api Compatibility Level establecido en .NET Standard 2.1

  1. Disable Domain Reload Edit → Project Settings → Editor → Enter Play Mode Settings → establece When entering Play Mode en una opción que no recargue el dominio — ya sea Reload Scene only (coincide con lo que hace Apply) o Do not reload Domain or Scene.

Enter Play Mode Settings del Editor con la recarga de dominio desactivada

Paso 5 — Ejecutar una escena de ejemplo

En la ventana Project abre Assets/Scenes/SimplePlayer.unity (haz doble clic en ella — no te quedes en la escena predeterminada vacía), selecciona el GameObject RawImage, establece su File Path en el Inspector y pulsa ▶ Play. El video se renderiza en la vista Game y el audio se reproduce a través del dispositivo predeterminado del sistema.

La escena SimplePlayer reproduciendo video en la vista Game de Unity

El RawImage se ve vacío hasta que pulsas Play

La textura de video se crea en tiempo de ejecución, por lo que el RawImage está en blanco (blanco) en el modo de edición.

A continuación, lee las guías de uso:

  • Guía rápida — el camino en cinco pasos desde la importación hasta la reproducción.
  • Usar VisioForge en Unity — la visión general con el catálogo completo de productos y ejemplos: reproducción de archivos, RTSP / cámara IP, captura de webcam y edición de línea de tiempo.

Compila para una plataforma destino

El .unitypackage acumulativo contiene cada plataforma soportada, pero cada Build Target tiene sus propios ajustes y trampas. Lee la página correspondiente:

Desinstalar o actualizar el paquete

Un .unitypackage no tiene desinstalador: elimina los archivos manualmente.

  1. Cierra primero el Editor de Unity — bloquea las DLL nativas y la caché Library/.
  2. Elimina el contenido de VisioForge de Assets/:
  3. Assets/StreamingAssets/VisioForge/ — el runtime nativo de Windows.
  4. Assets/Plugins/Android/libs/arm64-v8a/libgstreamer_android.so, libVisioForge_Core.so y Assets/Plugins/Android/visioforge-gstreamer.aar — el runtime de Android.
  5. Assets/Plugins/macOS/*.dylib y Assets/Plugins/macOS/ca-certificates.crt — el runtime de macOS.
  6. Assets/Plugins/iOS/GStreamerX.framework/ y Assets/Plugins/iOS/libVisioForge_Core.a — el runtime de iOS.
  7. Assets/Plugins/ (con subcarpetas Android/, macOS/, iOS/Managed/) — los ensamblados gestionados, por plataforma.
  8. Assets/VisioForge/ — el asistente de configuración inicial y link.xml.
  9. Los scripts de Assets/Scripts/: los asistentes VisioForgeEnvironment.cs y VisioForgeVideoView.cs más los seis scripts de ejemplo — MediaBlocksPlayer.cs, RTSPViewerPlayer.cs, MediaPlayerXPlayer.cs, IPCameraXViewer.cs, VideoCaptureXRecorder.cs, VideoEditXRenderer.cs (junto con sus .meta) — conserva cualquier script propio que esté en la misma carpeta.
  10. Las escenas de ejemplo de Assets/Scenes/: SimplePlayer.unity, RTSPViewer.unity, MediaPlayerX.unity, IPCameraX.unity, VideoCaptureX.unity, VideoEditX.unity.
  11. Elimina la carpeta Library/ del proyecto (junto a Assets/) para limpiar el estado de importación en caché. Unity la regenera en la siguiente apertura (el primer arranque es más lento).

Actualización: importa el nuevo .unitypackage sobre el anterior — los GUID de los plugins gestionados son deterministas, por lo que Unity sobrescribe los activos existentes en su sitio y se conservan las referencias. Si vienes de un paquete mucho más antiguo o ves DLL duplicadas en Assets/Plugins/, haz primero una eliminación limpia (pasos anteriores) y luego importa el paquete nuevo.

Solución de problemas

Síntoma Causa Solución
TypeLoadException al ejecutar Api Compatibility Level es .NET Framework, no .NET Standard 2.1 Establécelo en .NET Standard 2.1, o reimporta y haz clic en Apply
El Editor se cuelga en "Reloading domain" al hacer Play/Stop Domain Reload está activado Mantén Disable Domain Reload activado
El Editor se bloquea en el 2.º Play El SDK se cerró en Stop y se reinicializó No cierres el SDK en Stop; mantén Disable Domain Reload activado
No se encuentra el runtime nativo Paquete importado parcialmente o el flavor del Build Target correcto falta del paquete Reimporta el paquete con todos los elementos marcados; confirma que el paquete contiene la plataforma a la que apuntaste
Sin video, errores en la Consola tras importar El Editor necesita una recarga limpia después de preparar el runtime Reinicia el Editor
DllNotFoundException en Android El Scripting Backend es Mono Cambia a IL2CPP

Para la referencia completa por síntoma, consulta Solución de problemas.

Flavor legacy net48 solo-Windows

Tengo un Unity LTS más antiguo fijado a Mono — ¿qué pasa con el build net48?

El build original solo-Windows del paquete apunta a ensamblados gestionados .NET Framework 4.8 y se sigue produciendo para proyectos que no pueden migrar a .NET Standard 2.1 (por ejemplo, Unity 2019.4 LTS sin la opción moderna de Api Compatibility). Se distribuye como un .unitypackage separado con NET48 en el nombre del archivo, contiene solo el runtime nativo Windows-x64 y usa .NET Framework como Api Compatibility Level. Los proyectos nuevos deben usar el paquete netstandard2.1 descrito arriba — cubre el mismo caso Windows-x64 más todas las demás plataformas, y Unity 6 lo usa por defecto. Si tienes un requisito estricto del build net48, contacta con soporte para el enlace de descarga más reciente.

Preguntas frecuentes

¿Puedo instalar el SDK en Unity mediante NuGet?

No. Unity no ejecuta la restauración de NuGet, y el SDK incluye cientos de archivos nativos que NuGet no dispondría para Unity. El .unitypackage agrupa todo — ensamblados gestionados, runtime nativo de cada plataforma, scripts y escenas — por lo que importas un único archivo en su lugar.

¿Necesito instalar GStreamer o alguna otra dependencia del sistema?

No. El paquete es totalmente autónomo; todo lo que el SDK necesita está dentro de él. No se requiere una instalación de GStreamer en tu máquina y el runtime incluido no la utiliza — al contrario, VisioForgeEnvironment.Configure() elimina activamente cualquier GStreamer del sistema de la ruta de búsqueda del proceso para evitar una doble inicialización.

¿Qué SDKs de VisioForge están incluidos?

El paquete incluye cuatro productos desde una única superficie gestionada netstandard2.1: el pipeline del Media Blocks SDK .NET y los motores de alto nivel Media Player SDK .NET (MediaPlayerCoreX), Video Capture SDK .NET (VideoCaptureCoreX) y Video Edit SDK .NET (VideoEditCoreX). Cada uno incluye una o más escenas de ejemplo listas — consulta la visión general de ejemplos.

¿Funciona el mismo paquete en Windows ARM64?

El runtime nativo Windows del paquete es solo x86_64 — no hay un build nativo ARM64 hoy. Ejecutarlo vía emulación x64 solo bajo tu propio riesgo; el uso en producción en Windows 11 ARM64 no está ejercitado.

¿Puedo abrir el mismo paquete en el Editor host Mac?

Sí — si el paquete se construyó con -IncludeMacOS. La variante acumulativa publicada en files.visioforge.com/unity/ siempre contiene el flavor macOS. Un paquete solo-Windows abierto en un Editor Mac muestra un mensaje claro [VisioForge] Native runtime folder not found at '…' for runtime platform OSXEditor; consulta Bootstrap y ciclo de vida.

Véase también