gpt4 book ai didi

android - 广播安卓摄像头视频

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:10 26 4
gpt4 key购买 nike

我想要的是广播 android 摄像头视频到远程位置,任何人都可以在他们的手机或网站上观看该视频。我已经成功地将它 unicast 到我电脑上的 vlc 播放器。我尝试了 red5 服务器、Adobe 媒体服务器ffmpeg 服务器,但都无济于事。他们每个人都只能广播来自预先录制文件的视频,但不能来自任何实时流。任何人都可以建议我做什么。

最佳答案

我读到(我认为它甚至在 stackoverflow 上)您可以为 MediaRecorder 提供 TCP 连接的 FileHandle。然后您可以收听该连接、读取数据、将其打包并作为 RTSP/RTP 流重新发送。

如果我碰巧找到原始帖子,我会在此处引用它。

编辑:

原帖为:Streaming Video From Android

关于文件描述符的部分来自:http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system

为了以防万一,我引用了博客中的相应示例:

String hostname = "your.host.name"; 
int port = 1234;
Socket socket = new Socket(InetAddress.getByName(hostname), port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
MediaRecorder recorder = new MediaRecorder(); // Additional MediaRecorder setup (output format ... etc.) omitted
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();

然而,这只会通过网络发送视频文件数据。您可以保存它,然后播放它。但如前所述,它还不是流。

更新:您甚至不必在第一步中使用 TCP 套接字。我刚刚被“LocalSocket”(1) 绊倒,它还为您提供了一个 FileHandle 来提供 MediaRecorder。这些本地套接字是“AF_LOCAL/UNIX 域流套接字”。参见 http://developer.android.com/reference/android/net/LocalSocket.html

到目前为止,我自己还没有尝试过上述所有方法,但很快就会尝试。所以也许我可以在不久的将来提供更多帮助:)

(1) 出于安全原因,LocalSocket 不能用于较新的 Android 版本!请参阅 2015 年 11 月 25 日的更新。

更新 2:刚刚在 Android 资源中看到了“OUTPUT_FORMAT_RTP_AVP”。但它是隐藏的 :( 所以我猜它会在未来的 Android API 版本中可用。 https://github.com/android/platform_frameworks_base/blob/master/media/java/android/media/MediaRecorder.java第 219 行:

public static final int OUTPUT_FORMAT_RTP_AVP = 7;

我还没有尝试通过提供硬编码的 7 来欺骗隐藏...如果有人这样做,请在这里发表评论!

2015 年 11 月 25 日更新

我刚刚遇到了 libstreaming:https://github.com/fyhertz/libstreaming我没有深入研究它,但似乎有很多关于从这个项目从 Android 流式传输的知识(如果不仅仅是使用它的话)。我在那里读到,LocalSocket 解决方案对较新的 Android 版本无效:( 但他们提供了一个替代方案:ParcelFileDescriptor。

关于android - 广播安卓摄像头视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713384/

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