Autor Beitrag
Dalanie
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 11.08.10 11:12 
Ich habe iConf.Net SDK in mein Programm ,,eingebaut'' und bin mit dem Endergebnis nicht ganz zufrieden.
Die Qualität ist, sobald die Übertragung über den Server läuft ( mit der Serverapplikation von iConf.Net SDK) miserabel.
Es verzögert sich, es ziehen sich schlieren durch das Bild und insgesamt ist es sehr verpixelt.

Sobald ich direkt im LAN über IptoIP das Programm starte, habe ich ein gutes Bild ohne Verzögerung.

Das Programm ist dafür gedacht, dass später zwei beliebige Computer aus Deutschland (wahrscheinlich auch in einer Stadt oder in einem Ort)mittels des Programms Videotelefonieren können. Skype etc kommt dafür nicht in Frage, da nur das eine Programm auf dem Computer gestartet sein soll.

Nun zu meiner Frage: Ich denke nicht, dass ihr durch diese Aussagen mir sonderlich viel helfen könnt, aber vielleicht gibt es ja einige Spezialisten hier:
Kann ich theoretisch wie mit dem Skype-Prinzip arbeiten, also Peer to Peer? Es sollen erstmal Verbindungen von ZWEI Rechnern hergestellt werden.
Das heißt, ich könnte doch die Anfrage für die Konferenz über den Server laufen lassen, der die Computer dann direkt verbindet, ohne dass er noch zwischengeschaltet ist. Das würde für eine bessere Qualität sorgen, richtig?

Oder kann es sein, dass irgendwelche Eingaben falsch getätigt wurden, sodass auch mit einem zwischengeschalteten Server es möglich sein muss, dass eine gute Bildqualität bei einer Videokonferenz reealisiert werden müsste.
Im Lan geht es wie gesagt, sobald der Server dazwischen ist, wird die Qualität sehr schlecht und das Bild sowie der Ton kommen auch nur verzögert an.

Kann mir da jemand weiterhelfen?
Kennt jemand vielleicht alternativ-SDK's ? DIe Entwicklerumgebung ist Visual Studio.
Momentan im Gebrauch: iConf.Net Video Conferencing SDK von avspeed

Danke euch vielmals!

Falls es in eine andere Kategorie gehört, so bitte ich den dafür Zuständigen, diesen Beitrag zu verschieben. Ich konnte nicht direkt eine Kategorie erkennen, die mit dem Thema zusammenhängt.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 11.08.10 13:13 
user profile iconDalanie hat folgendes geschrieben Zum zitierten Posting springen:
Die Qualität ist, sobald die Übertragung über den Server läuft ( mit der Serverapplikation von iConf.Net SDK) miserabel.
Es verzögert sich, es ziehen sich schlieren durch das Bild und insgesamt ist es sehr verpixelt.
Überleg dir mal was der Server da leisten muss. Abgesehen vom Up/Downstream der auch noch stimmen muss! Zur Software kann ich nichts sagen. Aber schau Dir mal die Leistungskurve an im Server bei sowas!

user profile iconDalanie hat folgendes geschrieben Zum zitierten Posting springen:
Sobald ich direkt im LAN über IptoIP das Programm starte, habe ich ein gutes Bild ohne Verzögerung.
Muss man ja nichts dazu sagen oder!?

user profile iconDalanie hat folgendes geschrieben Zum zitierten Posting springen:
Das heißt, ich könnte doch die Anfrage für die Konferenz über den Server laufen lassen, der die Computer dann direkt verbindet, ohne dass er noch zwischengeschaltet ist. Das würde für eine bessere Qualität sorgen, richtig?
Dazu muss der Server, für sowas, optimal eingerichtet sein(glaube sogar 2 Netzkarten und zwei Leitungen).Denn es läuft doch alles über den Server! Hinzukommt noch Dein eigener schmaler Upstream, der ja eigentlich nicht dafür ausgelegt ist!

user profile iconDalanie hat folgendes geschrieben Zum zitierten Posting springen:
Oder kann es sein, dass irgendwelche Eingaben falsch getätigt wurden, sodass auch mit einem zwischengeschalteten Server es möglich sein muss, dass eine gute Bildqualität bei einer Videokonferenz reealisiert werden müsste.
Wie schon oben erwähnt, je nach Zuschaltung der Teilnehmer muss das ganze auch so ausgelegt werden!!
Für sowas gibt es glaube ich sogar ne Berechnung was man für Datenleitungen benötigt, für vernünftige Videoqualität :wink: , hab ich irgendwo mal gesehen!
Firmen zahlen für Videokonferenzen ein haufen Geld, weil die Technik dafür stimmen muss.
Welche Sofware dafür benutzt wird?
Auf alle Fälle, wenn es richtig Gut werden soll, Kostet es was!

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!

