Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
perl stream und netcat

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
user1
Gast





BeitragVerfasst am: 07. Apr 2004 10:04   Titel: perl stream und netcat

HiHo

Ich habe ein Problem mit einem Perlscript, das MP3-Dateien auf einen Server streamt.

Auf dem Server wartet ein Netcat, das den Stream an mplayer weiter leitet:
code:
nc -l -p 2666 |mplayer -



Auf dem Client ist ein Perlscript, das aus einer Playlist die Datein liest und auf den Server sendet:
code:
nc -l -p 2666 |mplayer -



Soweit funktioniert das ganze auch mehr oder Weniger.

  • Nun das Problem ist, dass das erste Lied der Playlist erst so aber der Zehnten bis Zwanzigsten Sekunde abgespielt wird.
  • Und einige lieder gehen gar nicht, respektive sie werden komischerweise gesendet (t<1s) aber nicht gespielt.
  • Einige Lieder werden mit der Meldung "Broken Pipe!" abgebrochen.

    Ich habe mit dem Buffer etwas gespielt und immer wieder etwas andere Resultate bekommen und "print $sock <SOUND>" bringt auch nichts.

    Weiss jemand eine Lösung auf das Problem, oder eine Erklärung für dieses Verhalten?

    Merci und Gruss user1
  •  

    user1
    Gast





    BeitragVerfasst am: 07. Apr 2004 10:05   Titel: Re: perl stream und netcat

    Hmm da funktioniert etwas nicht mit dem Board.
    Der zweite Code-Teil sollte das Perl-Skript sein:

    code:


    #!/usr/bin/perl
    use strict;

    use IO::Socket;
    my $bsize = 2048;
    my ($tmp,$buffer,$dir);

    my $sock = new IO::Socket::INET(
    PeerAddr => 'homer',
    PeerPort => '2666',
    Proto => 'tcp',
    );

    $| = 1;
    $sock || die "Could not create socket: $!
    ";

    binmode($sock);
    open(PLS,"<@ARGV[0]")||die "No valid playlist.
    ";

    while($tmp = <PLS>){
    if($tmp =~ /(\/.*
    )/){
    $dir = $1;
    print $dir."
    ";
    open(SOUND,"<".$dir)||die $!;
    binmode(SOUND);

    #print $sock <SOUND>;
    while(read(SOUND,$buffer,$bsize)){
    print $sock $buffer;
    }
    }

    }
    close $sock;

     

    Beiträge vom vorherigen Thema anzeigen:   
         Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
    Seite 1 von 1

     
    Gehen Sie zu:  

    Powered by phpBB © phpBB Group
    pro_linux Theme © 2004 by Mandaxy