Ich muss meinen Bildschirm als Video aufnehmen, dafür habe ich Expression Encoder 4 benutzt, aber in meiner Anwendung muss ich auch ein einzelnes Fenster erfassen, aber ich finde keinen Weg es, mit EE4 habe ich versucht, die CaptureRectangle
meiner ScreenCaptureJob dynamisch zu ändern, aber das scheint nicht möglich zu sein. Also meine Frage ist, weißt du sowieso, diese 'Single Window Capture' mit vorzugsweise C# oder vielleicht C++ zu machen?Videoaufnahme von nur einem Fenster
Antwort
Sie könnte Holen Sie sich den Fenstergriff des Fensters, das Sie interessiert sind, setzen Sie einen Timer, und bei jedem Timer-Tick erfassen Sie den Inhalt dieses Fensters. Dies ist nicht trivial, aber sicherlich möglich. Ich habe es vor vielen Jahren in C gemacht, aber dieser Code ist längst weg.
Das Problem ist einfacher, wenn Sie nur einen rechteckigen Bereich des Bildschirms erfassen möchten. Sie können den Fensterhandle abrufen, seine Größe und Position abfragen und dann diesen Bereich vom Bildschirm kopieren. In C oder C++ würden Sie den Desktop-DC abrufen und Bits davon kopieren. In C# könnten Sie Bitmap
erstellen, das ist die Größe des Fensters, rufen Sie Graphics.FromImage
auf, um ein Graphics
Objekt für das Bild zu erhalten, und rufen Sie dann CopyFromScreen auf, um den Fensterinhalt abzurufen. Der Nachteil ist, dass dies nur funktioniert, wenn nichts das fragliche Fenster bedeckt. Wenn etwas einen Teil des Fensters bedeckt, werden Sie das erfassen.
In jedem Fall enden Sie mit einem Strom von Bildern, die Sie zu einem Video kombinieren müssen. Es gibt eine Reihe von Bibliotheken, die das tun werden. Für eine C# -Lösung sollten Sie sich zunächst mit create video from streamed images c# befassen. Ich vermute, dass es ähnliche Bibliotheken für C++ gibt. Es gibt auch einige Befehlszeilen-Tools, die es tun werden, obwohl meine Erfahrung mit ihnen nicht zufriedenstellend war.
- 1. Echtzeit-Videoaufnahme?
- 2. Kamera2 Videoaufnahme
- 3. MediaRecorder Videoaufnahme im Hochformat
- 4. Rohdaten von einer Videoaufnahme in JMF lesen
- 5. OpenCV Videoaufnahme und fps Problem
- 6. Videoaufnahme mit GPUImage Android
- 7. Videoaufnahme in iPhone
- 8. Videoaufnahme auf MacOS
- 9. ios - Pause Videoaufnahme
- 10. Schlechte camera2 Videoaufnahme-Leistung
- 11. Html5 Videoaufnahme und -upload?
- 12. Videoaufnahme Ausgabe in IOS
- 13. iPhone: Videoaufnahme basierend auf Timer?
- 14. WPF-Fenster ziehen nur vertikal
- 15. Entfernen von Symbol aus einem WPF-Fenster
- 16. Vine wie Videoaufnahme mit PhoneGap
- 17. Wie öffne ich ein Fenster von einem Fenster existieren
- 18. Öffnen von WPF-Fenster aus einem anderen Fenster
- 19. Popup topmost nur Outlook-Fenster
- 20. iPhone VoiceOver Zugänglichkeit Einstellung stürzt Videoaufnahme
- 21. HTML 5 Videoaufnahme und Speichern eines Streams
- 22. Verschieben von Zeilen von einem Fenster zu einem anderen
- 23. android: Videoaufnahme auf Gerät oder Emulator
- 24. Fenster - Kopieren von Dateien nur, wenn übergeordnetes Verzeichnis nicht
- 25. ein Fenster von einem anderen in Wpf
- 26. Die Videoaufnahme in der Webansicht beendet die Videoaufnahme im Hintergrund unerwartet?
- 27. Wiedergabe von Audiodateien während der Videoaufnahme in iOS
- 28. WPF-Fenster Nur für eigene Anwendung?
- 29. Videoaufnahme als wie im Gespräch Tom App
- 30. iOS: AVAssetWriterInput nicht Audio in Videoaufnahme speichern
Diese Technik war genau das, was ich vor dem Einsatz von Encodern machen wollte, meine einzigen Befürchtungen waren die Performance, aber nachdem ich mit DirectX gespielt habe, sehe ich, dass das kein Problem ist. –