1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Audio/Videostreaming auf Server

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von NautilusIII, 16.10.2010.

  1. NautilusIII, 16.10.2010 #1
    NautilusIII

    NautilusIII Threadstarter Junior Mitglied

    Beiträge:
    40
    Erhaltene Danke:
    0
    Registriert seit:
    12.07.2010
    Hi!

    Vielleicht hat hier jemand eine Idee.
    Ich würde gerne das Bild dass die Kamera meines Handys gerade einfängt live auf meinen Webserver streamen.

    Zugriff auf die Kamera gibt es wohl wie MediaRecorder:

    Code:
    MediaRecorder recorder = new MediaRecorder();
     recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
     recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
     recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
     recorder.setOutputFile(PATH_NAME);
     recorder.prepare();
     recorder.start();   // Recording is now started
     ...
     recorder.stop();
     recorder.reset();   // You can reuse the object by going back to setAudioSource() step
     recorder.release(); // Now the object cannot be reused
    
    Ich möchte natürlich nicht in ein File schreiben sondern direkt auf den Webserver streamen.

    Die einzigste Chance die ich sehe ist dass man als setOutputFormat einen FileDescriptor setzen kann:

    Code:
    setOutputFile(FileDescriptor fd)
    
    Weiß jmd wie man einen FileDescriptor bekommt so dass ich via http gegen eine best URL "uploaden" kann?
    Mit Socktes will ich nicht arbeiten.

    Sicher könnte man aiuch einfach das File auf die SD Karte schreiben und dann "irgendwie" das File kontinuierlich auf den Server schieben, aber naja. Evtl. kann man auch eine Art Netzlaufwerk einbinden oder was mit WebDav machen, aber würd ich alles gerne erstmal vermeiden.

    Lg
     
  2. ko5tik, 16.10.2010 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Mu du aber :) Öffne mal einen Socket und:

    Code:
    socket = new Socket(InetAddress.getByName("www.pribluda.de"), 7890);
    ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
    
    Und es streamt shon zu deinen Server. Wenn du rausgefunden hast im welchen Format es da ankommt erzähle es bitte weiter ;) Bei mir ist nur die Moppelkotze dabei rausgekommen.;)
     
  3. NautilusIII, 16.10.2010 #3
    NautilusIII

    NautilusIII Threadstarter Junior Mitglied

    Beiträge:
    40
    Erhaltene Danke:
    0
    Registriert seit:
    12.07.2010
    Wenn ich das ein PHP Skript empfangen lassen will, kann ich das ann einfach dem Apache (Port 80) rüberwerfen (Hostname/Path zeigt dann eben zum PHP Skript).

    Frage ist natürlich wie das PHP Skript das was da kommt verarbeiten soll - bzw in welchem Format dieser Stream ankommen wird - sehr gute Frage...
     
  4. ko5tik, 16.10.2010 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Hier hast du einen eifachen Perl-Skript:

    Code:
    #!/usr/bin/perl -w
    use strict;
    use IO::Socket;
    
    my $sock = new IO::Socket::INET(LocalHost => 'www.pribluda.de',LocalPort => 7890,Proto => 'tcp',Listen => SOMAXCONN,Reuse => 1);
    
    $sock or die "no socket :$!";
    
    my($new_sock, $c_addr, $buf);
    
    while (($new_sock, $c_addr) = $sock->accept()) {
        my ($client_port, $c_ip) =sockaddr_in($c_addr);
        my $client_ipnum = inet_ntoa($c_ip);
    
        while (defined ($buf = <$new_sock>))
        {
            syswrite(STDOUT, $buf, length($buf));         
        }
    
    }
    
    
    welches alles ankommende einfach in die STDOUT schreibt. PHP auf Apache würde ich dafür nicht nehmen
     

Diese Seite empfehlen