Rendu d'une séquence d'images en C # pour faire une vidéo

voix
1

J'ai une séquence d'images jpg que je la capture et le rendu à l'écran pour créer une vidéo.

Je décompresse l'image d'un MemoryStream en utilisant un JpegBitmapDecoder et le rendu en définissant la source sur un contrôle d'image. Cela semble fonctionner bien, mais la surcharge du processeur est assez élevé. Les images sont 1280x720, en cours d'exécution à 30fps et je peux à peine garder sur mon ordinateur (Dual Core 2.8Ghz). Fonctionnant à des résolutions plus élevées me causez de jeter des cadres. Je voudrais essayer d'obtenir l'utilisation cpu vers le bas.

La plupart du temps passé passé semble être dans le décodage (benchmarks simples du décodage seul sur ma machine montrent que je peux mettre sur les 40fps) décoder. Est-ce que quelqu'un sait s'il y a un moyen plus rapide décodeur disponible (DirectShow DirectX? Quelque chose que je peux délester la carte vidéo?)

En ce qui concerne le rendu, il ne semble pas le contrôle de l'image est conçu pour ce type d'utilisation (j'été surpris qu'il a travaillé du tout, je viens d'essayer, car il était facile de le faire). Y at-il une autre façon de rendre les images individuelles qui pourraient être plus rapide?

Créé 11/07/2009 à 05:24
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

On dirait que vous êtes à la fois le décodage et le redimensionnement de la jpeg en même temps. Le changement de taille peut être trop cher. Essayez séparer le décodage et le redimensionnement ( en utilisant le moins cher algorithme disponible) les fichiers JPEG. Utilisez quelque chose comme FreeImage avec « JPEG_FAST » pour décomprimer et « FILTER_BOX » pour redimensionner.

Pour l'affichage, TinyPTC est simple et rapide. (Une enveloppe autour DirectDraw) Il est C, mais il est assez facile d'écrire un wrapper pour compiler et à une dll que vous pouvez faire référence.

Créé 11/07/2009 à 15:38
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more