Потоковое видео из MediaRecorder через LocalSocket

Я пытаюсь отправить h264 / AAC-видео из Android MediaRecorder через локальный сокет. Цель состоит в том, чтобы отправить видео на сервер WOWZA через RTMP или RTSP, но это доставляет мне много хлопот, и сейчас я просто пытаюсь записать данные в файл из LocalServerSocket.

Вот код Извините, это не совсем чисто, но я потратил часы на тестирование многих вещей, и мой проект сейчас беспорядок.

В разделе «Действия с камерой» настройка выходного файла:

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());

Реализация LocalServerSocket:

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) {}
    }
}

Проблема в том, что файл, полученный в результате этого, не читается любым медиаплеером. Как вы думаете, это из-за проблемы с кодировкой? Этот код должен генерировать двоичный файл, если я хорошо понимаю ?!

Заранее спасибо, ура.

Ответы на вопрос(3)

Ваш ответ на вопрос