Mpeg2 in GPU? Transcodieren

cristi_petre

Lt. Commander
Registriert
Feb. 2007
Beiträge
1.098
Hi
Habe eine tv Karte und will das tv Signal mit wintv extendet ins Netzwerk streamen doch als Streaming Server habe ich eine zacate API 350 mit 2x1,6 GHz und eine Radeon 6350 mit 4gb RAM und eine 60gb agility 3 SSD

Das Problem dabei ist sobald ich eine einigermassen vernünftige Qualität wähle steigt die. CPU Auslastung auf 100% und es fängt an zu stocken.

Kurz:das is nix :hammer_alt:

Gibt es eine Möglichkeit den datenstrom in der GPU zu berechnen?
Ergänzung ()

Oder vielleicht ein anderen Vorschlag vielleicht von euch.
Ergänzung ()

Gibt es vielleicht eine wintv USB Version die den tv Stream in Hardware transcodiert?
 
Hallo cristi_petre!

Grundsätzlich:
Sowohl die üblichen SD-MPEG2-Streams als auch die HD-H264-Streams müssten Durchschnittsbitraten von weit (!) unter 20 MBit/s haben (SD <10 MBit/s, HD <15 MBit/s).
Eine gute W-LAN-Verbindung und / oder übliches Fast Ethernet reichen dafür locker aus.

Mein Tip: Ohne Umrechnung in das Netzwerk streamen.
Oder gibt es da Probleme an anderer Stelle, die du noch nicht genannt hast?

Grüße,
cb-leser
 
Das Netzwerk ist ja gar nicht das Problem sondern die zu weniger Power des AMD zacate apu mit 2x1,6 GHz.wenn ich zum Beispiel die Auflösung von 240x320 wähle funktioniert es wunderbar und die CPU Auslastung ist bei ca 50-60% Wenn ich aber z.B. Schon 480x512 wähle z.B. Dann ist die CPU Auslastung ständig am Anschlag bei 100% und die Videos ruckeln immer nach ein par Sekunden.
Ich dachte wenn ich vielleicht eine andere tv Karte nehme die aber mpeg in Hardware macht und dann das Signal streame es eigentlich gehen müsste.
Als streamingsoftware nehme ich zur Zeit haupauge wintv extendet. Das gute daran ist jeder Browser mit Flash ist normalerweise in der Lage tv ab zu spielen also keine extra Anwendungen etc. und Kanal Wechsel und Senderliste werden auch im Browser schön übersichtlich dargestellt
Ich schaue zum Beispiel unterwegs mit dem iPad Simpsons :)

Ich weiß leider nicht ob ich und wenn ja wie ich das transcodieren der Grafikkarte übergeben könnte

Bei dvblink gibt es auch sowas aber da braucht man auch min. Ein phenom2 also wird da auch der Stream von der CPU berechnet.
 
Hallo christi_petre!

Jetzt reden wir aber aneinander vorbei. :)
Dass die CPU-Leistung das Problem ist, hatte ich schon verstanden.
Mein Vorschlag war daher gewesen, das Signal einfach ohne CPU-lastige Umwandlung im Original weiterzureichen.
Dann hat die CPU (bis auf evtl. den Traffic zu koordinieren) nichts weiter zu tun und auf deinem Endgerät kämen die Videos in voller Qualität an.
Da ich leider zu wintv extend(ed) (;)) keine Informationen (sprich: Handbuch) über eine mögliche Realisierung dessen finde, ist diese Vorgehensweise mein Vorschlag "zur Prüfung". :)

Grüße,
cb-leser

Edit: Habe gerade ein paar Screenshots vom Programm gesehen... es wird anscheinend eine (sehr ressourcenhungrige) H264-Konvertierung vorgenommen. An einer GPU-Unterstützung wurde / wird aber gearbeitet, geben die Einstellungen da nichts her?
 
Zuletzt bearbeitet:
Kein Thema.

Bin mittlerweile auch ein Wenig weiter. Für's Dekodieren gibt's ja eine entsprechende Funktion, allerdings bringt die recht wenig; das Encodieren ist ja der Leistungsfresser.
Und gerade bei H264 braucht man dafür (je nach Einstellung, habe Erfahrungswerte mit dem beliebten x264) jede Menge Leistung.

Ich weiß, dass dich das nicht wirklich weiter bringt, aber vielleicht sollte man sich einen anderen Weg suchen oder mit weniger Qualität leben.

Übrigens: wenn du wirklich "unterwegs" Streaming betreibst, dann läuft das ja über das Handynetz - und dann geht auch die CPU-schonende Variante "Original durchreichen" wegen fehlender Verbindungskapazitäten nicht auf.

