我想从Android设备上捕获摄像头流,然后用RTMP将其流到服务器上(服务器是我控制的out )。我还没有弄清楚如何从相机本身创建数据流,但这是以后的关注。
目前有两个问题:我希望支持API 9+,RTMP不是由Android支持的。
我环顾四周,发现了这个,所以发布将视频输入流转换为RTMP和https://github.com/yixia/VitamioBundle。前者建议图书馆几乎没有文档。后者可能支持它(?),但它需要API 14+。
是否有合适的例子或库支持来自Android设备的RTMP流?我还读过一些关于转换RTSP或FFMPEG的内容,如果这是一种可行的方法,那么我想它也足够了。
编辑1:
我已经找到了这个图书馆 (它与上面提到的非常相似),并尝试使用。我在Android中导入了它,并编写了一些代码,但它似乎在内部崩溃,出现了java.lang.NoClassDefFoundError RTSP Codec Factory错误。所以很明显,这在Android系统上效果不太好。
另外,我也遇到过几次Adobe。我不想在Action 3 (AS3)中编写代码,因为这个库只是本地应用程序的一个(小)部分。如果Adobe有一个我不知道的库,那么如果可能的话,我很乐意集成它。
发布于 2015-03-15 14:16:24
在接受你所联系的问题的答案中,有人建议使用JavaCV。
它需要API 8或更高版本,并具有一个FFmpegFrameRecorder类。
链接到github:
https://github.com/bytedeco/javacv
他们甚至有一个捕获flv的完整示例(它相当大,所以我不会在这里粘贴它):https://github.com/bytedeco/javacv/blob/master/samples/RecordActivity.java
在您的情况下,您可能需要替换:
private String ffmpeg_link = "/mnt/sdcard/stream.flv";使用
private String ffmpeg_link = "rtmp://<server>:<port>/stream";发布于 2015-03-13 18:16:47
如果您可以使用ffmpeg支持的协议(请参阅支持的协议列表)从android设备上发布,您可以使用以下命令将视频传输到服务器:
ffmpeg -re -i <input link> -vcodec h264 -ar 44100 -f flv "rtmp://<host>/<publication>"发布于 2015-03-12 19:47:56
您应该看看spydroid;它正是您想要的。他们的网站可以在这里找到:https://code.google.com/p/spydroid-ipcamera/
它们提供了一个您可以使用的库,并解释了各种流选项和一些代码示例。上述信息可以在这里找到:https://github.com/fyhertz/libstreaming
https://stackoverflow.com/questions/29018606
复制相似问题