Java android在SurfaceView的文件中记录RTSP流

Java android在SurfaceView的文件中记录RTSP流,java,android,kotlin,rtsp,Java,Android,Kotlin,Rtsp,我正在使用摄像头的IP将RTPS实时流(来自摄像头)显示到SurfaceView(我的surface_视图)中。 为此,我使用以下库->实现'com.github.pedroSG94.vlc示例streamplayer:libvlc:2.5.14v3' 我需要实现一个功能,以便用户可以将流录制到文件中,但当我尝试使用mediaRecorder从我的surface view录制视频时,我得到:java.lang.IllegalArgumentException:不是PersistentSurfac

我正在使用摄像头的IP将RTPS实时流(来自摄像头)显示到SurfaceView(我的surface_视图)中。 为此,我使用以下库->实现'com.github.pedroSG94.vlc示例streamplayer:libvlc:2.5.14v3'

我需要实现一个功能,以便用户可以将流录制到文件中,但当我尝试使用mediaRecorder从我的surface view录制视频时,我得到:java.lang.IllegalArgumentException:不是PersistentSurface

这是我的密码:

    mediaRecorder.setInputSurface(my_surface_view.holder.hurface)
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT)
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264)
    mediaRecorder.setVideoEncodingBitRate(512 * 1000)
    mediaRecorder.setVideoFrameRate(30)
    mediaRecorder.setVideoSize(640, 480)
    mediaRecorder.setOutputFile(File(getVideosDirectory(), "TEST.mp4").path)
    mediaRecorder.prepare()
    mediaRecorder.start()

我在网上查过,但没有找到任何图书馆或例子。现在我被卡住了,没有主意我已经设法用FFmpeg做了

implementation'com.arthenica:mobile-ffmpeg-full-gpl:4.2.2.LTS'

用于启动录制(确保它不在主线程上),并且文件扩展名为.mkv

   runOnIoThread {
                FFmpeg.execute("-i $url -acodec copy -bsf:a aac_adtstoasc -vcodec copy ${file.path}")
            }
要停止它->
FFmpeg.cancel()