【发布时间】:2013-01-22 22:47:40
【问题描述】:
我需要从安卓相机/文件流式传输到远程 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 中加载库,然后将 ffmpeg 可执行文件复制到 assets 文件夹,在运行时我将其复制到应用程序的“文件”目录,然后使用 Runtime.getRuntime().exec 设置可执行文件的权限()。然后最后一步是在java中使用以下语句执行它:
Runtime.getRuntime().exec("ffmpeg -i file:///android_asset/movie.mp4http://<server>:8090/cam1.ffm");
2。将 ffmpeg.c、共享库和构建生成的“include”文件夹复制到我的 jni 文件夹中,并在 ffmpeg.c 中添加了一个环绕 main() 函数的 jni 函数。使用这种方法,我发现自己必须从 ffmpeg 源中复制几个头文件才能使 ndk-build 成功,我非常怀疑这是否是要走的路。
上述两种方法对我没有用,我不确定我哪里出错了,所以任何关于如何做一个简单的 ffmpeg 流式传输(如来自 android 的 mp4 文件)的帮助将不胜感激。
【问题讨论】:
标签: android android-ndk ffmpeg