使用ffmpeg.
>添加ffmpeg依赖项.
compile 'nl.bravobit:android-ffmpeg:1.1.5'
>记录流.
String RTSP_URL = "rtsp://";
final File targetFile = new File( getExternalStoragePublicDirectory( Environment.DIRECTORY_MOVIES ) + "/recording1.mp4" );
final FFmpeg ffmpeg = FFmpeg.getInstance(this);
String[] ffmpegCommand = new String[]{ "-i", RTSP_URL, "-acodec", "copy", "-vcodec", "copy", targetFile.toString() };
final FFtask ffTask = ffmpeg.execute( ffmpegCommand, new FFcommandExecuteResponseHandler() {
@Override
public void onStart() {}
@Override
public void onProgress(String message) {}
@Override
public void onFailure(String message) {}
@Override
public void onSuccess(String message) {}
@Override
public void onFinish() {}
} );
final Timer timer = new java.util.Timer();
TimerTask timerTask = new TimerTask() { @Override public void run() {
ffTask.sendQuitSignal();
} };
timer.schedule( timerTask, 30000 ); // Will stop recording after 30 seconds.