Vielleicht Sendungen aufnehmen, in aller Ruhe umwandeln lassen und zu Hause auf's iPad überspielen?
Oder die Folgen gleich über Streamingdienste abrufen (soweit möglich)?

Grüße,
cb-leser

Edit: Wichtige Frage: Welches OS benutzt du auf dem "Server"?
Ab Vista sollte die Beschleunigung (DXVA) nämlich laufen!
Klick!
 
Zuletzt bearbeitet:
So ist esaber in der schlechten Qualität geht es ja also unterwegs werde ich sowieso nicht in hocher bzw. Höchster Qualität schauen aber zu Hause wo das WLAN alles mitmacht warum nicht. Was hast du gemeint mit dem x264 das hab ich nicht ganz verstanden.

Das würde glaub ich gehen aber dann ist ja der tv Streaming Server kein richtiger tv Streaming Server mehr so.
Schau mir grad par tv Karten an die noch zu allem übel extern sein müssen weil im Gehäuse kein Platz für eine Karte ist (mini itx) gehäuse.
 
@x264:
Ich weiß aus der Benutzung dieser Software, dass man für Encoding zu h264 enorme Rechenleistungen benötigt. Eigentlich nebensächlich, entschuldige bitte die Verwirrung.

@TV-Karte:
Eine neue Karte kannst du dir eigentlich sparen.
Digitalkarte bleibt Digitalkarte (DVB), da gibt es kaum Unterschiede.
Früher (Analogkarten) war das anders, da konnte man mit Karten, die einen MPEG2-Encoder hatten, die CPU entlasten.
Analog sollte aber kaum noch jemand sein Fernsehprogramm empfangen.
Das Problem hier ist daher sicherlich eine andere Baustelle.

Und daher wieder zur wichtigen Frage: Setzt du "zufällig" Windows XP (oder früher) bzw. eine darauf basierende Server-Variante auf deinem Zacate-System ein?

Grüße,
cb-leser
 
Nein Windows 7 mit aktuellsten Treibern
Okay und das heust wenn ich eine tv Kart mit integrierten mpeg2 Encoder kaufen würde würde ich die CPU nicht entlasten???

Ist DVB sd tv nicht auch mpeg2 nur DVB hd h.264?
 
Aaalso...

---früher---
analoge Übertragung.
Daher: unkomprimierte Übertragung des Fernsehbilds über den "PCI-Slot"; große Datenmengen.

Konsequenz: Bei Aufnahme entweder enormer Platzbedarf oder Echtzeit-Kodierung.

Für Echtzeit-Kodierung in MPEG(2) waren die CPUs damals aber i.d.R. recht schwach auf der Brust; genau so wie dein Zacate jetzt für h264-Encoding.

Lösung: Hardware-Encoder, d.h.: das Fernsehbild / -Signal wurde bereits auf der Karte in MPEG(2) umgewandelt.
Daher: CPU-Entlastung, weil der Datenstrom schon komprimiert ankam und nur auf die Festplatte geschrieben werden musste.
---/früher---

---heute---
TV-Signal kommt bereits digital (DVB) als MPEG2 (SDTV) oder h264 (HDTV) an.
Da muss nichts mehr komprimiert werden zum reinen ansehen/aufnehmen!
Entsprechend sinnfrei wäre heute ein solcher Chip, der damals das MPEG(2) herstellte, auf der Karte.

Heute ist eher sinnvoll: GPU mit (in deinem Falle) UVD3, der die CPU bei h264 und anderen Formaten entlasten kann - ein Decoder.

Außerdem teilweise als "Bonbon" zum schnellen (und nicht ganz so hochqualitativen) Umwandeln GPU-Encoding.
---/heute---

So in etwa kann man sich das vorstellen.

Da du Windows 7 und aktuelle Treiber verwendest, sollte es eigentlich funktionieren.
Wie sieht es denn mit dem Versionsstand von WinTV (extend) aus?
Unterstützt denn diese Version GPU Encoding?

Grüße,
cb-leser
 
Zuletzt bearbeitet:
Danke erst mal für deine ausführliche Antwort
Wenn ich es dann richtig verstanden hab dürfte es rein theoretisch keine Probleme geben bei der lokalen Wiedergabe des DVB-c Signals. Wenn ich mich nicht täusche hat zacate die uvd3 und auch dxva (ich hab leider noch nie was von dxva gehört) von uvd3 schon das ist der integrierte (Universal Video Decoder?)

Das ist die Frage unterstützt wintv extendet dxva und nutzt er den uvd3? Die Antwort darauf ist meiner meinung nach: NEIN.

