使用ffmpeg本地发布rtmp/rtsp直播流

1

FFmpeg的选择与下载

选择合适的版本

首先,访问FFmpeg官方下载页面(https://ffmpeg.org/download.html),在这里可以找到最新的稳定版或 nightly 构建版本。对于大多数常规用途,推荐下载预编译的Windows静态版本,它不需要额外的库支持即可运行。

下载ZIP文件

在官方下载页面中找到适用于Windows系统的版本链接,并直接下载压缩包,如果追求更高的效率和最新特性,也可以下载预编译的FFmpeg完整二进制包。

Releases:https://github.com/BtbN/FFmpeg-Builds/releases

复制bin文件夹的位置D:\Software\ffmpeg-master-latest-win64-gpl-shared\bin

右键点击"此电脑"或"计算机",选择"属性" -> "高级系统设置" -> "环境变量"。

在"系统变量"区域中找到"Path"变量,点击"编辑"

2 下载 nginx 以及 rtmp 插件

windos 可以通过 https://github.com/illuspas/nginx-rtmp-win32下载

3 nginx.conf 修改

java 复制代码
rtmp {
    server {
        listen 1935; # RTMP监听端口,默认为1935
        chunk_size 4096;

        application live {
            live on;
            record off;
            # 示例推流地址:rtmp://localhost:1935/live/mystream
        }
    }
}

4 视频转直播流

打开终端:

taskkill /f /im nginx.exe 关闭nginx

start nginx 开启nginx

netstat -ano | findstr :1935 1935没有被占用

ffmpeg -re -i output.mp4 -c copy -f flv rtmp://localhost:1935/live/mystream (mystream是自定义名称)

  • -re 参数表示以实际时间速率读取输入文件。
  • -i output.mp4 指定要推送的视频文件。
  • -c copy 表示复制流而无需重新编码,提高效率。
  • -f flv 指定输出格式为FLV,适应RTMP协议。
  • 推送地址 rtmp://localhost:1935/live/mystream 应与Nginx配置中的应用及流名称匹配。

ffmpeg -re -stream_loop -1 -i wfj.mp4 -c copy -f flv rtmp://localhost:1935/live/mywfj

ffmpeg -re -stream_loop -1 -i wfj.mp4 -c:v libx264 -c:a aac -f flv rtmp://localhost:1935/live/mywfj

这是持续循环 的命令

5 如果报错

两个原因

1 电脑防火墙拦截 需要打开所有防火墙

2 成功后突然断开 是电脑太卡或者网络不好

6 验证

下载VLC软件

媒体-媒体-打开网络串流-输入 rtmp://localhost:1935/live/mywfj

localhost 如果在局域网中访问 可以替换为自身的

视频转 rtsp:

安装rtsp-simple-server

安装rtsp服务器,可以去这个链接

rtsp-simple-server

ffmpeg -re -stream_loop -1 -i wfj.mp4 -c:v libx264 -c:a aac -f rtsp rtsp://localhost:8554/stream

相关推荐
hu55667982 天前
FFmpeg 如何合并字幕
ffmpeg
紫金修道2 天前
【编解码】基于CPU的高性能 RTSP 多路摄像头抓帧插件:设计与实现详解
ffmpeg
雄哥0072 天前
Windows系统下FFmpeg的安装与环境配置指南
windows·ffmpeg
ALONE_WORK2 天前
ffmpeg-rk3568-mpp 硬件加速版本
ffmpeg·视频编解码·mpp·视频推流
紫金修道3 天前
【编解码】RK3588 平台基于 FFmpeg RKMPP 硬解的多路 RTSP 抓帧插件实战
ffmpeg·rkmpp
QMCY_jason3 天前
RK3588 交叉编译ffmpeg提示rockchip_mpp>=1.3.9 错误的问题
ffmpeg
Memory_荒年5 天前
FFmpeg:音视频界的“万能瑞士军刀”
ffmpeg
QJtDK1R5a5 天前
V4L2 vs GStreamer vs FFmpeg:Linux多媒体处理的三个层级
linux·运维·ffmpeg
AI视觉网奇8 天前
webrtc 硬编码
ffmpeg·webrtc