Flashhilfe.de - Flash Community

Video Live Stream Qualitäten [Flash 11]

 


AntwortenRegistrieren Seite1  

alphatwin#1
Benutzerbild von alphatwin
Beiträge: 9
Registriert: Feb 2008

02.07.2012, 14:32

Hallo!

Momentan beschäftige ich mit einem Live-Sendetool, welches Bild und Ton in 3 verschiedenen Qualitätsstufen raussenden soll. Normalerweise würde man einen Stream an den Server senden und dieser wandelt dann in 3 Qualitätsstufen um, jedoch würden wir es gerne so lösen, dass der Sender gleich 3 Streams sendet (low,mid,HD) und das ganze dann mit FP11 bei sich h264 Enkodiert.

Leider ist der eingebaute Encoder nicht in der Lage verschiedene Qualitätsstufen zu erzeugen, es zeigt sich kein Unterschied wenn ich da bei den Einstellungen schraube. Man kann ihn zwar benutzen aber keine Qualität oder Bandbreite oder dergleichen einstellen. Einstellen ließe sich ja nur die Qualität direkt über die Camera-Instanz. Aber davon kann man ja soweit ich weiss nur eine erzeugen oder?

Vielleicht jemand einen Rat?
Vielen Dank fürs Lesen!

Grüße
alphatwin
Schlagwörter: Camera, qualität, streaming
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

03.07.2012, 11:35

Hallo,

Du benutzt ein Live-Sendetool, mit einstellungen einer Camera-Instanz und hast ein Server - also hast du eine iPhone-App und benutzt ustream..
Also du musst schon konkreter werden ;)

Generell: HD-Video in h264, HQ und SD in flv mit sorenson oder On2VP6.
Das ganze wirst du im Server umwandeln müssen, da, wenn wir von youtube-Qualität ausgehen, deine 3-Videos ca 700kB/s (Kilobyte) - eine 50 Mbit-Leitung hat normal um die 330 kB/s.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
alphatwin#3
Benutzerbild von alphatwin
Beiträge: 9
Registriert: Feb 2008

Themenautor/in

03.07.2012, 21:17

Nein, ich habe keine Iphone-App sondern eine ganz normale Browser-Anwendung. Ist das nicht unerheblich, wenn ich frage, man mit dem internen Flash H264 Encoder drei verschiedene Streams rausschicken kann? Adobe hat den Encoder zwar eingebaut, aber man kann dort dann bei dessen Einstellungen keine Veränderungen erwirken. Ich wills ja abend nich über den Server runterkomprimiern lassen, sondern gleich lokal irgendwie. Würde ne Menge Wowza-Lizenzen sparn:D

Viel Dank trotzdem für die Antwort, auch wenn ich den Sinn nicht ganz verstanden hab:P
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

04.07.2012, 00:00

Ja, das ging aus deinem ersten Post leider nicht so hervor womit genau du streamen möchtest - deshalb die Nachfrage!

Die Qualität kannst du einstellen:
http://help.adobe.com/en_US/air/reference/html/flash/media/H264VideoStreamSettings.html#setProfileLevel()

Da die Werte "Level" und "Profile" geben die grundqualität an. Hier mal Beispiele:
http://www.adobe.com/devnet/devices/articles/mobile_video_encoding.html
Also zB Profile "Baseline" mit Level "3.1" wäre die standardmäßige Youtube SD-Quali. Mit den geerbetn Methoden (Im oberen Link unter "Hide Inherited Public Methods") kannst du dann mit "setMode" die Auflösung und Framerate setzen.

Ich habe es zwar noch nicht ausprobiert, aber theoretisch solltest du auch mehrer Streams erstellen können...
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Geändert von vindel am 04.07.12 um 00:01 Uhr
alphatwin#5
Benutzerbild von alphatwin
Beiträge: 9
Registriert: Feb 2008

Themenautor/in

04.07.2012, 09:30

Mehrere Streams sind kein Problem:

var nameStream:String = "Stream" + i;
var streams:Object = nameStream as NetStream;               
streamArray.push(streams);               
streamArray[i] = new NetStream(myRoot.connectserver.ServerConn);

Vielen Dank für die Antwort! Wenn ich das richtig verstanden habe kann man dann die Quali über die Baseline steuern. Mh, ich dachte ich hätte schon alles ausprobiert. Aber wenn ich setMode einstelle passiert ebend gar nichts. Nur wenn ich die settings vom H264-Encoder benutze dann zeigt sich eine Veränderung im Gegensatz zum Standart-Encoder. Aber anscheinend kann man da nur die Default-Einstellungen benutzen...

h264Settings.setProfileLevel("baseline","2");
h264Settings.setMode(800,600, 15);
h264Settings.setQuality(300*1024,0);

Die oberen Eisntellungen haben bei mir überhaupt nichts bewirkt. Nur die Einstellungen bei der Camera.

Vielen Dank fürs Antworten!
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

04.07.2012, 11:18

Die Einstellungen darfst du nicht auf den H264Settings setzen, sondern auf die Cam.
Ich glaube hier ist das unter "Setting Up H.264 Encoding" ganz gut erklärt:
http://www.realeyes.com/blog/2011/10/31/new-in-flash-player-11-encoding-live-video-to-h-264avc/
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
alphatwin#7
Benutzerbild von alphatwin
Beiträge: 9
Registriert: Feb 2008

Themenautor/in

04.07.2012, 11:47

Und da stehts ja dann auch:

// ALTHOUGH FUTURE VERSIONS OF FLASH PLAYER SHOULD SUPPORT SETTING
// ENCODING PARAMETERS ON h264Settings BY
// USING THE setQuality() and setMode() METHODS,
// FOR NOW YOU MUST SET THE PARAMETERS ON THE CAMERA FOR:
// BANDWITH, QUALITY, HEIGHT, WIDTH, AND FRAMES PER SECOND.

Über die Camera bringt mir das ja nichts mit dem Einstellen, weil ich will ja gleichzeitig drei Streams rausschicken von einer cam, das ist ja der Mist. :(

Danke fürs schaun!
vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

04.07.2012, 11:56

ok, das habe ich übersehen^^
Also 1. Ansatz: Kannst du dir 3 Kameras erstellen oder lässt das Flash nicht zu?
Oder: Was ist wenn du deine Kamera auf ein netStream packst, dann die Qualität änderst und dann auf den nächsten NetStream? (Vermute mal das geht nicht...)
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
alphatwin#9
Benutzerbild von alphatwin
Beiträge: 9
Registriert: Feb 2008

Themenautor/in

04.07.2012, 13:05

Leider geht nur eine Instanz von der Camera, bzw, übernimmt er dann die Einstellungen von den Instanzen für alle, was ziemlich bescheuert ist aber naja. Die Quali über den Netstream zu steuern geht leider auch nicht. Wäre nur möglich das Bild zu capturen und dann irgendwie an den server komprimiert alle 5 Sekunden zu schicken, aber ich denke das wird auch die Performance sprengen mit dem ADobe JPG-Encoder...

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de