Ich hab die neuste Version die es auf der deutschen Seite zum Download gibt.
 
Hallo cristi_petre!

Sry erstmal, ich habe zwischendrin meinen Post etwas editiert. ;)
DXVA habe ich aus meinem Post herausgenommen, das ist die "DirectX Video Accelleration" und evtl. blos für's Decodieren gut. Gleiche Funktion wie "UVD3", möglicherweise ist DXVA am Ende nur der Befehlssatz (die "Sprache"), den der UVD3 benutzt. Wegen Halbwissen auf diesem Gebiet habe ich DXVA entfernt und durch GPU-Encoding ersetzt. :)

Zu deinem Post:
DVB-C-Signal: richtig erfasst!
Lokale Wiedergabe dürfte kein Problem darstellen.
Möglicherweise sind UVD3 (und DXVA) aber doch aktiv, denn diese benötigst du (nur?) zum Decodieren. (Ich denke, spätestens jetzt wird dir einiges klar werden :))

Eine ganze Menge an Wissen dazu findet man hier (sehr gute Quelle!!!), unter anderem auch Folgendes:
"Encoder
Ein Stück Software, das Video in einem bestimmten Format erzeugen kann, aber nicht auch zum Abspielen gedacht ist. Z.B. erzeugt x264 H.264-Video.

Decoder
Das Gegenstück zum Encoder ist der Decoder, der zwar ein Videoformat abspielen, aber nicht erzeugen, kann."
(Quelle)

Soll heißen:
Beim abspielen (Decodieren) kann es durchaus sein, dass die GPU mithilft.
(HD-Inhalte der ÖR-Sender laufen sicherlich ruckelfrei?)

Dein aktuelles Problem:
Die GPU lehnt sich zurück, wenn es um's Encodieren (Erzeugen) bzw. Transkodieren (Umwandeln) für dein iPad geht.

Ich suche mal nach offiziellen Statements zur GPU-Beschleunigung für's Encodieren...

Grüße,
cb-leser
 
Super danke dir bin mal gespannt was dabei raus kommt werde gleich ausprobieren wie und was passiert wenn ich hd material schaue
 
Teil1:
Vorgedanke zu WinTV: Ist die AMD HD 6310 überhaupt "Stream/APP"-fähig (-> Encoding)?
Dazu gibt es widersprüchliche Angaben im Netz.
1, 2, 3.

Insbesondere 3 macht mir im Vorfeld Sorgen:
"Because the E-350 doesn’t include hardware-accelerated encode, we’re only able to test it in software-only mode and with decode acceleration enabled."
 
Okay also das erste hd da läuft grad der classicer papion . Die CPU Auslastung schwankt zwischen 39-55%
aber die anderen Programme wie pro7 etc. Funktionieren nicht da ich Kabel bw habe und wenn ich Den Patch von der Homepage für Kabel bw installiere dann geht es zwar lokal aber wintv extendet transcodiert auf einmal nichts mehr .
 
Also gut:

Fakt 1:
Die GPU wird von Stream/APP unterstützt! (Klick!)

Fakt 2:
Es gibt Programme, die die GPU (6310M) zum Encoding nutzen können. (Klick!)

Fazit daraus schon einmal:
Hardwarebeschleunigung ("AMD APP Acceleration") ist da.

Grüße,
cb-leser
 
Zuletzt bearbeitet:
:)Okay danke nochmals werd dann noch mal einige Sachen probieren falls du vielleicht was findest kannst du es ja Posten schon ziemlich spät:)
 
Ok!
Hier ein "schöner" Thread.
Beim PowerDirector hat man anscheinend ein ähnliches Problem.
Für die kleinen Brazos- und Zacate-Plattformen gibt es anscheinend nur selten Encoding-Unterstützung.
Aber es gibt sie. :)

Grüße,
cb-leser

Edit: Es verdichten sich die Hinweise, dass das "AMD Media Codec Package" (ehemals Avivo -> Transcoding) und evtl. der OpenCL-Treiber (beides "nur" optionale Komponenten zum Treiber) weiterhelfen könnten. Möglichst einen Neustart nach der Installation nicht vergessen. ;)
 
Zuletzt bearbeitet:
So wie ich weiter gelesen hab sieht man das die GPU des Zacate sogut wie nirgends ohne GEFUMMEL unterstützt wird. (Das heißt bestimmte einstellungen müssen vorgenommen werden und Plugins für Firefox etc. müssen installiert werden)

Bin gespannt was die im Haupauge support sagen zu dem THEMA HARWARE BESCHLEUNIGUNG beim Transcodieren etc.
 
Zurück
Oben