2012-06-20 7 views
5

Estoy construyendo una aplicación Windows Forms en VS 2010 que aumenta o disminuye suavemente la velocidad de reproducción de un video según la velocidad de la entrada del usuario.Velocidad de aumento/disminución dinámica de un video en una aplicación Windows Forms

He intentado varias avenidas ..

1.) Utilización de la clase AudioVideoPlayback DirectX - puedo determinar la velocidad del vídeo, mediante el establecimiento de la posición actual del vídeo, basado en un temporizador y un mayor .. o disminuyó ese valor según la entrada del usuario. Si bien esto funcionó en mi PC, está muy rezagado en nuestras PC de destino más bajas. ¿Alguien puede pensar en una forma más eficiente de aumentar/disminuir la velocidad de reproducción usando esta clase?

2.) he probado el control de Windows Media Player ActiveX, e intentaron establecer la tasa/posición de forma dinámica, pero esto es extremadamente nervioso y lag incluso en mi PC de desarrollo

3.) He intentado el Componente COM de Apple QuickTime Control 2.0 que viene con VS 2010, y también es muy lento.

4.) Estoy tratando de encontrar la manera de establecer la velocidad en el control Shockwave Flash Object, pero no he encontrado eso todavía

Puede alguien sugerir otras vías para explorar? Solo necesito poder aumentar/disminuir la velocidad de reproducción de video sin problemas en función de la entrada del usuario sin demoras. No me importa en qué formato debe estar el video, todos los videos se pueden convertir al formato requerido.

Cualquier ayuda/ideas serán apreciadas.

Gracias

+0

¿Has probado esta sugerencia aquí en esta publicación SO - http://stackoverflow.com/a/7383241/763026. Habla de cambiar la 'velocidad de reproducción' –

+0

He intentado con los ejemplos de DirectShow.NET. El ejemplo que le permite cambiar la velocidad ni siquiera cambia la velocidad. –

Respuesta

0

Después de probar muchos formatos/bibliotecas y componentes diferentes, encontré que el control VLC Media Player ActiveX es el método más eficiente para ralentizar/acelerar el video sin ningún retraso notable.

1

La mejor manera es para decodificar los mapas de bits de vídeo, y manejar los marcos de sí mismo.

Pruebe el ejemplo de CaptureNET de DirectShow.NET. Le permite capturar mapas de bits de cada cuadro. Después de eso, escriba su propio control de reproducción para manejar la frecuencia de actualización.

Cuestiones relacionadas