从Android接收视频流到PC上的VLC

时间:2011-03-02 10:12:37

标签: android

我想将视频从Android手机摄像头传输到在PC上运行的VLC媒体播放器。

我编写了一个示例代码,使用MediaRecorder将视频流式传输到本地网络上的特定IP。手机上的应用程序正在运行,但我无法在VLC媒体播放器中获取流。

我的Android应用程序代码,用于将视频流式传输到网络:

    InetAddress serverAddr = InetAddress.getByName("192.168.2.8");
    Socket soc=new Socket(serverAddr,8210);
    ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(soc);
    tempRecorder.setOutputFile(pfd.getFileDescriptor()); 
    tempRecorder.prepare();

有谁能告诉我我做错了什么或怎么做?

1 个答案:

答案 0 :(得分:3)

媒体录制器用于录制。您指定的输出文件将包含录制的视频,您将把文件发送到服务器以作为一个视频文件播放。我希望你这样做:

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

另请阅读the docs

  

public void setOutputFile (字符串路径)

     

设置要生成的输出文件的路径。在setOutputFormat()之后但在prepare()之前调用它。

但是,如果您想逐帧将视频流式传输到PC,则需要使用onPreviewFrame的{​​{1}}方法捕获每个帧。从此回调将字节数组传输到您的服务器。这样,您将拥有从设备相机到服务器的连续图像帧流。