2009-05-23 3 views
3

Ich muss eine HD-Videoquelle (hallo def tv zum Beispiel) erfassen und in einem PC zeigen. Was soll ich verwenden? Ich würde eine Lösung mit Windows und C# bevorzugen, aber ich bin offen für andere Optionen.Zeige HD-Videoquelle

Vielen Dank im Voraus

+0

Ich glaube, das ist nicht-Programmierung-bezogen. –

+0

Andrew, weißt du was ich mit C# meine? –

Antwort

15

Ich würde empfehlen VLC oder mplayer/mencoder (Win32-Versionen). Sie können von Ihrer C# -Anwendung kommandozeilengesteuert sein. VLC unterstützt jedes DirectShow-Aufnahmegerät und verfügt über eine erhebliche Anzahl an erweiterten Erfassungs-, Transkodierungs- und Veröffentlichungsoptionen. Eine andere Option ist ffmpeg, die als Befehlszeilenprogramm oder als binding to C# verfügbar ist.

Ich persönlich würde empfehlen, eine Befehlszeilenversion eines dieser Tools über die C# -Bindung zu verwenden, da alle diese Programme dazu neigen, Patches und Features ziemlich schnell zu entwickeln. Es ist sehr wahrscheinlich, dass die C# -Bindung im Vergleich zum aktuellen stabilen (oder gar SVN) Build eines dieser Programme veraltet sein wird. Darüber hinaus finden Sie im Befehlszeilenformat viel mehr Dokumentation, da diese Werkzeuge normalerweise verwendet werden.

Schließlich ist es möglich, dies zu tun, indem Sie Ihre eigenen DirectShow Capture Filter erstellen. Diese Option kommt mit meiner BIG FAT WARNING, die auch mit Tools wie Capture Graph Builder DirectShow ein extrem komplexes und temperamentvolles Biest ist und viel Erfahrung erfordert, um richtig zu machen. Es leidet auch unter regelmäßigen API-Änderungen, Unterschieden in Windows-Plattformen und schlechter Dokumentation. Gehe diesen Pfad auf eigene Gefahr hinunter.

+1

Jetzt verwende ich etwas mit DirectShow, um eine TV-Quelle von 640x480px zu erfassen, aber es ist nicht hübsch ... Und es braucht einen Filter, um das Deinterlacing richtig zu machen. Und es läuft nicht reibungslos mit einigen Artefakten. Ich werde es mit VLC/MPlayer oder ffmpeg versuchen. –

+1

SpliFF Kennen Sie die Media Foundation? Es wird gesagt, dass es DirectShow ersetzen wird. Und danke für alle Infos. –

+1

Ich weiß, dass es in nichts als Vista funktioniert ... und vielleicht nicht einmal dann. Ich meine das Ändern von APIs, das ist wie beim 4. oder 5. Mal MS hat die Art und Weise verändert, wie Medien unter Windows funktionieren. – SpliFF

0

Hauppage Video für die Erfassung mehrerer Lösungen macht, einschließlich HD-Videoaufnahme. Ich glaube, sie haben Treiber für C#.

+0

Vielen Dank für die Antwort McWaffleStix, aber ich versuche eine Lösung zu finden, die hardwareunabhängig ist. –

+3

Was zur Hölle ist ein "Treiber für C#"? – SpliFF

0

Zuerst würde ich vorhandene Software betrachten, um dies zu tun. Beispielsweise kann Windows Movie Maker die Ausgabe einer HD-Videokamera anzeigen und erfassen. mplayer sollte einen Live-Feed von den meisten Capture-Karten/Kameras anzeigen können (und hat eine Vollbild-Option). Es gibt andere vollständigere Systeme, wie ScopeBox, OnLocation, UltraScope, oder jede andere NLE-Software (Adobe Premiere, Final Cut Pro usw.). Diese zielen auf die Videoproduktion ab, aber Sie erwähnen nicht wirklich, warum Sie das Video anzeigen oder aufnehmen.

Wenn Sie etwas von Grund auf neu schreiben möchten, sollte die DirectShow-API ein guter Ausgangspunkt sein.

Ich brauche eine HD-Videoquelle (hallo def tv zum Beispiel) erfassen

Sie können nicht von einem HD-TV erfassen, da es nur eine Anzeige ist ..

Sie kann von einer HD-Videokamera zu erfassen, aber Sie würden eine Capture-Karte benötigen - Blackmagic Design machen viele von ihnen, die billigste ist ihre $ 150 "Video Recorder", die via Komponente erfassen können, wird ihre ~ $ 200 "Intensity" card über HDMI (und über jede andere analoge Verbindung)

Sie sollten dann von der BlackMagic-Karte mit DirectShow oder QuickTime API (support page regarding this) aufnehmen können. Das gleiche sollte für andere Capture-Karten gelten (ich erwähne nur BlackMagic, weil sie eine der bekannteren Marken sind)

Eine Sache zu beachten, wenn Sie HD-Video (1920x1080p) erfassen, haben Sie es mit einem viele Daten. Die meisten neueren Computer sollten es gut handhaben, aber es erfordert immer noch eine Menge CPU- und IO-Geschwindigkeit.

Eine andere Sache, die Sie von etwas wie einem Bluray-Player nicht erfassen können, wie das HDCP (High-Bandbreite Digital Content Protection) System dies verhindert.

+1

Wenn Sie jemandem sagen müssen, DirectShow zu verwenden, dann sollten sie ihn nicht verwenden. Es dauert Jahre zu lernen, wie man es richtig und Monate für selbst einfache Aufgaben verwendet. Bei Windows-Versionen ist das anders. Es ist nicht leicht zu überdenken. – SpliFF

+1

Vielen Dank für die Info dbr. Ich weiß, ich kann nicht von einem Display erfassen, ich sprach über eine HD-TV-Quelle. –

1

Was ist Ihre beabsichtigte Quelle? Ein Echtzeit-TV-Signal, das Sie greifen und nutzen möchten, oder etwas, das bereits gespeichert ist? Wenn Sie ein Echtzeit-TV-Signal verwenden wollen, wird es schwierig, weil einige TV-Kanäle nicht wollen, dass wir es greifen und HDCP als Signalschutz oder andere Kopierschutzmethoden verwendet. Sie sollten darauf achten, dass