max*_*art 11 mp4 android android-mediaplayer android-mediarecorder
我正在开展一个我需要的项目
读取来自IPCamera的输入H.264编码流 - 我可以通过rtsp://192.168.1.83:8001/rtsp url获取此信息
显示IPCamera流 - 我可以使用
final VideoView vv = (VideoView) findViewById(R.id.video_view_h264);
MediaController mc = new MediaController(getApplicationContext());
vv.setVideoURI(video);
vv.setMediaController(mc);
vv.requestFocus();
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
vv.start();
}
});
Run Code Online (Sandbox Code Playgroud)
a)MediaRecorder - 根据我的谷歌搜索,我相信这个类的输入只能来自设备相机.有没有办法调整这个我可以提供rtsp流的输入?
b)MediaCodec API - 4.1以后Android已经发布了这个低级API以及MediaExtractor和MediaCodec.对于此选项,我认为rtsp流不能用于以下代码段
final String STREAM_URL = "rtsp://192.168.1.83:8001/";
MediaExtractor mediaExtractor = new MediaExtractor();
mediaExtractor.setDataSource(STREAM_URL); // I get an exception 04-28 18:30:18.914: E/AndroidRuntime(8140): Caused by: java.io.IOException: Failed to instantiate extractor.
Run Code Online (Sandbox Code Playgroud)
c)我可以从网址读取并将其存储为文件.如何将此流转换为MP4文件?任何代码段都非常有用.
我也试过使用FFMPEG,但性能太差,我放弃了这个选项.
我非常感谢上述三个选项的任何输入或我可以考虑的任何其他附加选项.
谢谢 !!
确实MediaRecorder不支持处理直接流内容。从框架的角度来看,有像 in 那样的MediaExtractor解析器对象和像 那样的编解码器对象MediaCodec,但还没有编写器抽象。
InAOSP是recordVideo一个命令行实用程序,旨在进行简单的基于文件的记录。作为实现的一部分,将创建一个编码器并将其传递给此处MPEG4Writer观察到的。您可以重用此代码并尝试将传入流直接写入文件。
为此,您可以将流输入建模为 aMediaSource并将其直接传递给编写器。您必须metaData从流媒体源设置某些基础并将其传递给下游编写器。MediaRecorder如果您可以直接对输入源建模,则可能不需要创建新的。
| 归档时间: |
|
| 查看次数: |
6348 次 |
| 最近记录: |