Hallo,
ich programmiere an einem MediaPlayer auf Basis von QT. Nun bräuchte ich eine Möglichkeit, Audio- und Video-Dateien zu streamen und abzuspielen.
Dabei könnte ich das Streaming selbst übernehmen, also Stream empfangen und puffern.
Nur wie geht es dann weiter, was mache ich mit dem "Rohdaten-Stream"?
Am liebsten würde ich ffmpeg nutzen, da dies alle Formate unterstützt (h.264, mpeg, mp3, flac, DTS, AC3, Container: mkv, mka), die ich benötige und unter der LGPL steht.
Könnte ich ffmpeg (das sich ja auch nochmal zersplittert hat) einfach den Rohdaten-Stream übergeben?
Und wie würde es dann weitergehen? Würde ffmpeg Sound-Dateien einfach wiedergeben? Oder würde es mir einfach nur einen Stream mit decodierten Audio- und Video-Daten geben, die ich dann noch selbst darstellen muss?
Wie stell ich dieses dar? z.b. mit SDL?
Wie ihr seht, habe ich auf diesem Gebiet leider noch nicht sonderlich viel Erfahrung. Wäre nett, wenn mir einer einen groben Überblick verschaffen könnte. Quellcode bräuchte ich nicht, eher eine Art Plan, wie ich was in welcher Reihenfolge machen muss, als: Streamen -> ffmpeg -> ??? -> Ausgabe
Wäre echt nett, wenn ihr mir da etwas weiterhelfen könntet
Viele Grüße
Julian
Audio/Video-Wiedergabe und Streaming
Audio/Video-Wiedergabe und Streaming
IOBlogger.de - digitales Leben
-
- Beiträge: 170
- Registriert: 26. Januar 2009 09:19
- Wohnort: 127.0.0.2
Hallo Julian,
also wenn du das mit Puffer und Streamen hast brauchst du im Grunde genommen gar nicht viel mehr. Videodateien sind im Grunde genommen auch nur Streams, wer will sich schon eine DVD erstmal in den Speicher laden lassen? Heißt, dass du dir einfach das File entsprechend nimmst und es streamst. Die Empfangsseite packt die Daten in den Puffer und spielt das ganze entsprechend ab. Natürlich sollte eine Funktion rein, dass das Programm nicht denkt, dass das File zu Ende ist, wenn der Puffer mal aus Versehen leer werden sollte.
Mfg androphinx
also wenn du das mit Puffer und Streamen hast brauchst du im Grunde genommen gar nicht viel mehr. Videodateien sind im Grunde genommen auch nur Streams, wer will sich schon eine DVD erstmal in den Speicher laden lassen? Heißt, dass du dir einfach das File entsprechend nimmst und es streamst. Die Empfangsseite packt die Daten in den Puffer und spielt das ganze entsprechend ab. Natürlich sollte eine Funktion rein, dass das Programm nicht denkt, dass das File zu Ende ist, wenn der Puffer mal aus Versehen leer werden sollte.
Mfg androphinx
Ich habe jetzt mal etwas Phonon getestet und bin eigentlich sehr zufrieden damit
Nur die unterstützen Medien-Typen machen mir etwas Probleme.
Der VLC unterstützt alle Medien-Typen, die ich brauche. Wie kann ich Phonon dazu bringen, den VLC als Backend zu nutzen?
Weil unter Windows funktioniert ohne zusätzliche Codecs u.A. flac nicht :/
Nur die unterstützen Medien-Typen machen mir etwas Probleme.
Der VLC unterstützt alle Medien-Typen, die ich brauche. Wie kann ich Phonon dazu bringen, den VLC als Backend zu nutzen?
Weil unter Windows funktioniert ohne zusätzliche Codecs u.A. flac nicht :/
IOBlogger.de - digitales Leben
-
- Beiträge: 170
- Registriert: 26. Januar 2009 09:19
- Wohnort: 127.0.0.2
Mit Phonon hab ich mich jetzt noch nicht so beschäftigt. Eine andere Idee wäre es den MPlayer zur Wiedergabe zu verwenden, wie das geht findest du hier:
http://qtforum.de/forum/viewtopic.php?t=12490
Ansonsten musst du mal schauen, ich glaube es gab bei Phonon unterschiedliche Module, je nachdem welches Backend verwendet werden sollte, aber wie gesagt, ist nicht mein Themengebiet
Mfg androphinx
http://qtforum.de/forum/viewtopic.php?t=12490
Ansonsten musst du mal schauen, ich glaube es gab bei Phonon unterschiedliche Module, je nachdem welches Backend verwendet werden sollte, aber wie gesagt, ist nicht mein Themengebiet
Mfg androphinx
Phonon ist recht easy fuer dich zu benutzen, weil die QT ja die Anbindung zu hat. Leider sind Audio/Video backends eine zutiefst plattformabhaengige Sache. Ob Du deine Codecs alle unter linux und windows gleichzeitig zum laufen bekommst, steht in den sternen.
Ich hab z.b. einige mkv dateien, die sind sehr exotisch codiert, unter windows mit bestimmten decodern lassen die sich fehlerfrei abspielen, unter linux bisher keine chance ...
falls du tiefer in die materie einsteigen willst, könntest du die backends selber ansprechen, dafuer gibts im Netz auch dokus ... iss um welten komplexer wie phonon zu benutzen, aber du waerst freier was die auswahl des backends angeht.
Übrigens unter linux:
phonon -> gstreamer -> ffmpeg sollte gehen ...
gstreamer kann die ffmpeg libs zum decodieren nehmen, und phonon wiederum gstreamer als backend.
keine ahnung wie das unter windows geht ^^
Ciao ...
Ich hab z.b. einige mkv dateien, die sind sehr exotisch codiert, unter windows mit bestimmten decodern lassen die sich fehlerfrei abspielen, unter linux bisher keine chance ...
falls du tiefer in die materie einsteigen willst, könntest du die backends selber ansprechen, dafuer gibts im Netz auch dokus ... iss um welten komplexer wie phonon zu benutzen, aber du waerst freier was die auswahl des backends angeht.
Übrigens unter linux:
phonon -> gstreamer -> ffmpeg sollte gehen ...
gstreamer kann die ffmpeg libs zum decodieren nehmen, und phonon wiederum gstreamer als backend.
keine ahnung wie das unter windows geht ^^
Ciao ...
Nunja, laut wiki wird auch der VLC als Backend unterstützt, unter Windows und Linux:
http://en.wikipedia.org/wiki/Phonon_%28KDE%29
Da der VLC alles abspielt, was ich brauche, wäre es ja am besten, den als Backend zu nutzen. Doch wie gebe ich unter Windows/Linux das Backend vor, welches Phonon nutzen soll?
http://en.wikipedia.org/wiki/Phonon_%28KDE%29
Da der VLC alles abspielt, was ich brauche, wäre es ja am besten, den als Backend zu nutzen. Doch wie gebe ich unter Windows/Linux das Backend vor, welches Phonon nutzen soll?
IOBlogger.de - digitales Leben
Unter Linux mit KDE ist Phonon ne systemschnittstelle. Einstellen tust das Backend da "enfach" in Systemsteuerung quasi
http://wiki.ubuntuusers.de/phonon
für windows:
phonon_vlc.dll - phnon VLC backend.
also bau dir mal ne version von deinem Prog
unter den plugins muesstest du dann doch das phonon_ds.dll plugin haben. Das mal woanders "hinsichern" und da das phonon_vlc.dll dafuer reinspielen, und beten das deine exe und dieses plugin mit dem selben compiler gebaut sind. Wo ne fertige dll herbekommst ... keine Ahnung ^^
Wenn nicht, die sourcen vom vlc-phonon-Plugin besorgen und selber bauen:
keine Ahnung wo man die sourcen bekommt, winkde.org ist vielleicht ne Anlaufstelle ....
oder
https://gitorious.org/phonon/phonon-vlc
Ciao ...
http://wiki.ubuntuusers.de/phonon
für windows:
phonon_vlc.dll - phnon VLC backend.
also bau dir mal ne version von deinem Prog
unter den plugins muesstest du dann doch das phonon_ds.dll plugin haben. Das mal woanders "hinsichern" und da das phonon_vlc.dll dafuer reinspielen, und beten das deine exe und dieses plugin mit dem selben compiler gebaut sind. Wo ne fertige dll herbekommst ... keine Ahnung ^^
Wenn nicht, die sourcen vom vlc-phonon-Plugin besorgen und selber bauen:
keine Ahnung wo man die sourcen bekommt, winkde.org ist vielleicht ne Anlaufstelle ....
oder
https://gitorious.org/phonon/phonon-vlc
Ciao ...
Ich weiß leider nicht mehr die genaue Quelle (ganz dumpf schwirrt irgend etwas kde-seitiges herum (wahrscheinlich ein Blogpost über die Entwicklung von phonon-vlc...)):
vlc hat ein Problem mit parallel abgespielten Sounds im selben Prozess - geht einfach aktuell nicht! phonon mit vlc-Backend geht deshalb auch nicht.
Entweder hoffen, dass es in naher Zukunft gefixt wird, oder auf eine andere Lösung ausweichen (z.B. http://cgit.freedesktop.org/gstreamer/qt-gstreamer).
// edit:
Ja, Erinnerung hat mich nicht getäuscht
http://apachelog.wordpress.com/2011/04/ ... vlc-0-4-0/
In den Kommentaren, Antwort auf Frage von "JR" betreffend "preferred backend", wobei ich damals die Antwort von Rémi Denis-Courmont noch nicht gesehen hatte, und mir das auch nicht so viel sagt, da ich mit den Interna von VLC nicht vertraut bin.
vlc hat ein Problem mit parallel abgespielten Sounds im selben Prozess - geht einfach aktuell nicht! phonon mit vlc-Backend geht deshalb auch nicht.
Entweder hoffen, dass es in naher Zukunft gefixt wird, oder auf eine andere Lösung ausweichen (z.B. http://cgit.freedesktop.org/gstreamer/qt-gstreamer).
// edit:
Ja, Erinnerung hat mich nicht getäuscht
http://apachelog.wordpress.com/2011/04/ ... vlc-0-4-0/
In den Kommentaren, Antwort auf Frage von "JR" betreffend "preferred backend", wobei ich damals die Antwort von Rémi Denis-Courmont noch nicht gesehen hatte, und mir das auch nicht so viel sagt, da ich mit den Interna von VLC nicht vertraut bin.