【发布时间】:2013-08-27 10:56:52
【问题描述】:
我想用我的 android 设备 (Nexus 10) 录制视频,然后上传到 youtube。
到目前为止,我正在使用 android MediaRecoder 录制并通过 LocalSocket 流式传输以将数据保存到多个文件中。但文件无法播放。
我阅读了一些文章,说明 API-Level 18 可以使用 MediaCodec 和/或 MediaMuxer 转换文件。我找到了这个this 代码,但我不太明白如何处理它。
有没有人展示如何将原始数据从 LocalSocket 转换为可播放文件(即 mp4 文件)的简单示例?
我的 MediaRecoder 如下所示:
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
camcorderProfile_HQ.fileFormat = MediaRecorder.OutputFormat.MPEG_4;
camcorderProfile_HQ.videoCodec = MediaRecorder.VideoEncoder.MPEG_4_SP;
recorder.setProfile(camcorderProfile_HQ);
recorder.setPreviewDisplay(surfaceHolder.getSurface());
clientSocket = new LocalSocket();
clientSocket.connect(new LocalSocketAddress(SOCKET_ADDRESS));
recorder.setOutputFile(clientSocket.getFileDescriptor());
recorder.prepare();
recorder.start();
提前致谢。
【问题讨论】:
-
不写入clientSocket,为什么不写入扩展名为.mp4的文件?
-
为什么说“来自LocalSocket的原始数据”?输出是未复用的 h264 吗?
标签: android video stream mediarecorder android-4.3-jelly-bean