在NanoPi-NEO上用 ffserver+ffmpeg 实现USB摄像头视频监控

    关于ffmpeg+ffserver搭建流媒体服务器的文章网上有很多,视频编码基本上都是软编码来实现的。NanoPi-NEO的SoC里集成了Cedrus 视频硬件编码器,利用Cedrus对USB摄像头的数据实现硬件H264编码,可以降低CPU的占用率并大大提高编码速度。
      具体步骤如下:
1.  在当前目录下(/home/fa)编制一个ffserver配置文件myffserver.conf文件,内容如下:
#-----------------------------myffserver.conf ------------------------
HTTPPort 8099                       #绑定端口号
HTTPBindAddress 0.0.0.0             #绑定ip
MaxHTTPConnections 1000         #最大HTTP连接数
MaxClients 1000                 #最大客户端连接数
MaxBandwidth 50000               #最大带宽
CustomLog -                     #日志文件,“-”为直接打印

<Feed feed1.ffm>
   File /tmp/feed1.ffm
   FileMaxSize 20M
   ACL allow 127.0.0.1
</Feed>

<Stream webcam.flv>
     Feed feed1.ffm
     Format flv
     VideoFrameRate 15
     VideoBufferSize 1000
     VideoSize 480x320
     VideoBitRate 30000
     VideoGopSize 12
     AVOptionVideo flags +global_header
     NoAudio
</Stream>

以上参数可做调整,注意VideoSize和VideoBufferSize等会有关联。

2. 在/home/fa/下建立一个管道文件:  mkfifo -m 755 vfifo

3.  编辑一个webcam.sh脚本,内容如下:
ffserver -f /home/fa/myffserver.conf  &  ffmpeg  -i /home/fa/vfifo "http://127.0.0.1:8099/feed1.ffm" &
ffmpeg -re -f v4l2 -i /dev/video0 -pix_fmt nv12 -c:v cedrus264 -an -f flv /home/fa/vfifo

4.  插入usb摄像头,运行webcam.sh 即可开启ffserver的摄像头流服务。在VLC或ffplay等流播放软件

 中输入 http://IP:8099/webcam.flv可以播放监控画面.  

5.  注意:1。  用vlc播放有10s左右延时.  据称用ffplay观看时延会小很多。
                 2。 启动webcam.sh后要等一会,直到vfifio缓冲结束,feed开始的时候再连接网络播放器,不然程序会退出。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Midas-Zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值