我需要将安卓相机/文件的视频流传输到远程ffserver并进行广播。在Ubuntu桌面上,我可以通过发出如下命令来实现此操作:
所以基本上我想要在安卓系统上完成以上操作。经过多次搜索,我已经做了以下工作 - 我找到了这个链接http://bambuser.com/opensource,下载了ffmpeg源码并进行了构建。构建输出以下几个内容: 1.共享库[libavcodec,libavcore,libavdevice,libavfilter, libavformat,libavutil,libswscale] 2.可执行文件[ffmpeg,ffprobe]
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
所以基本上我想要在安卓系统上完成以上操作。经过多次搜索,我已经做了以下工作 - 我找到了这个链接http://bambuser.com/opensource,下载了ffmpeg源码并进行了构建。构建输出以下几个内容: 1.共享库[libavcodec,libavcore,libavdevice,libavfilter, libavformat,libavutil,libswscale] 2.可执行文件[ffmpeg,ffprobe]
不确定如何使用这些资源添加我的功能,所以我尝试了以下方法: 1. 使用System.loadLibrary()在我的Activity中加载库,然后将ffmpeg可执行文件复制到assets文件夹中,在运行时将其复制到应用程序的“files”目录中,并使用Runtime.getRuntime().exec()设置可执行文件的权限。最后一步是在Java中执行它,使用以下语句:
Runtime.getRuntime().exec("ffmpeg -i file:///android_asset/movie.mp4http://<server>:8090/cam1.ffm");
2. 我将编译生成的ffmpeg.c、共享库和“include”文件夹复制到了我的jni文件夹,并添加了一个jni函数,用来包装ffmpeg.c中的main()函数。采用这种方法,我发现自己不得不从ffmpeg源码中复制几个头文件才能使ndk-build成功,但我非常怀疑这是否是正确的做法。
以上两种方法对我都没有起作用,我不确定我哪里出错了。因此,对于如何实现在Android上简单地流式传输像mp4文件这样的视频文件,我非常感激任何帮助。