Envío de datos de ASF a un punto de publicación
[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Puede usar el SDK de Windows Media Format para insertar datos de ASF en un punto de publicación en un servidor de Windows Media. A continuación, el servidor difunde los datos desde ese punto de publicación. Este escenario es útil si va a capturar o volver a codificar contenido en un equipo y desea distribuir el contenido desde otro equipo (o varios equipos). También es útil si necesita mover contenido de un equipo dentro de un firewall a un servidor de Windows Media fuera del firewall, ya que la distribución de inserción usa el protocolo HTTP.
Nota
Un punto de publicación actúa esencialmente como un redirector. El cliente especifica el punto de publicación en la dirección URL (por ejemplo, mms://MyServer/MyPublishingPoint) y el servidor lo traduce en una solicitud de contenido.
Para insertar datos en el punto de publicación, adjunte el objeto receptor de inserción al objeto writer. El receptor de inserción se usa para abrir la conexión al servidor y administrar la sesión de inserción. El objeto writer controla todos los demás aspectos de la creación del archivo.
Lleve a cabo los siguiente pasos:
- Cree el objeto writer llamando a la función WMCreateWriter , que devuelve un puntero IWMWriter .
- Cree el objeto receptor de inserción llamando a la función WMCreateWriterPushSink , que devuelve un puntero IWMWriterPushSink .
- Conecte el receptor de red al escritor llamando a IWMWriterAdvanced::AddSink en el escritor, con un puntero a la interfaz IWMWriterPushSink del receptor de red.
- Conéctese al servidor llamando a IWMWriterPushSink::Connect.
- Escriba la secuencia. Este paso implica establecer el perfil en el objeto writer, enviar ejemplos al escritor y, posiblemente, otras tareas. Para obtener más información, vea Escribir archivos ASF. Las tareas adicionales pueden incluir establecer atributos de metadatos (como se describe en Trabajar con metadatos) o establecer live-DRM en la secuencia (como se describe en Habilitación de la compatibilidad con DRM). Estas tareas se realizan exactamente igual que para la escritura de archivos ASF.
- Una vez que haya terminado de escribir, llame a IWMWriterAdvanced::RemoveSink en el escritor para desasociar el objeto receptor de inserción.
- Llame a IWMWriterPushSink::EndSession en el receptor de inserción para finalizar la sesión con el servidor.
Estos pasos se muestran en la aplicación de ejemplo WMVNetWrite.
Nota
Si va a enviar un archivo de solo vídeo de velocidad de bits muy baja, es posible que no empiece a reproducirse en el punto de publicación durante varios segundos. Esto puede ocurrir en varios casos, por ejemplo, cuando un único paquete contiene muchos fotogramas de vídeo pequeños y no hay audio, o cuando hay un intervalo de tiempo largo entre el primer paquete y el segundo paquete en un archivo de solo vídeo de baja velocidad de bits. Para evitar este problema, inserte una secuencia de audio silenciosa en el archivo.
Authentication
El objeto receptor de inserción controla automáticamente la autenticación en el servidor. Sin embargo, es posible que la aplicación necesite proporcionar credenciales. Esto se realiza a través de la interfaz de devolución de llamada IWMCredentialCallback , como se indica a continuación:
- Implemente la interfaz IWMStatusCallback e IWMCredentialCallback en la aplicación.
- Consulte el objeto receptor de inserción para la interfaz IWMRegisterCallback .
- Llame a IWMRegisterCallback::Advise con un puntero a la interfaz IWMStatusCallback de la aplicación.
- Si el receptor de inserción necesita obtener credenciales de la aplicación, consulta el puntero IWMStatusCallback para la interfaz IWMCredentialCallback y llama a IWMCredentialCallback::AcquireCredentials. Para obtener información sobre este método, consulte Autenticación.
- Cuando haya terminado, llame a IWMRegisterCallback::Unadvise para dejar de recibir notificaciones de eventos del receptor de inserción.
Temas relacionados