首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过parcelFileDescriptor在安卓中实现视频流媒体

通过parcelFileDescriptor在安卓中实现视频流媒体
EN

Stack Overflow用户
提问于 2011-12-03 02:42:11
回答 1查看 2.6K关注 0票数 5

我成功地通过媒体录像机在SD卡上录制了视频,但我想将此视频发送到服务器,而不写入SD卡。我搜索它,我发现parcelFileDescriptor是发送视频到TCP socket的方式,但我不知道如何在服务器端接收它,请解释一下。下面是我的客户端代码

代码语言:javascript
复制
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);

我想在服务器端接收它,并播放它来创建实时视频传输。

知道“MediaRecorder以3GPP或MP4格式记录。这种文件格式由原子组成,每个原子都以其大小开始。在一个文件中有不同种类的原子,mdat原子存储编码的视频和音频的实际原始帧。在纸杯蛋糕版本中,Android开始使用编码的帧写出一个mdat原子,但由于显而易见的原因,它必须将原子的大小留空。当写入可查找的文件描述符时,它可以简单地填充记录后的空白,但套接字文件描述符当然是不可查找的。因此,接收到的流必须在录制完成后进行修复,或者原始视频/音频帧必须由服务器处理。

我想要一个服务器(可能是Android手机或PC)端代码。如果有别的办法,请帮帮我......

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-12-02 13:29:24

为了从android或pc进行流媒体传输,您需要实现流媒体传输和服务器的协议。它们中有几个像HSL,RTPS等(更多的http://en.wikipedia.org/wiki/Streaming_media)。这不是一个微不足道的问题,android上成功的流媒体服务屈指可数。

你可以在这里查看如何在安卓上实现和流媒体服务:https://github.com/fyhertz/libstreaming

这个库在Android5上被破坏了,但在4.4.x上可以工作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8361031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档