Für diesen Beitrag haben gedankt: Dalanie
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 11.08.10 13:28 
Alternativ machst du es wie SIP:
Aushandlung der verbindung per SIP über Server, danach RTP verbindung Client<->Client
So funktioniert zumindest VOIP
Dürfte auch mit Video klappen.
Dalanie Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 11.08.10 13:35 
Hallo Alf,
vielen Dank erstmal für deine Antwort. Vielleicht ist die Anforderung für den Server oder Computer zu hoch.

Flamefires Vorschlag klingt Interessant.

Wobei ich gerade mitgeteilt bekommen habe, dass der Server momentan sowieso nur als Vermittler gilt.
Es ist also eine Ip2Ip Übertragung vorhanden, Flamefires Vorschlag wird also schon verwendet.

Nur Frage ich mich dann, wieso die Bildquailität so schlecht ist. Auffallend ist auch, dass der CPU eine AUslastung von über 90% hat, sobald das Programm die Übertragung startet. Zudem besitzt der eine von den beiden Testcomputern nur 1GB Ram sowie einen Intel Atom CPU 230 1,60GHz.
Könnte es an der relativ schwachen CPU liegen? Oder am RAM?

grüße
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 11.08.10 13:59 
Naja, so richtig ohne Server funct ja auch VOIP nicht, er bleibt immer dazwischen! Der unterschied ist nur der, das er den Datenstrom als solches, gleich weiterschaufelt! Aber trotzdem über seine Netzkarte alles abläuft. Da Video nun mal nen höheren Datenstrom benötigt als nur Musik oder Sprache, ist dies für die internen abläufe ne riesen Dauerbelastung. Wobei die "Software" ihr eigenes dazu beiträgt, wie effizient sie es macht. Alles andere habe ich ja schon erwähnt!
Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Dalanie Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 11.08.10 14:08 
Klingt logisch ^^ @Alf...

ich bin hier nur gerade am Verzweifeln...
Kann die schlechte Darstellung und Übertragungsrate irgendwie an falschen PC Einstellungen liegen?

IM lan funktioniert es wunderbar...


grüße
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 11.08.10 14:13 
Ich weiss ja nicht mit welcher Auflösung Du die Videos anschaust / überträgst. Vielleicht mal da an der schraube drehen. Je kleiner die Auflösung oder Bilder/sec bei der Ansicht je schneller kann das Bild aufgebaut werden! Das gleiche gilt auch andersrum!

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Dalanie Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 11.08.10 14:18 
ich habe leider nicht all zu viele Auswahlmöglichkeiten.

Folgende Punkte kann ich editieren:
videoCodec: H.263
IFrameFrequency: Sets the amount of of P-Frames before another I-Frame will be generated.
bitRate: Sets the bitrate at which the frames will be encoded

Kann also lediglich an den IFrames und an der bitRate rumschrauben. In einem Testprogramm habe ich diese beiden Werte stark verändert, aber es blieb quasi alles beim Alten. Eventuell ist dieses Testprogramm nicht in Ordnung.

Kannst du was mit I-Frames und der bitRate anfangen? Momentan sind die Werte bei IFrame:200 und bitRate:32000

grüße
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 11.08.10 14:29 
mhh... Gute Frage :mrgreen:
Hier kommt es darauf an was die Software selber dazu sagt. IFrames sind die Bilder/sec stell die mal auf 25 ein. Und das andere ist die Qualität der Bilder. Ebenfalls nach unten schrauben!

bzw. schau Dir das mal an, vielleicht bringt es dir was!
oder dies :wink:
Da steht sogar drin bei welcher Auflösung die MBit/s sind! Dann kannst Du Dir ja selber ausrechnen was Du, bei vernünftiger Qualität, an Datenübertragung benötigst und was der Server leisten muss!

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mi 11.08.10 18:13 
Es gibt auch eine Skype-API :P

developer.skype.com/
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 11.08.10 18:36 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
mhh... Gute Frage :mrgreen:
Hier kommt es darauf an was die Software selber dazu sagt. IFrames sind die Bilder/sec stell die mal auf 25 ein.


Falsch. Vereinfacht gesagt gibt es gibt drei Arten von Frames: I, P und B Frames. I-Frames sind ein komplettes Bild, verbrauchen also viel Speicher, enthalten aber alle Pixel. Ein P-Frame hingegen verbraucht weniger, da es nur Referenzbilder zu anderen P-Frames und zum vorherigen I-Frame darstellt.

200 P-Frames zwischen I-Frames ist etwas ungewöhnlich. Üblich sind etwa 8-20, bei Webcams manchmal bis zu 80.

