当前位置: 首页 > news >正文

用 FFmpeg 实现 RTMP 推流直播

  • RTMP(Real-Time Messaging Protocol) 是直播行业中常用的传输协议。

  • 一般来说,直播服务商会给你:

    • ✅ 一个 RTMP 推流地址(你推视频上去)

    • ✅ 一个 HLS 或 FLV 拉流地址(观众观看用)

看你是自己构建的直播平台还是接入第三方直播服务(如微赞、抖音、B站等),反正拿到这个推流的RTMP地址就可以了。

我这里是用微赞

观看地址:https://ject.h5.weizan.cn/sl/0ea4bd2f0623ed57a810621e1109f1e3
推流地址:rtmp://push-hssh.vzan.com/v/1982222222221?t=911111
拉流地址:https://p2hssh.vzan.com/111111/22222/live.m3u8?zbid=3333&tpid=4444

基础命令结构

FFmpeg 推流使用 flv 格式通过 RTMP 协议推送,命令格式如下:

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -f flv "rtmp://your.rtmp.server/live/stream-key"

参数解释:

参数含义
-re按真实速度读取输入,适合直播
-i input.mp4输入源(可为视频文件、摄像头等)
-c:v libx264视频编码格式
-preset veryfast编码速度设置,越快 CPU 压力越小
-tune zerolatency直播优化,降低延迟
-c:a aac音频编码(推荐使用 AAC)
-f flv输出格式,RTMP 需要使用 FLV 容器
"rtmp://..."推流目标地址

几种常见推流场景

1. 推送本地视频文件


ffmpeg -re -i index.mp4 -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -f flv "rtmp://your.rtmp.server/live/stream-key"

推送本地的index.mp4

2. 循环推送视频(无限轮播)

ffmpeg -re -stream_loop -1 -i 6a7045fbf54a85c6c3979fdc23526907.mp4 -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -f flv "rtmp://your.rtmp.server/live/stream-key"

视频播放完自动回到开头继续推

3. 推送摄像头画面

Windows 示例(先列出摄像头名称):
ffmpeg -list_devices true -f dshow -i dummy
然后推流:
ffmpeg -f dshow -i video="Integrated Camera" -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -f flv "rtmp://your.rtmp.server/live/stream-key"

4. 推送桌面屏幕(Windows)

ffmpeg -f gdigrab -framerate 15 -i desktop -c:v libx264 -preset veryfast -tune zerolatency -f flv "rtmp://your.rtmp.server/live/stream-key"

http://www.dtcms.com/a/240087.html

相关文章:

  • 使用centos服务器和Let‘s Encypted配置SpingBoot项目的https证书
  • 『uniapp』消息推送 unipush的对接 支持通知消息内容客户端自定义(保姆级图文)
  • 数字孪生+AR/VR的融合创新
  • RocketMQ 客户端负载均衡机制详解及最佳实践
  • Centos 7 服务器部署多网站
  • 关于uniapp展示PDF的解决方案
  • 相机Camera日志实例分析之一:相机Camx【前置慢动作分辨率切换720P、1080P录制】单帧流程日志详解
  • AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
  • 相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
  • 三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
  • ArcGIS Pro+ArcGIS给你的地图加上北回归线!
  • 相机从app启动流程
  • Qt 窗口
  • STA(Station)模式与AP(Access Point)模式
  • VSCode 使用CMake 构建 Qt 5 窗口程序
  • [C++错误经验]case语句跳过变量初始化
  • DAY 26 函数专题1:函数定义与参数
  • Word VBA快速制作填空题
  • 基于 PyTorch 和 OpenCV 的实时表情检测系统
  • OPENCV的cvtColor和putText的讲解
  • 零基础设计模式——行为型模式 - 命令模式
  • Unity | AmplifyShaderEditor插件基础(第六集:平面波动shader)
  • java中word快速转pdf
  • 2.2.2 ASPICE的需求分析
  • 大话软工笔记—需求分析概述
  • Vue 3 + WebSocket 实战:公司通知实时推送功能详解
  • 测试微信模版消息推送
  • Yii2项目自动向GitLab上报Bug
  • Linux-08 ubuntu 的 chrome浏览器不能使用 搜狗 输入法,但是火狐可以
  • 【MATLAB第119期】基于MATLAB的KRR多输入多输出全局敏感性分析模型运用(无目标函数,考虑代理模型)