Ich möchte Video von einer Videoquelle aufnehmen und mit DirectShow in das MPEG-Format codieren. Wie Capture-Grafik zu entwerfen und wie die Videoeigenschaften für MPEG-Format einstellen (zB Bitrate, Frameraten, Auflösung, etc.)Wie kann ich mit DirectShow ein Video vom WDM in das MPEG-Format aufnehmen?
Antwort
Meines Ansatz (was ich in der Produktion von VideoPhill recorder verwenden) war DirectShow.net zu verwenden nur für den Rahmen der Erfassung Dann benutze ich den SampleGrabber-Filter, um eine Reihe von Frames zu erstellen, die später in den Encoder eingespeist werden. Dafür verwende ich StandardMPEG.
Mein Wunsch war es, die meiste Zeit in der Verwaltung zu bleiben - und mit diesem Ansatz war ich in der Lage, dies zu tun.
Später - es scheint, es war der richtige Ansatz, denn jetzt kann ich verschiedene Encoder direkt an ein Aufnahmegerät anschließen. Und das war vorher nur möglich, wenn Sie SimulStream (tm) verwenden. Nicht nur das, Sie können auch Encoder verwenden, die nicht als DS-Filter verfügbar sind.
Über Probe Grabber (Fa DirectShow.net Ort - faq section):
Q9: Wo finde ich die Basisklassen? Wie schreibe ich einen Filter in C#?
Die Basisklassen wurden nicht übersetzt, um von .NET verwendet zu werden. Nach zwei Versuchen, nun, lassen Sie uns nur sagen, dass sie nicht mit verwaltetem Code entworfen wurden.
Das sagte jedoch, Sie haben immer noch Möglichkeiten. Zuallererst können Sie mit dem Sample-Grabber Video-Frames aufnehmen. Diese Rahmen können beliebig bearbeitet werden, bevor Sie mit dem nächsten Filter im Diagramm fortfahren. Sehen Sie sich das DxLogo-Beispiel (unter anderem) an, wie dies gemacht wird.
Zweitens können Sie ein DirectX Media Object (DMO) schreiben. In der lib sind zwei Beispiele enthalten, die zeigen, wie dies geschieht. Zwar gibt es Einschränkungen für DMOs, die reguläre Filter nicht haben, aber diese Einschränkungen sind für Sie möglicherweise kein Problem. Es gibt umfangreiche Dokumente (einschließlich einer CHM-Datei), die darüber sprechen, wie dies zu tun ist.
Drittens gibt es ein Beispiel namens GSSF. Sie können dies verwenden, wenn Sie einen Quellfilter erstellen möchten (dh den Filter im Diagramm, der den Stream generiert).
- 1. Wie kann ich eine DirectShow-Programmierung lernen?
- 2. Wie kann ich ein DirectShow-Diagramm zurückentwickeln?
- 3. Kann ich ein Video ohne zusätzliche Berechtigungen aufnehmen?
- 4. Wie kann ich ein Standbild vom benutzerdefinierten Videoplayer-Bildschirm in iOS aufnehmen?
- 5. Android: Kann jemand Video aufnehmen?
- 6. DirectShow VB.net kann das Aufnahmeformat nicht ändern
- 7. DirectShow - So überlagern Sie Video mit Text
- 8. Kann ich DirectShow in der Webanwendung verwenden?
- 9. Wie kann ich ein Video mit dem Sound meiner App mit Android Studio aufnehmen?
- 10. Wie kann ich ein Video vom Server abspielen?
- 11. Video von JFrame aufnehmen
- 12. Wie mache ich ein Makro, das eine Zeichenkette aufnehmen kann?
- 13. Warum wird ein Graph in DirectShow nicht aufgenommen?
- 14. Video ohne Vorschau aufnehmen
- 15. Wie kann ich ein Video von einem Sprite in AS3 aufnehmen?
- 16. Directshow Audio/Video PTS Clocking Berechnung
- 17. Wie kann ich den `Genindex` in ein Sphinx TOC aufnehmen?
- 18. Video-Länge mit FFMPEG und Büroklammer aufnehmen
- 19. Wie streame ich Video von meinem Server zum Client-Browser mit DirectShow?
- 20. Echtzeit-Videokodierung in DirectShow
- 21. Video mit Überlagerungstext und Bild aufnehmen
- 22. HTML5 Audio vom Standardmikrofon aufnehmen
- 23. Wie kann ich Frames aus Videos extrahieren (mit DirectShow)?
- 24. Wie kann ich ein Video mit Javascript in Youtube anhalten?
- 25. Wie kann ich das AMR-Audioformat auf dem iPhone aufnehmen?
- 26. Android Video aufnehmen ohne Audio
- 27. Wie kann ich dem Nutzer erlauben, ein Video auszuwählen und das Video dann in Android abzuspielen?
- 28. Ich verwende den folgenden Code, um ein Bild von der Kamera aufzunehmen. Aber ich kann das Video von diesem aufnehmen
- 29. Wie kann ich Videos in iOS aufnehmen (CUSTOM)?
- 30. Wie nehme ich ein Video mit GPUImage auf?