ubuntu中使用ffmpeg和nginx推流rtmp视频

最近在测试ffmpeg推流rtmp视频,单独安装ffmpeg是无法完成推流的,需要一个流媒体服务器,常用nginx,可以直接在ubuntu虚拟机里面测试一下。

测试过程不涉及编译ffmpeg和nginx,仅使用基本功能:

1 安装ffmpeg

bash 复制代码
sudo apt install ffmpeg

2 安装nginx

bash 复制代码
sudo apt install nginx

3 安装nginx的rtmp模块

bash 复制代码
sudo apt-get install libnginx-mod-rtmp

sudo service nginx restart

4 配置nginx:

vim /etc/nginx/nginx.conf

增加如下内容:

复制代码
rtmp {
        server {
                listen 1935;
                chunk_size 4096;
 
                application live {
                        live on;
                        record off;
                }
        }
}

这个内容的意思是监听1935端口,rtmp的app名字为live,本地的一个流媒体服务器就搭好了。

5 经过上面的步骤各项准备工作都做好了,现在我想推流ubuntu本地的一个MP4文件到刚才的流媒体服务器(其实理论上只要是能访问上面的流媒体服务器的设备都可以推流到服务器,不一定是本地,我也可以在win10上面推进去ubuntu,再从win10拉出来),且一直循环推送,键入如下命令:

ffmpeg -stream_loop -1 -re -i /mnt/hgfs/vmware_ubuntu_share/input.mp4 -c copy -f flv -flvflags no_duration_filesize rtmp:192.168.63.128:1935/live/1

这个命令的意思是:

-stream_loop -1 循环推送

-re 使用视频原来的帧率

-i /mnt/hgfs/vmware_ubuntu_share/input.mp4 要推送的mp4文件路径

-flvflags no_duration_filesize 禁止no_duration_filesize错误

192.168.63.128 ip地址改为自己的ubuntu地址,即流媒体服务器地址

推送成功如图。

6 在win10桌面打开ffplay从流媒体服务器拉流看看

ffplay rtmp:192.168.63.128:1935/live/1

拉流也是成功的。

引用:

ubuntu20.04搭建Nginx+rtmp服务器 - 晚安z - 博客园 (cnblogs.com)

unknown directive "rtmp" in /etc/nginx/nginx.conf:76 - Stack Overflow

使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法_windows ffmpeg循环推流-CSDN博客

ffmpeg推流报错Failed to update header with correct duration.-CSDN博客

相关推荐
咖啡の猫5 小时前
TypeScript基本类型
linux·ubuntu·typescript
重庆Debug6 小时前
当我试图搞清楚 FFmpeg 的硬件加速时,我写了一个能自动检测所有 GPU 编码器的小工具
ffmpeg
熊猫钓鱼>_>6 小时前
基于Trae/Whisper/FFmpeg与Knowledge Graph MCP技术开发语音生成会议纪要智能应用
开发语言·人工智能·python·深度学习·ffmpeg·whisper·trae
tzhou644527 小时前
Docker 部署 Nginx HTTPS 服务(CentOS 7)
nginx·docker·https
等什么君!8 小时前
nginx启动失败 ,报404和 idea端口号被占用的解决办法
运维·nginx
知识分享小能手8 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 系统启动与关闭详解(11)
linux·学习·ubuntu
小代码20168 小时前
ubuntu vscode docker php 环境搭建
vscode·ubuntu·docker·php·laravel
全栈工程师修炼指南9 小时前
Nginx | HTTP 反向代理:当缓存失效时如何减轻后端(上游)服务压力?
运维·网络协议·nginx·http·缓存
Danileaf_Guo9 小时前
OSPF路由引入的陷阱:为何Ubuntu上静态路由神秘消失?深挖FRR路由分类机制
linux·运维·网络·ubuntu·智能路由器
张某人的胡思乱想9 小时前
windows远程ubuntu
linux·运维·ubuntu