Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaRecorder的输出文件是否可以是命名管道?_Android_Ffmpeg_Camera_Pipe_Mediarecorder - Fatal编程技术网

Android 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

跟随 及

我成功地将Android手机摄像头的原始帧放入mkfifo制作的命名管道中,并使用ffmpeg对其进行处理并生成视频文件

但问题是ffmpeg编码速度很慢,每秒只能处理3~5帧。我必须使用ffmpeg而不是MediaRecorder的原因是,以后我需要使用ffmpeg生成HLS段和m3u8文件

因此,我必须使用像MediaRecorder这样的本机编码器,并尝试将其输出文件设置为以下命名管道

我的代码是这样的

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,但没有成功。如果可能的话,如果有人能给我举一些例子,我将不胜感激。