Android MediaRecorder的输出文件是否可以是命名管道?
跟随 及 我成功地将Android手机摄像头的原始帧放入mkfifo制作的命名管道中,并使用ffmpeg对其进行处理并生成视频文件 但问题是ffmpeg编码速度很慢,每秒只能处理3~5帧。我必须使用ffmpeg而不是MediaRecorder的原因是,以后我需要使用ffmpeg生成HLS段和m3u8文件 因此,我必须使用像MediaRecorder这样的本机编码器,并尝试将其输出文件设置为以下命名管道 我的代码是这样的Android MediaRecorder的输出文件是否可以是命名管道?,android,ffmpeg,camera,pipe,mediarecorder,Android,Ffmpeg,Camera,Pipe,Mediarecorder,跟随 及 我成功地将Android手机摄像头的原始帧放入mkfifo制作的命名管道中,并使用ffmpeg对其进行处理并生成视频文件 但问题是ffmpeg编码速度很慢,每秒只能处理3~5帧。我必须使用ffmpeg而不是MediaRecorder的原因是,以后我需要使用ffmpeg生成HLS段和m3u8文件 因此,我必须使用像MediaRecorder这样的本机编码器,并尝试将其输出文件设置为以下命名管道 我的代码是这样的 private String pipe = "/data/data/co
private String pipe = "/data/data/com.example/v_pipe1";
...
mMediaRecorder.setOutputFile(pipe);
...
mMediaRecorder.start();
我还有一个ffmpeg线程将此管道用作输入
但是当我调用mMediaRecorder.start()时;它将抛出java.lang.IllegalStateException。我尝试在调用mMediaRecorder.start()之前或之后放置ffmpeg线程,但出现了相同的错误
我现在对此一无所知。有人能告诉我怎么解决这个问题吗?
欢迎提出任何建议,并表示感谢。谢谢。我还尝试将MediaRecorder的OutputFile和ffmepg的input设置为ParcelFileDescriptor套接字或datagramsocket,但没有成功。如果可能的话,如果有人能给我举一些例子,我将不胜感激。我还尝试将MediaRecorder的OutputFile和ffmepg的输入设置为ParcelFileDescriptor套接字或datagramsocket,但没有成功。如果可能的话,如果有人能给我举一些例子,我将不胜感激。