私は必要なプロジェクトに取り組んでいます
入力 H.264 エンコード ストリームを IPCamera から読み取ります - 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();
}
});
- このストリームを MP4 ファイルに記録したいと思います。これが私が立ち往生しているところであり、次のオプションを検討しています
a) MediaRecorder - Google 検索に基づいて、このクラスの入力はデバイス カメラからのみ可能であると考えています。rtsp stream からの入力を提供できる場所でこれを微調整する方法はありますか?
b) MediaCodec API - 4.1 以降 Android は、MediaExtractor と MediaCodec を備えたこの低レベル API をリリースしました。このオプションの場合、次のスニペットでは 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.
c) URL から読み取り、ファイルのように保存できますか? このストリームを MP4 ファイルに変換するにはどうすればよいですか? どのコード スニペットも非常に役立ちます。
FFMPEG も使用しようとしましたが、パフォーマンスが非常に悪かったため、このオプションを削除しました。
上記の 3 つのオプション、または私が検討できるその他の追加オプションに関するご意見をいただければ幸いです。
ありがとう !!