Btw: H.263 ist MPEG-4...

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 11.08.10 19:15 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Naja, so richtig ohne Server funct ja auch VOIP nicht, er bleibt immer dazwischen! Der unterschied ist nur der, das er den Datenstrom als solches, gleich weiterschaufelt! Aber trotzdem über seine Netzkarte alles abläuft. Da Video nun mal nen höheren Datenstrom benötigt als nur Musik oder Sprache, ist dies für die internen abläufe ne riesen Dauerbelastung. Wobei die "Software" ihr eigenes dazu beiträgt, wie effizient sie es macht. Alles andere habe ich ja schon erwähnt!
Gruss Alf


Nicht ganz korrekt.
Wärend eines Gesprächs wird der Server nicht mehr gebraucht. Der vermittelt nur den verbindungswunsch. Ähnlich wie früher in der telefonzentrale jemand Stecker umgestöpselt hat. Stell dir vor du hättest das Gespräch über diese Person führen müssen "Können sie xyz ausrichten, dass..."
Wäre sehr lustig.

Das einzige was noch zwischen Usern hängt ist die VOIP Anschlusstelle. Also z.b. ne Fritzbox oder direkt das VOIP Telefon.
Manchmal gibt es noch SIP-Proxies, bin mir aber gerade nicht sicher, ob das Gespräch da drüber läuft. Eigendlich nicht, denn das läuft ja über RTP.

@Dalanie: Versuch mal ausfindig zu machen, über welches protokoll das läuft. Wenns TCP ist, dann nicht gut. UDP / RTP ist gut. In diesem Fall.

Zwecks Auslastung: Könnte ein Problem ein.
Verzögerung: Normal
Schlieren: Zu wenig IFrames AFAIK
Verpixelt: Zu wenig bitrate
Erhöhung von beiden führt zu mehr Bandbreiten verwendung. Erhöhen der IFrames dürfte die CPU Auslastung etwas senken...
Erhöhen der IFrames heißt in deinem Fall IFrameFrequency runter

Für diesen Beitrag haben gedankt: Dalanie
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mi 11.08.10 23:05 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Nicht ganz korrekt.
Wärend eines Gesprächs wird der Server nicht mehr gebraucht. Der vermittelt nur den verbindungswunsch. Ähnlich wie früher in der telefonzentrale jemand Stecker umgestöpselt hat.
Jo genau, und über welches Netzwerk läuft es? :wink: Der Server selbst, kümmert sich danach nicht weiter darum, was mit der Verbindung passiert, aber die Verbindung läuft trotzdem über sein Netzwerk.(es gibt ja nicht plötzlich ne andere Datenleitung dafür)

user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
Falsch. Vereinfacht gesagt gibt es gibt drei Arten von Frames: I, P und B Frames. I-Frames sind ein komplettes Bild, verbrauchen also viel Speicher, enthalten aber alle Pixel. Ein P-Frame hingegen verbraucht weniger, da es nur Referenzbilder zu anderen P-Frames und zum vorherigen I-Frame darstellt.

Auch nicht ganz richtig! 1I-Frame ist ein einzelnes Standbild 25 Bilder davon hintereinandergelegt ergeben 25Frames/sec. Das andere dient zur Digitalen bearbeitung um den Datenstrom klein zu halten. Ich benötige beim bearbeiten bzw. codieren nicht jedes Standbild sondern nur die Veränderung. Dadurch sind die anderen P , B entstanden. Die dienen als referenz zum Original. Aber das hast Du ja schon gesagt. :wink:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!

Für diesen Beitrag haben gedankt: Dalanie
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Mi 11.08.10 23:13 
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Nicht ganz korrekt.
Wärend eines Gesprächs wird der Server nicht mehr gebraucht. Der vermittelt nur den verbindungswunsch. Ähnlich wie früher in der telefonzentrale jemand Stecker umgestöpselt hat.
Jo genau, und über welches Netzwerk läuft es? :wink: Der Server selbst, kümmert sich danach nicht weiter darum, was mit der Verbindung passiert, aber die Verbindung läuft trotzdem über sein Netzwerk.(es gibt ja nicht plötzlich ne andere Datenleitung dafür)


Nope. Wenn ich mit jemand in Bonn reden will, kann es sein, dass ich nen Server in Berlin kontaktiere, der mir den Kontakt herstellt. Als Prinzipiell es beim Empfänger "klingeln" lässt.
Wenn der abnimmt, wird eine NEUE Verbindung hergestellt, die auf einem ANDEREN Protokoll aufbaut. Und die ist direkt. Es macht keinen Sinn sich über Berlin mit Bonn zu verbinden (es sei denn, die beste Route führt zufällig da lang)
Über welches Netzwerk es läuft? Nennt sich WAN (Internet) und da gibt es durchaus die eine oder andere alternative Datenleitung. Nichtmal die verbindung mit dem Server läuft über eine einzige...

