Domanda

Ho un semplice file WPF (XAML) che contiene alcune forme e testo animati.L'animazione non ha un comportamento interattivo.Voglio registrare questa animazione come file video che in seguito intendo utilizzare come schermata "introduttiva" per uno screencast.

Cosa penso di aver bisogno:Codice C# che accetta un file XAML di input e genera un WMV di alta qualità a (ad esempio a 24 fps).

Possibili alternative ho già studiato

  1. Registra con un software di registrazione dello schermo come Camtasia Studio.Funziona ma le animazioni non sono così fluide soprattutto quando l'animazione ha molte transizioni o movimenti

  2. Utilizza hardware come DVI2USB di Epiphan Systems.Costa troppo;non l'ho provato.

  3. Registra l'uscita TV (S-Video, ecc.) utilizzando una scheda DVR: bassa qualità e bassa risoluzione.

Aggiornamento del 28 ottobre 2008: codice sorgente funzionante

Questo post del blog contiene un esempio di codice sorgente completamente funzionante per l'esportazione di WPF/XAML come AVI.Non è veloce come vorrei ma funziona per le mie esigenze:

collegamento al blog bost di MSDN

È stato utile?

Soluzione

Esegui il rendering dei fotogrammi con RenderTargetBitmap, quindi codifica con il codec di tua scelta.Non molto veloce, ma 24 fps sono raggiungibili su un normale PC.Utilizziamo una tecnica simile per alimentare il flusso video dai nuovi indicatori WPF al sistema bitmap legacy.Potrebbe esserci una soluzione migliore, ma funziona.

Ho anche sentito parlare di una soluzione con l'estrazione del frame renderizzato dai buffer DirectX che WPF utilizza internamente che funziona molto più velocemente di RenderTargetBitmap, ma sembrava troppo inaffidabile da utilizzare in un sistema di produzione

Aggiornamento:sembra che non sia necessario il tempo reale, quindi RenderTargetBitmap dovrebbe funzionare senza problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top