Я пытался использовать FFMPEG, но либо я нашел неработающие библиотеки, либо не использовал их правильно. Вот мой код для отображения RTSP. < /P>
Код: Выделить всё
public class MainActivity extends AppCompatActivity {
RtspSurfaceView svVideo;
Uri uri = Uri.parse("rtsp://10.0.2.2:554/videodevice");
boolean isClicked;
String username ="";
String password = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
svVideo = findViewById(R.id.svVideo);
svVideo.init(uri, username,password,"");
final File targetFile = new File( getExternalStoragePublicDirectory( Environment.DIRECTORY_MOVIES ) + "/recording1.mp4" );
String[] cmd = {"-y", "-i", "rtsp://10.0.2.2:554/videodevice", "-acodec", "copy", "-vcodec", "copy","-t","00:00:20", targetFile.toString() };
var rec_btn = findViewById(R.id.rec);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
@Override
protected void onResume() {
super.onResume();
svVideo.start(true,true,false);
isClicked = true;
}
public void stooplay(View view){
if(isClicked){
svVideo.stop();
isClicked = false;
}
else{
svVideo.start(true,true,false);
isClicked = true;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... tsp-to-mp4