gpt4 book ai didi

Android - MediaRecorder 输出以流式传输 ffmpeg

转载 作者:行者123 更新时间:2023-12-04 23:03:07 28 4
gpt4 key购买 nike

我正在尝试将我的屏幕内容流式传输到 rtmp 服务器,我相信最简单/最好的方法是使用 ffmpeg。

所以,这就是我到目前为止所拥有的:

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...

那么,如何以可以在 ffmpeg 中用于流式传输的格式(而不是保存的文件)获取 MediaRecorder 的输出内容。

谢谢!

最佳答案

无法发表评论,所以即使为时已晚,我也会将其作为答案,但这个项目应该是您正在寻找的:https://github.com/danielkucera/ZidoStreamer

关于Android - MediaRecorder 输出以流式传输 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220839/

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