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

原文地址:https://www.cnblogs.com/DragonStart/p/12151452.html

时间: 2024-10-09 01:46:34

OrangePI通过ffmpeg和nginx把摄像头输出为rtmp的相关文章

FPGA统计摄像头输出-基于MD9T112

FPGA HDL源程序 FPGA统计摄像头的输出像素,窗口尺寸等等 //---------------------------------------------------------------------------- // user_logic.v - module //---------------------------------------------------------------------------- // // ***************************

Nginx 向客户端输出真实的后端IP地址

因为涉及到内外网的改造,所以狠多东西现在需要依赖于openresty来做总控实现.然后就碰见了一个比较难办的问题,即在upstream时候,如何获取实际处理请求的server地址.假设有如下upstream配置: upstream backend { server 127.0.0.1:88882 server 127.0.0.1:88892 } location /test { proxy_pass http://backend2 } 当我请求test的时候,我同时想直到到底是backend的哪

nginx搭建支持http和rtmp协议的流媒体服务器之一

实验目的: 让Nginx支持flv和mp4格式文件,支持RTMP协议的直播和点播: 同时打开RTMP的HLS功能 ?资料: HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议. HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器. 它也很容易使用内容分发网络来传输媒体流. 使用ffmpeg来完成对flv.mp4.mp3等格式的转化(点播实验暂时不测试) 一.准备工作

FFmpeg总结(十二)用ffmpeg与nginx实现直播多路流并发播放

下载 nginx 和 nginx-rtmp源码: http://nginx.org/download/nginx-1.5.10.tar.gz https://github.com/arut/nginx-rtmp-module/archive/master.zip 编译安装: cd nginx-1.5.10 ./configure –with-http_ssl_module –add-module=../nginx-rtmp-module-master make make install 浏览器输

nginx的php-fpm 输出php错误日志

1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog 原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程

使用ffmpeg命令实现本地摄像头的远程访问——非编程纯命令

1 ffserver命令 fserver是一个音频和视频的流式服务器.它通过在启动时读入的配置文件完成配置,不指定时用默认的/etc/ffserver.conf文件.ffserver接受一些或者FFM流作为输入然后通过RTP/RTSP/HTTP推流.ffserver监听在配置文件中指定的端口,在配置文件中输入的流叫做feed,每一个都是用<Feed>的节来指定的.每一个feed可以有不同格式的的不同输出流,每一个在配置文件中用<Stream>节来指定.ffserver是通过推送用f

FFmpeg源代码分析:日志输出系统(av_log()等)

本文我们看一下FFmpeg的日志(Log)输出系统的源代码.日志输出部分的核心函数只有一个:av_log().使用av_log()在控制台输出日志的效果如下图所示. 函数调用结构图 FFmpeg日志输出系统的函数调用结构图如图所示. av_log() av_log()是FFmpeg中输出日志的函数.随便打开一个FFmpeg的源代码文件,就会发现其中遍布着av_log()函数.一般情况下FFmpeg类库的源代码中是不允许使用printf()这种的函数的,所有的输出一律使用av_log().av_l

Nginx Error 日志输出 SSL_shutdown 异常信息

用git把网站目录都监控起来了. 发现nginx error log总是有改动,, 查看了一下说是 ssl shutdow,, # openssl versionOpenSSL 1.0.2k-fips 26 Jan 2017 # nginx -vnginx version: nginx/1.8.0 这怎么好呢.. 据说是要升级nginx才能解决,,,, git init 初始化目录 git add -A 全部添加到监控状态 git status   查看有没有变动的地方 git rm -r --

ffmpeg命令 从网络摄像头录制视频

安装 sudo apt-get install ffmpeg 录制视频为record.mp4文件 ffmpeg -y -i rtsp://cameral_ip:port -vcodec copy -acodec copy -f mp4 record.mp4 原文地址:https://www.cnblogs.com/xbit/p/10335140.html