MediaRecorder的outputFile可以是命名管道吗?

时间:2017-04-13 01:39:38

标签: android ffmpeg camera pipe mediarecorder

的关注 Android Camera Capture using FFmpegfeed raw yuv frame to ffmpeg with timestamp

我成功地将Android手机相机的原始帧放入由mkfifo制作的命名管道中,并使用ffmpeg处理它们并生成视频文件。

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

所以我必须转向使用像MediaRecorder这样的本机编码器并尝试将其OutputFile设置为以下命名管道 How to use unix pipes in Android

我的代码喜欢这个,

$(document).ready(function () {
    jQuery.validator.addMethod("comparison", function (value, element) {
        var pcompra = $("#pcompra").val();
        return this.optional(element) || value > pcompra;
    });
    $("#form").validate({
        rules: {
            pcompra: {
                required: true,
                number: true
            },
            pventa: {
                required: true,
                number: true,
                comparison: true
            }
        },
        messages: {
            pcompra: {
                required: 'This field is required.',
                number: 'Please enter a valid number.'
            },
            pventa: {
                required: 'This field is required.',
                number: 'Please enter a valid number.',
                comparison: 'This field should larger than field pcompra'
            }
        }
    });
});

我还有一个ffmpeg线程来使用这个管道作为输入。

但是当我打电话给mMediaRecorder.start();它将抛出java.lang.IllegalStateException。我在调用mMediaRecorder.start()之前或之后尝试放入ffmpeg线程,但是出现了同样的错误。

我现在不知道这件事。有人能告诉我如何解决这个问题吗? 任何建议都欢迎和赞赏。感谢。

0 个答案:

没有答案