EasyDarwin+FFmpeg实现本地音视频推流

时间:2025-01-22 22:53:57

所需

  • EasyDarwin 用作流媒体转发服务器
  • FFmpeg 用于转码及推流

步骤

1、 安装 EasyDarwin,下载地址
2、 解压后如图:

有两种方法运行
(1) 运行 ,这样会弹出一个窗口,关闭窗口服务端就停止了
(2) 运行 ,作为后台服务安装启动,将一直常驻,可运行 卸载(推荐这种)

3、 安装 FFmpeg,下载地址

在这里插入图片描述

4、 将 FFmpeg 添加到环境变量,此电脑—右键—属性—高级系统设置—环境变量—系统变量—找到 Path 的变量名—编辑—添加 FFmpeg 目录,注意要指定到 bin 目录

5、 推流脚本

(1) 用于视频文件推流

@echo off
@REM (1,1,X) 修改第三个X值表示要推几路流
@REM -re 以视频原始帧率发送
@REM -stream_loop -1表示无限循环
@REM -i 设定输入视频

for /L %%i in (1,1,8) do (
    start ffmpeg -re -stream_loop -1 -i %1 -vcodec copy -acodec copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:554/%%i
)

(2) 将其它格式视频转码为 h264 裸流,若要转为 h265,将命令中的两处 x264 改成 x265 即可

@echo off
@REM -an: 去掉音频
@REM -vn: 去掉视频
@REM -acodec: 设定音频的编码器,未设定时则使用与输入流相同的编解码器,音频解复用一般后面加copy表示拷贝
@REM -vcodec: 设定视频的编码器,未设定时则使用与输入流相同的编解码器,视频解复用一般后面加copy表示拷贝
@REM -f: 输出格式(视频转码)若不指定则从文件后缀名推断 -f h264
@REM -bf: B帧数目控制
@REM -i: 设定输入流
@REM -r: 设置视频频率(FPS)
@REM -y: 输出时覆盖输出目录已存在的同名文件
@REM keyint: 关键帧最大间隔
@REM min-keyint: 关键帧最小间隔

ffmpeg -i %1 -vcodec libx264 -bf 0 -r 15 -x264-params "keyint=30:min-keyint=30" -an -y %~

复制上面代码保存成脚本文件,文件后缀名为.bat

脚本的使用方法很简单,将视频文件拖拽到脚本上执行即可

6、 在浏览器打开 http://localhost:10008/#/ 可查看转发服务器的推流列表

请添加图片描述