gpt4 book ai didi

java - 通过 parcelFileDescriptor 在 android 中进行视频流传输

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:38 25 4
gpt4 key购买 nike

我成功地通过 Mediarecorder 将视频录制到 SD 卡上但我想将此视频发送到服务器而不写入 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);

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

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

我想要一个服务器(可能是 Android 手机或 PC)端代码。如果有其他方法请帮助我......

谢谢

最佳答案

为了从 android 或 pc 流式传输,您需要实现传输流的协议(protocol)和服务器。其中有几个,如 HSL、RTPS 等(更多 http://en.wikipedia.org/wiki/Streaming_media)。这不是一个小问题,Android 上成功的流媒体服务很少。

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

该库在 Android 5 上损坏,但适用于 4.4.x

关于java - 通过 parcelFileDescriptor 在 android 中进行视频流传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com