Bild
Mal was Wiki zu SIP sagt.
Da sieht man ganz gut, dass erst ver SIP über Zwischenpunkte was ausgehandelt wird, aber am Ende die Daten per RTP ohne die Punkte übertragen werden. Die haben dann nichtmal ne Vermittlungsaufgabe. Leiten also auch nix weiter.
Wäre auch viel zu langsam (s. meim telefonbeispiel)

Für diesen Beitrag haben gedankt: Dalanie
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 12.08.10 00:27 
Das weiss ich Doch, das ein Provider nicht nur eine Leitung hat, oder ebend es über ein ganz andern Proxy läuft als man sich eingeklingt hat. siehe Bild
Bei einer VideoKonferenzschaltung läuft es ja im Prinzip auch nicht ganz anders. Nur sind die Datenströme imens, was da abgeht(bei guter Qualität). Wenn er einen eigenen kleinen Server verwendet, egal ob gemietet oder im Betrieb, nützen ihm , die vielen Leitungen draussen auch nix, die ihm evtl zu verfügung stehen, es würde trotzdem über seinen Server Laufen.
Erschwerend kommt ja noch, der kleine Upstream übers Inet dazu. Was ja bei Qualitäts Videokonferenzen nicht der Fall ist. Denn so wie ich ihn verstanden habe soll es ja übers Inet gehen. Ne 3 oder 5 Verbindung is ja jetzt schon kein Problem mit der normalen Übertragung. Nur die Bilder mhhh... Vollbild ist damit kaum zu erreichen oder?

Gruss Alf
Einloggen, um Attachments anzusehen!
_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Dalanie Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 12.08.10 09:17 
Hallo Alf und Flamefire!
echt nett von euch, mir soviele Tipps und Informationen zu geben!

Zwecks IFrames und bitrate kann ich erst nachher die Software neu compilieren.
Das mit dem TCP und UDP/RTP verstehe ich nicht so ganz und weiß daher auch nicht, wo ich das nachschauen kann und wie ich dies ggf. ändern kann. Vielleicht könntet ihr mir dort nochmal einen Tipp geben.
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Do 12.08.10 10:17 
@ALF: Was willst du denn ständig mit einem Server?
Server ist per Definition ein Programm, das an einem Port auf einem bestimmten PC auf eingehende Verbindungen wartet.

Und bei einer Videokonferenz mit 2 Teilnehmern laufen genau 2 Server: Je einer auf dem Teilnehmer-PCs
Da ist jeder andere Server vollkommen egal! Die Verbindung steht direkt! Ähnlich P2P ohen irgendeinen Server.
Warum sollte man die OSI-Schichten 4-7 da nochmal bemühen? Lohnt nicht. Zu teuer (langsam)

Das einzige ist die EINE Leitung von bzw zum Client PC, also der Internet-Upstream. NUR da wird es eng.
Dein Bild ist zu klein um was zu erkennen. Aber so weit es sich erahnen lässt, sind das nur Hops. Nix davon ist ein Server. Sind alles Router/Switches.

@OP: 2 Möglichkeiten:
1) Nachfragen/Nachlesen
2) Verbindungen wärend des Betriebs auflisten (auf den Client PCs von dem Programm) Wenn da nur TCP steht->TCP. Wenn was mit UDP dabei ist, ist es möglicherweise UDP und dann vieleicht RTP.

Für diesen Beitrag haben gedankt: Dalanie
Dalanie Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Do 12.08.10 10:46 
Was TCP ist, wusste ich. RTP und UDP habe ich gegoogled un weiß es nun auch. Nur leider habe ich keine Ahnung, wie ich die Verbindungen während des Betriebs aufliste.

Angenommen es steht nur TCP dort, könnte man einfach UDP/RTP einstellen?

grüße
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Do 12.08.10 11:32 
Ich glaube netstat ist der Konsolenbefehl unter windows. Erstelle also eine Videoverbindung und warte bis die läuft.
Wärend des betriebs gibts du dann in ner Konsole netstat ein (mit den richtigen parametern) und siehts, welche verbindungen die exe hat.

Umstellen geht vermutlich nicht. Brauchst dann also was andres
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 12.08.10 12:19 
Eine P2P Verbindung kann eigentlich nicht sein, zumindest nicht bei bestehenden Programmen wie Skype etc.

Würde Skype nur als Kontakt-Person agieren und später eine P2P verbindung aufbauen, dürfte es schwer werden in Netzwerken durch die Rouer zu kommen mit der P2P verbindung. Und ich wüsste nicht das man für Skype extra einen Port-Forwarden muß im Router.

Insofern sind die Skype Teilnehmer nur Clients und alle daten müßen gezwungener maßen über den Skype-Server gehen. Zumindest wüsste ich nicht wie es anders möglich wäre ohne eben die Probleme die eine P2P verbindung mit sich bringt.

Aya

_________________
Aya
I aim for my endless dreams and I know they will come true!