Seite 1 von 1

Movieplayer, es gibt ne alternative .......

Verfasst: Mi 28 Jan 2004, 22:06
von Mahon
In der XBox von Microdoof läuft seit geraumer Zeit, unter Linux ein Movieplayer der Extraklasse. Erstens spielt er alles und zweitens ist das System schon ziemlich ausgereift , was vorspulen usw. betrifft......

Ich bin nun kein Programmiergenie, vor allem hatte ich noch nicht so viel mit Linux zu tun, aber wäre es nicht möglich den in ein Image einzubauen ?

[schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Ich hoffe ich bin nicht der einzige Hier mit Visionen....[/schild]

Verfasst: Do 29 Jan 2004, 0:26
von DJ Mangalla
Die XBOX hat auch mehr Power z.B.

Verfasst: Do 29 Jan 2004, 0:51
von Truri
Jep, das läßt sich nicht bewerkstelligen. Denn die dBox hat im vergleich nur einen mickrigen Prozessor drauf, der es nie packen würde das alles alleine zu machen.
In der XBOX werkelt ja schließlich ne 700MHz (glaube PIII) CPU...
Das sind ganz andere Voraussetzungen... Leider :wink:

MFG
Truri

Verfasst: Do 29 Jan 2004, 8:03
von Mahon
ich würde das Thema jetzt nicht gleich abschmeterrn, angenommen Leistung wäre genug da, würde mann die software drauf packen können ?

Verfasst: Mi 17 Mär 2004, 11:43
von b.michael
Also ich nutze die Xbox, um die mit JTG gestreamten Filme mir anzusehen.
Allerdings habe ich mit der Xbox Evox und nicht Linux. Als Mediaplayer benutze ich den XBMC v. 15.01.2004. Das ist die erste Version, welche auch
die Files größer 2 GB unterstützt. Das geht super. Auch in Dolby Digital.
Schnelles Vor - und Rückspulen ist auch problemlos möglich.

Verfasst: Mi 17 Mär 2004, 11:49
von neutron666
Tja wie gesagt, die XBOX spielt das selbststaendig ab, ohne ein vlc oder aehnliches mit nem verbundenen pc. Die Power langt einfach nich auf dem kleinen ppc prozessor der Dbox2. Leider.

Verfasst: Do 18 Mär 2004, 18:02
von Mahon
Ich kann das nicht ganz glauben, wieso brauch ich da enorme rechenpower um einen Stream abzuspielen, ich muss ja nicht aus dem bild ein mpg stream berechnen, sondern nur mit der box den mpg stream abspielen, ich kann mir wirklich nicht vorstellen wieso das ein so großes Problem darstellen sollte.....

Verfasst: Do 18 Mär 2004, 20:06
von jmittelst
Nimm mal einen äh - sagen wir mal Pentium 200 oder so und versuch mal dort diverse Streams und DVD abzuspielen. Die Box hat nur einen PPC mit 66Mhz. Noch Fragen?
cu
Jens

Verfasst: Fr 19 Mär 2004, 12:16
von turmann
Könnte man nicht die Decodierung auf dem Rechner machen lassen, auf dem die Files liegen und dann den unkomprimierten Stream zur Box schicken? Dann würde doch die Rechenzeit fürs Decodieren wegfallen, oder? Oder wäre dann die Übertragungsrate zu groß für 10Mbit?

Tom

Verfasst: Fr 19 Mär 2004, 12:28
von jameskirk
turmann hat geschrieben:Oder wäre dann die Übertragungsrate zu groß für 10Mbit?
definitiv zu gross!
Probier mal 10 sek (nimm sicherheitshalber nicht viel mehr) deines MPEG2 streams komplett zu dekodieren bzw. dekompremieren.
Dann die Groesse des Files durch die Dauer des Streams (in sek) dividieren und schauen was da rauskommt.

cu

Verfasst: Fr 19 Mär 2004, 12:48
von petgun
Könnte man nicht die Decodierung auf dem Rechner machen lassen, auf dem die Files liegen ...
...genau das geht doch alles jetzt schon mit VLC und dem Movieplayer auf der Box.....wem das nicht reicht der kann sich ja so einen neuen:
DIvX-tauglicher DVD-Player mit 802.11g-WLAN
LinkSys präsentiert auf dem CeBIT-Stand seiner Muttergesellschaft Cisco (Halle 13, Stand 58) einen DivX-tauglichen DVD-Player mit integriertem WLAN-Streaming-Client. Das WMLD54G getaufte Geräte unterstützt die drahtlose Datenübertragung von Audio- und Videodateien vom PC via WLAN nach 802.11g (brutto 54 MBit/s), besitzt aber auch noch einen Ethernet-Anschluss.

Der Player spielt Videodateien (DivX 3.11/4.x/5.0.x und MPEG-2/-3/-4) sowie Audiodateien (MP3 und WMA), die er auf CD beziehungsweise DVD oder via LAN vom PC angeliefert bekommt. Ebenso kann das Gerät Digitalfotos in diversen Formaten auf dem Fernseher anzeigen, darunter JPEG, GIF und TIFF. Für Heimkino-Sound besitzt der WMLD54G neben einem SPDIF-Ausgang einen integrierten Dolby-Digital- und DTS-Decoder.

Quelle
kaufen.

cu,
peter

Verfasst: Fr 19 Mär 2004, 15:43
von Mahon
hmm muss mann einen mpg stream noch decodieren ? da sind doch sowieso nur immer die änderungsinfos drin oder ?

Verfasst: Fr 19 Mär 2004, 18:52
von essu
Hä, wo ist mein Beitrag hin, also nochmal:

Unter Enigma auf dbox2 können TS-Streams aufgenommen und abgespielt werden. Ohne JtG (leider ;) ) , ohne VLC, einzig ein NFS-Server auf dem PC ist nötig. Ins JtG-Image sind die dazu nötigen Änderungen allerdings wohl nicht eingeflossen, es sind aber nur 3 kleine diffs.
Natürlich ist das alles noch nicht perfekt, aber ein viel versprechender Ansatz, wenn man mal grosszügig über die Frage hinweg sieht, was man dann mit JtG macht ;)

