Video-Streaming von MediaRecorder über LocalSocket

Ich versuche, ein h264 / AAC-Video vom Android MediaRecorder über einen lokalen Socket zu senden. Das Ziel ist es, Videos über RTMP oder RTSP an einen WOWZA-Server zu senden, aber das bereitet mir große Probleme. Im Moment versuche ich nur, die Daten vom LocalServerSocket in eine Datei zu schreiben.

Hier ist ein Code. Tut mir leid, dass es nicht wirklich sauber ist, aber ich habe Stunden damit verbracht, viele Dinge zu testen, und mein Projekt ist momentan ein Chaos.

In der Aktivität Kamera wird die Ausgabedatei eingerichtet:

LocalSocket outSocket = new LocalSocket();

try {
    outSocket.connect(new LocalSocketAddress(LOCAL_SOCKET));
} catch (Exception e) {
    Log.i(LOG_TAG, "Error connecting socket: "+e);
}
mMediaRecorder.setOutputFile(outSocket.getFileDescriptor());

Die LocalServerSocket-Implementierung:

try {
    mLocalServerSocket = new LocalServerSocket(mName);
} catch (Exception e) {
    Log.e(LOG_TAG, "Error creating server socket: "+e);
    return;
}

while (true) {

    File out = null;
    FileOutputStream fop = null;
    try {
        mLocalClientSocket = mLocalServerSocket.accept();

        InputStream in = mLocalClientSocket.getInputStream();

        out = new File(mContext.getExternalFilesDir(null), "testfile.mp4");
        fop = new FileOutputStream(out);

        int len = 0;
        byte[] buffer = new byte[1024];
        while ((len = in.read(buffer)) >= 0) {

            Log.i(LOG_TAG, "Writing "+len+" bytes");
            fop.write(buffer, 0, len);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally{
        try {
            fop.close();
            mLocalClientSocket.close();
        } catch (Exception e2) {}
    }
}

Das Problem ist, dass die daraus resultierende Datei von keinem Media Player gelesen werden kann. Denken Sie, dass dies auf ein Codierungsproblem zurückzuführen ist? Dieser Code sollte eine Binärdatei erzeugen, wenn ich es gut verstehe ?!

Vielen Dank im Voraus, Prost.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage