我需要从一个
Android摄像头/文件流到一个远程ffserver,它将播放我的视频.我可以通过发出如下命令在ubuntu的桌面上执行此操作:
ffmpeg -f video4linux2 -s 640x480 -r 25 -i /dev/video0 http://192.168.0.20:8090/cam1.ffm
或流式传输这样的文件:
ffmpeg -i /home/kev/share/movie.mp4 http://192.168.0.20:8090/cam1.ffm
所以基本上我希望能够从android做到以上.经过几次搜索,这是我到目前为止所做的 – 我遇到了这个链接http://bambuser.com/opensource,我从中下载了ffmpeg源并构建了它.构建输出几件事:
1.共享库[libavcodec,libavcore,libavdevice,libavfilter,libavformat,libavutil,libswscale]
2.可执行文件[ffmpeg,ffprobe]
不知道如何使用这些资源插入我的功能这是我迄今为止尝试过的:
1.使用System.loadLibrary()在我的Activity中加载libs然后将ffmpeg可执行文件复制到assets文件夹,在运行时我复制到我的应用程序的“files”目录,然后使用Runtime.getRuntime()设置可执行文件的权限.exec ().然后最后一步是在java中使用以下语句执行它:
Runtime.getRuntime().exec("ffmpeg -i file:///android_asset/movie.mp4http://:8090/cam1.ffm");
2.复制ffmpeg.c,共享库和构建到我的jni文件夹生成的“include”文件夹,并添加了一个包装ffmpeg.c中main()函数的jni函数.通过这种方法,我发现自己必须从ffmpeg源复制几个头文件才能使ndk-build成功,我非常怀疑这是否可行.
以上两种方法对我有用,我不知道我哪里出错了,所以任何有关如何做一个简单的ffmpeg流媒体的帮助就像一个来自android的mp4文件将受到高度赞赏.