OrangePI通过ffmpeg和nginx把摄像头输出为rtmp

Posted blog of asml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OrangePI通过ffmpeg和nginx把摄像头输出为rtmp相关的知识,希望对你有一定的参考价值。

首先安装点基础套件

sudo apt install -y ffmpeg libx264-dev libssl-dev yasm cmake

从源码编译安装ffmpeg

以上命令已经安装了发布版的ffmpeg,不过如果有需要,可以按照源码版的编译安装


git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
sudo ./configure --enable-shared --prefix=/usr/local/ffmpeg
make
sudo make install

编译安装nginx

sudo git clone https://github.com/arut/nginx-rtmp-module.git
sudo wget http://nginx.org/download/nginx-1.16.1.tar.gz
sudo tar -xvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
sudo  ./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-cc-opt="-Wimplicit-fallthrough=0"
make -j4
make install

nginx配置文件

user www-data;
worker_processes auto;
pid /tmp/nginx.pid;

events {
  worker_connections 768;
  # multi_accept on;
}

rtmp {
    server {
        listen 1335;
        application rtmp {
            live on;
            max_connections 1024;
        }
        application zbcs {
            live on;
            record off;
        }
        application hls{
            live on;
            hls on;
            hls_path /rtmp/;
            hls_fragment 1s;
        }
    }
}

写 systemd 配置文件

mkdir /usr/lib/systemd/system/
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx optimized HTTP server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/tmp/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecsTOP=/usr/bin/kill -s QUIT $MAINPID
privateTmp=true

[Install]
WantedBy=multi-user.target

启动

systemctl enable nginx
systemctl restart nginx
systemctl status nginx

推送

# 摄像头采集推送
ffmpeg -i /dev/video0  -s 320x240 -f flv -an rtmp://127.0.0.1:1335/rtmp/1

# 视频文件推送
ffmpeg -stream_loop -1 -i cutb.mp4 -s 320x240 -f flv -an rtmp://127.0.0.1:1335/rtmp/1

以上是关于OrangePI通过ffmpeg和nginx把摄像头输出为rtmp的主要内容,如果未能解决你的问题,请参考以下文章

项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)

项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)

海康摄像头开发SRS+ffmpeg+http-flv+flv.js(二)

简易视频直播系统的搭建实践

流媒体服务海康摄像头RTSP视频推流转码拉流直播综合应用:VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播

windows下搭建ffmpeg+nginx+rtmp-module搭建实时视频环境