5 java android filestream video-streaming
我成功通过SD卡上的Mediarecorder录制视频,但我想将此视频发送到服务器而无需写入SD卡.我搜索它,我发现parcelFileDescriptor是将视频发送到TCP套接字的方式,但我不知道如何在服务器端接收它请解释它.这是我的客户端代码
socket = new Socket("hostname", portnumber);
ParcelFileDescriptor pfd =ParcelFileDescriptor.fromSocket(socket);
recorder = new MediaRecorder();
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
mPreview = new Preview(VideoRecorder.this,recorder);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(mPreview);
Run Code Online (Sandbox Code Playgroud)
我希望在服务器端接收它并播放它以创建区域时间视频传输.
知道"MediaRecorder以3GPP或MP4格式记录.这种文件格式由原子组成,每个原子都以其大小开始.文件中有不同种类的原子,mdat原子存储编码视频的实际原始帧在Cupcake版本中,Android开始用编码的帧写出一个mdat原子,但由于显而易见的原因,它必须将原子的大小留空.当写入可搜索的文件描述符时,它可以简单地填写后面的空白.记录,但当然套接字文件描述符是不可寻找的.因此,在记录完成后必须修复接收的流,或者必须由服务器处理原始视频/音频帧".
我想要一个服务器(可能是Android手机或PC)的侧面代码.如果有另一种方式请帮助我......
谢谢
为了从 android 或 pc 进行流传输,您需要实现流传输协议和服务器。其中有几个,例如 HSL、RTPS 等(更多http://en.wikipedia.org/wiki/Streaming_media)。这不是一个小问题,而且 Android 上成功的流媒体服务非常少。
您可以在这里查看如何在 Android 上实现流媒体服务: https: //github.com/fyhertz/libstreaming
该库对于 Android 5 来说已损坏,但适用于 4.4.x
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |