Linux 摄像头流服务,linux FFMPEG 摄像头采集数据推流

https://blog.csdn.net/wwy__/article/details/81298460?utm_source=blogxgwz1

环境vmware14    Ubuntu14

下载源码

mkdir /home/ffmpeg

cd /home/ffmpeg

wget http://nginx.org/download/nginx-1.7.5.tar.gz

wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

解压两个源码包

cd nginx-1.7.5\

./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master

make

make install

wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx

chmod +x /etc/init.d/nginx

update-rc.d nginx defaults

推流:ffmpeg -re -i /home/ffmpe

配置 nginx-rtmp 服务器

打开 /usr/local/nginx/conf/nginx.conf

rtmp {

server {

listen 1935;

chunk_size 4096;

application live {

live on;

record off;

exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;

}

application live360p {

live on;

record off;

}

}

}

到这里服务器安装成功

2)安装ffmpeg

下载源码

wget http://ffmpeg.org/releases/ffmpeg-3.4.4.tar.bz2

关于这个的安装教程很多暂且略过

安装VLC media player

在虚拟机准备一个MP4文件然后进行推流

推流命令:ffmpeg -re -i /home/ffmpeg/test1.mp4  -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/live/test1"

后面尝试外接摄像头进行推流,发现ffmpeg一些功能还未编译进去,在虚拟机启用v4l2的时候报错误

重新配置编译

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-nonfree --enable-libx264 --enable-libxcb --enable-libv4l2

使能libx264 libv4l2等功能,

在执行上面这个配置命令可能会报not found x264 v4l2等错误

(具体可参考https://blog.csdn.net/fgf00/article/details/78203399?locationNum=5&fps=1)

apt-get install libx264-dev

apt-get install libv4l-dev

即可解决

make

make install

到安装目录下执行推流命令

./ffmpeg -f video4linux2 -s  640x480 -i /dev/video0  -f flv rtmp://127.0.0.1:1935/live/live (通过拉流发现画面非常卡顿,应该是参数配置问题)

在执行的时候可能会报未找到某一个库

ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file:

为 Ffmpeg 加入环境变量

vi /etc/profile

加入以下内容:

export PATH="/usr/local/ffmpeg/bin:$PATH"

然后保存并运行source /etc/profile

我又陆续增加如下几个参数,感觉效果不大,后面再研究这些参数含义

./ffmpeg -f video4linux2 -r 12 -s  640x480 -i /dev/video0  -f flv rtmp://127.0.0.1:1935/live/live

./ffmpeg -f video4linux2  -r 12 -s 640x480 -i /dev/video0 -vcodec libx264 -f flv rtmp://127.0.0.1:1935/live/live

(ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv rtmp://127.0.0.1/rtmpsvr/rtmp1)这个命令是在 http://www.cnblogs.com/lidabo/p/7099546.html  这个博客找到的,应该是可以实现的,可能缺少某些功能未编译进去

打开vlc(可以下载windows也可以在虚拟机下载vlc)

输入地址进行拉流,如果在windwos就使用虚拟机ip地址

拉流:rtmp://127.0.0.1:1935/live/test1

附上常用命令

ffmpeg常用命令

-f 强迫采用格式fmt

-i filename 输入文件

-s size 设置帧大小 默认是160x128

-r 设置帧频,默认25  (待验证,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)

-qscale:v n(q:v n) n表示视频质量级别1-31(待验证值越小,质量越好)

-ab bitrate设置音频码率

-ar freq 设置音频采样率

-ac channels设置通道,默认为1

-vd device 设置视频捕获设备 eg:/dev/video0

-av device 设置音频设备 eg:/dev/dsp

-vcodec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值