Web TV auf Fernseher über DBox2 ????

Digital Recording
WinniePoow
Einsteiger
Einsteiger
Beiträge: 155
Registriert: Montag 20. September 2004, 14:33

Web TV auf Fernseher über DBox2 ????

Beitrag von WinniePoow »

Also ich glaube die Beschreibung sagt schon alles...aber nochmal langsam:
Es ist ja nun möglich WebRadio über den Audioplayer der DBox zu hören,nun wollte ich ganz gern WebTV über die DBox schauen (z.B Viva Plus).Ist das möglich und wenn ja wie????

:gruebel:
WinniePoow
Einsteiger
Einsteiger
Beiträge: 155
Registriert: Montag 20. September 2004, 14:33

Beitrag von WinniePoow »

ÄÄHHHHH - keiner ne Idee????Oder hab ich was Unrechtes gefragt... :oops: .....
Hab über FAQ nichts gefunden und auch die Suche brachte nichts ein....:gruebel:


:gruebel:
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

Wäre möglich, wenn ...
... man eine Applikation hätte, die den Stream empfängt und ihn als Box-konformen MPG2-Stream an die Box schickt, der dann z.B. in dem modifizieren Movieplayer abgespielt werden könnten, oder evtl. per PlugIn.
Da es sowas noch nicht gibt müßtest Du jemanden finden, der das programmiert.
Ich würde es klasse finden, wenn Du jemanden findest.
cu
Jens
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

Hi,

linux und ffmpeg mit den richtigen Optionen bringt dich da schon einen riesigen Schritt weiter ...

Wenn du dann den entsprechenden ffmpeg-Aufruf vom "xinetd" aus machst, kannst Du das direkt mit dem mod. neutrino movieplayer anschauen. Dabei sollte ffmepg einfach nach stdout ausgeben. Das wird dann vom xinetd übers Netz an den Client (DBox movieplayer) umgeleitet.

ffmpeg (neuestes cvs release) kann u.a. "http" als input verarbeiten und dbox2 konforme TS streams ausgeben. dazwischen ist so ziemlich alles möglich (neu muxen, transcodieren mit/ohne Größenänderung usw.)

Wird halt ein zusätzlicher Rechner für den xinetd/ffmpeg server benötigt ...

Testen kann man das auch erst mal ohne dbox, da z.B. der mplayer sich genauso wie diese verhält, wenn er über http liest ...

Das gesamte Scenario würde dann wie folgt aussehen:

Internet <--- HTTP--- xinetd(ffmpeg) <---HTTP--- mplayer bzw. dbox

Hab jetzt mal schnell was zusammengehackt, da man noch einen "wrapper" für ffmpeg braucht. An dem folgenden Beispiel kannst Du dich ja mal orientieren. Da ist jetzt erstmal ein hardcodierter ffmpeg-Aufruf drin, für ein normales mpeg-File. Kann dann entsprechend der Bedürfnisse angepasst werden o.ä:

Code: Alles auswählen

File: ffwrap.c

#define _FILE_OFFSET_BITS 64
#define _GNU_SOURCE 1

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include <string.h>

#define BUF_SIZE 32768
#define MAXPIDS	 16
#define CMD_STR  "/usr/bin/ffmpeg -y -i %s -vcodec copy -acodec copy -f mpegts - 2>/dev/null" 

int main (int argc, char ** argv) 
{
  int  pid, cnt;
  char buf[BUF_SIZE]; 
  char *fname; 
  char *bp;

  if (argc>1) 
    fname = argv[1];
  else
  {
    fprintf(stderr, "usage: ffwrap <filename>\n");
    return EXIT_FAILURE;
  }
  fclose(stderr);

  /* read one line */
  bp = buf;
  while (bp - buf < BUF_SIZE) 
  {
    unsigned char c;
    read(STDIN_FILENO, &c, 1);
    if ((*bp++ = c) == '\n') break;
  }

  *bp++ = 0;
  bp    = buf;

  /* send response to http client */
  if (!strncmp((const char *)"GET /", buf, 5)) 
  {
    printf("HTTP/1.1 200 OK\r\n");
    printf("Server: streamtsd (%s)\r\n\r\n", &argv[1][1]);

    fflush(stdout);
    bp += 5;
  }
  
  /* parse stdin / url path */
  cnt = 0;
  do
  { 
    cnt++;
    sscanf(bp, "%x", &pid);
  }
  while ((bp = strchr(bp, ',')) && (bp++) && (cnt < MAXPIDS));

  sprintf(buf, CMD_STR, fname);
  system(buf);

  return EXIT_SUCCESS;
}
Hier nun eine passende xinetd configuration für z.B. Port 80 (http), die aber erst mal nur eine Datei (/videos/film.mpg) zum client (dbox) schickt. Wenn das dann klappt, kann man anstelle des files auch ne URL eintragen.

Code: Alles auswählen

File: /etc/xinetd.d/mystream

service http
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/local/bin/ffwrap
        server_args     = /videos/film.mpg
        disable         = no
}
Dieses Beispiel hab ich mit mod. movieplayer und "mplayer http://myserver/0x100,0x101" getestet.

Die DBox stream description sollte wie folgt aussehen:

Code: Alles auswählen

file = streamtest.ts

#DBOXSTREAM
IS=192.168.xxx.xxx;80;0x100,0x101,-1
wobei natürlich die entspr. IP des xinetd servers eingetragen werden muß. Auch zu beachten, ob ffmpeg immer 0x100 und 0x101 als video bzw. Audio Pid nimmt !?

Also, Phantasie einschalten und was draus machen ...

- GMo -
essu
Tuxboxer
Tuxboxer
Beiträge: 2452
Registriert: Montag 21. Oktober 2002, 10:04

Beitrag von essu »

Hm, noch ein Grund, den modifizierten Moviepayer zu committen... :gruebel:
Schon gelesen ???
ENIGMA-DOC
jmittelst
Tuxboxer
Tuxboxer
Beiträge: 6044
Registriert: Montag 17. November 2003, 06:48

Beitrag von jmittelst »

@gmo18t - Hört sich sehr interessant an. Gibt es ffmpeg nicht auch für Windows?
Jetzt bräuchten wir also den modifizierten Movieplayer im CVS und einen Programmierer, der (vielleicht in Java für Linux und Windows) eine Software schreibt, die die Arbeitsweise von gmo18t's Post auch für Dummys umsetzt.
Gehen tut es ja scheinbar.
cu
Jens
BOFH
Erleuchteter
Erleuchteter
Beiträge: 498
Registriert: Sonntag 10. März 2002, 17:00

Beitrag von BOFH »

jmittelst hat geschrieben:Wäre möglich, wenn ...
... man eine Applikation hätte, die den Stream empfängt und ihn als Box-konformen MPG2-Stream an die Box schickt, der dann z.B. in dem modifizieren Movieplayer abgespielt werden könnten, oder evtl. per PlugIn.
Da es sowas noch nicht gibt müßtest Du jemanden finden, der das programmiert.
Ich würde es klasse finden, wenn Du jemanden findest.
cu
Jens
Mal blöd gefragt, kann der VLC das nicht? :gruebel:

Gruß
BOFH