gpt4 book ai didi

java - android 在 SurfaceView 的文件中记录一个 RTSP 流

转载 作者:行者123 更新时间:2023-12-02 12:56:29 36 4
gpt4 key购买 nike

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

我需要实现一项功能,以便用户可以将流记录到一个文件中,但是当我尝试使用 mediaRecorder 从我的表面 View 记录我的视频时,我得到:java.lang.IllegalArgumentException: not a 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 做到了 ->

实现 '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()

关于java - android 在 SurfaceView 的文件中记录一个 RTSP 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61140425/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com