和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输

发现好久没有写博客了,最近一直在纠结着sdio wifi的驱动,至此还没有完美的解决问题,虽然可以连接上网络,但是其传输速度之慢,让人难以接受。不过对于网络,不管是底层驱动,还是一些网络基础知识,路由器,服务器等等也学了不少东西了。更加深入学习后,可以分享学习过程。

       期间,用6410来验证代码和sdio的硬件,还受高人指点,顺带玩了下ffmpeg+ffserver流媒体的传输。确实很不错。因为这条路通了之后,那么摄像头采集到数据,通过ffserver可以直接网络传输,然后client就可以收到其数据,那么网络监控也就可以通了。哈哈哈,下面还是把这个过程记录下来。有高手指导,这个确实花了一点点时间就搞定了。

       首先当然就是下载ffmpeg了。git clone或者直接官网http://ffmpeg.org/下载都可以。,下载好了,那么首先就是配置下了。下面是我的配置:参照高手的,不用动态库,直接静态库,所以编译好以后可以直接拷贝一个应用程序就可以在ok6410上面跑了。

[html] view plain copy
  1. ./configure --disable-shared--enable-static --prefix=/home/eastmoon/ok6410/rootfs/ffmpg--cross-prefix=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- --arch=arm--target-os=linux --enable-gpl --disable-bzlib --disable-zlib  

 

这样编译后就有了ffmpeg和ffserver了,然后把这两个拷贝到ok6410的rootfs/bin下(我是用网络挂载nfs的),那么在开发板上就可以直接ffserver命令试试可不可以成功运行了。

 

既然可以运行这个程序,那么还是缺少一个ffserver.conf配置文件。在ffmpeg源码中的doc目录下就有这个了。主要拿来就可以用了。主要就是添加了下面这个,因为要播放本地的数据。然后把一个mpeg格式的源test1.mpeg和这个配置文件ffserver.conf一起放在rootfs/ffserver文件夹下。

 

[html] view plain copy
  1. <Stream test2.mpg>  
  2. File /ffserver/test1.mpeg  
  3. Format mpeg  
  4. </Stream>  

 

好了,一切准备就绪,那么接下来就是要开始连接测试下ffserver这个服务有没有运行了。在开发板上运行ffserver –f /ffserver/ffserver.conf

可以看到下面这个,

和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输_第1张图片

接着在pc机上就可以用浏览器打开了,因为我的板子的ip是192.168.5.120,ffserver启动配置里面的端口号是8090.所以在浏览器里面输入:

http://192.168.5.120:8090/stat.html就可以看到下面的网页,那就表示ffserver正常运行了。

 和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输_第2张图片

 

 

 

既然ffserver正常了,那么接着去试试播放吧。

在pc机上用ffplay接可以尝试了(事先要装好)。

ffplay http://192.168.5.120:8090/test2.mpg。

看到播放的视频了,也听到了声音。

 和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输_第3张图片

这里只是简单的使用了ffmpeg,以后还是需要看看其源码,因为他是专门用来编解码的。所以,很多音视频都是可以从这里裁剪的。很好,很强大。等有时间得把摄像头搞进去。Wifi已经木有什么问题了。所以,搞定摄像头数据采集编码后剩下的就很简单了。

你可能感兴趣的:(和菜鸟一起学ok6410之ffmpeg+ffserver实现流媒体传输)