Verfasst: Sa 20 Mär 2004, 11:16
von Mahon
Ich würd gerne mehr über die änderungen wissen .....

Verfasst: Sa 20 Mär 2004, 12:47
von essu
/apps/tuxbox/enigma/lib/dvb/servicedvb.cpp:

Code: Alles auswählen

--- /apps/tuxbox/enigma/lib/dvb/servicedvb.cpp	2004-02-15 21:51:50.000000000 +0100
+++ /my/apps/tuxbox/enigma/lib/dvb//servicedvb.cpp	2004-02-16 20:25:00.000000000 +0100
@@ -22,26 +22,33 @@

 #if HAVE_DVB_API_VERSION < 3
 #include <ost/audio.h>
 #define AUDIO_DEV "/dev/dvb/card0/audio0"
+#define DVR_DEV "/dev/pvr"
 #else
 #include <linux/dvb/audio.h>
 #define AUDIO_DEV "/dev/dvb/adapter0/audio0"
+#define DVR_DEV "/dev/dvb/adapter0/dvr0"
 #endif

 #ifndef DISABLE_FILE
 #include <lib/dvb/record.h>

 eDVRPlayerThread::eDVRPlayerThread(const char *_filename, eServiceHandlerDVB *handler, int livemode )
-	:handler(handler), buffer(64*1024), livemode(livemode), liveupdatetimer(this), lock(), messages(this, 1)
+	:handler(handler), buffer(348*188*10), livemode(livemode), liveupdatetimer(this), lock(), messages(this, 1)
 {
+
 	state=stateInit;

 	int count=0;
 	seekbusy=0;
 	seeking=0;
+#if HAVE_DVB_API_VERSION < 3
 	do
 	{
-		dvrfd=::open("/dev/pvr", O_WRONLY|O_NONBLOCK); // TODO: change to /dev/dvb/dvr0 (but only when drivers support this!)
+		dvrfd=::open(DVR_DEV, O_WRONLY|O_NONBLOCK); // TODO: change to /dev/dvb/dvr0 (but only when drivers support this!)
 		if (dvrfd < 0)
 		{
 			if ( errno == EBUSY )
@@ -53,12 +60,18 @@
 					continue;
 				}
 			}
-			eDebug("couldn't open /dev/pvr - buy the new $$$ box and load pvr.o! (%m)");
+			eDebug("couldn't open %s - buy the new $$$ box and load pvr.o! (%m)", DVR_DEV);
 			state=stateError;
 		}
 		break;
 	}
 	while( dvrfd < 0 );
+	#else
+   if ((dvrfd = ::open(DVR_DEV, O_WRONLY|O_NONBLOCK)) == -1) {
+      perror(DVR_DEV);
+      state=stateError;
+   }
+      #endif
 	
 	outputsn=new eSocketNotifier(this, dvrfd, eSocketNotifier::Write, 0);
 	CONNECT(outputsn->activated, eDVRPlayerThread::outputReady);
@@ -98,7 +111,7 @@
 
 	CONNECT(messages.recv_msg, eDVRPlayerThread::gotMessage);

-	maxBufferSize=256*1024;
+	maxBufferSize=128*1024;
 	
 	speed=1;
 
@@ -152,7 +165,7 @@
 void eDVRPlayerThread::outputReady(int what)
 {
 	(void)what;
-	seekbusy-=buffer.tofile(dvrfd, 65536);
+	seekbusy-=buffer.tofile(dvrfd, 348*188);
 	if (seekbusy < 0)
 		seekbusy=0;
 	if ((state == stateBufferFull) && (buffer.size()<maxBufferSize))
@@ -192,8 +205,10 @@
 
 void eDVRPlayerThread::dvrFlush()
 {
+#if HAVE_DVB_API_VERSION < 3
 	if ( ::ioctl(dvrfd, 0)< 0 )
 		eDebug("PVR_FLUSH_BUFFER failed (%m)");
+	#endif
 	Decoder::flushBuffer();
 }

@@ -234,7 +249,7 @@
 		}
 	}
 	
-	if (((state == stateBuffering) && (buffer.size()>16384)) || flushbuffer)
+	if (((state == stateBuffering) && (buffer.size()>100000)) || flushbuffer)
 	{
 		state=statePlaying;
 		outputsn->start();
noch mehr?