Android-MediaRecorder输出到ffmpeg的流
我正在尝试将屏幕内容流式传输到rtmp服务器,我认为最简单/最好的方法是使用ffmpeg 到目前为止,我的情况如下:Android-MediaRecorder输出到ffmpeg的流,android,ffmpeg,video-streaming,mediarecorder,android-mediarecorder,Android,Ffmpeg,Video Streaming,Mediarecorder,Android Mediarecorder,我正在尝试将屏幕内容流式传输到rtmp服务器,我认为最简单/最好的方法是使用ffmpeg 到目前为止,我的情况如下: try { Socket socket = new Socket(url, port); ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.fromSocket(socket); mMediaRecorder.setAudioSource(MediaRecorder.AudioSourc
try {
Socket socket = new Socket(url, port);
ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.fromSocket(socket);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setOutputFile(fileDescriptor.getFileDescriptor());
mMediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setVideoEncodingBitRate(512 * 1000);
mMediaRecorder.setVideoFrameRate(30);
int rotation = getWindowManager().getDefaultDisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation + 90);
mMediaRecorder.setOrientationHint(orientation);
mMediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
在这里,重要的部分是
Socket socket = new Socket(url, port);
ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.fromSocket(socket);
mMediaRecorder.setOutputFile(fileDescriptor.getFileDescriptor());
所以,当我把它放在一个Asynctask中时,我可以让它尝试发送一些东西,但是我得到了一个UnknownHostException
java.net.UnknownHostException: Unable to resolve host "rtmps://rtmp-api....": No address associated with hostname
所以,有人告诉我应该使用ffmpeg来实现这一点,但我不知道如何从MediaRecorder获取原始流以将其传递给ffmpeg
如果我理解正确,ffmpeg可以用作:
-i original_stream rtmps://rtmp-api...
所以,我怎样才能获得MediaRecorder的输出内容,其格式可以在ffmpeg中用于流媒体(而不是保存的文件)
谢谢 无法发表评论,因此我会将此作为答案,即使它有点太晚,但此项目应该是您想要的:无法发表评论,因此我会将此作为答案,即使它有点太晚,但此项目应该是您想要的:谢谢。这显示了一些希望,尽管我必须使用这段代码,看看它是否真的满足了我的需要。我会随时通知你的,谢谢。这显示了一些希望,尽管我必须使用这段代码,看看它是否真的满足了我的需要。我会随时告诉你最新情况。