ffmpeg easydarwin 做流媒体服务器

本文详细介绍了如何使用EasyDarwin和FFmpeg搭建音视频流媒体服务,包括配置文件详解、环境变量设置及命令行操作。通过配置,实现rtsp转m3u8,并启用本地存储功能,最后通过VLC播放验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ffmpeg:http://www.ffmpeg.org/download.html#build-windows

easydarwin:https://github.com/easydarwin/easydarwin/releases

 

解压

单击 serviceinstall-easydarwin.exe 等待安装完成如下:

打开浏览器,输入 http://127.0.0.1:10008 可以看到设备当前运行状态和推流拉流的列表,效果界面如下:

到这就安装完成了,最重要的就是easydarwin.ini配置文件配置了,easydarwin自动把rtsp转成m3u8,一定要配置好

[http]
port=10008
default_username=admin
default_password=admin

[rtsp]
port=554

; rtsp 超时时间,包括RTSP建立连接与数据收发。
timeout=28800

; 是否使能gop cache。如果使能,服务器会缓存最后一个I帧以及其后的非I帧,以提高播放速度。但是可能在高并发的情况下带来内存压力。
gop_cache_enable=1

; 是否使能向服务器推流或者从服务器播放时验证用户名密码. [注意] 因为服务器端并不保存明文密码,所以推送或者播放时,客户端应该输入密码的md5后的值。
; password should be the hex of md5(original password)
authorization_enable=0

; 是否使能推送的同事进行本地存储,使能后则可以进行录像查询与回放。
save_stream_to_local=1

;easydarwin使用ffmpeg工具来进行存储。这里表示ffmpeg的可执行程序的路径
ffmpeg_path=D:/testeasydarwin/ffmpeg/bin/ffmpeg

;本地存储所将要保存的根目录。如果不存在,程序会尝试创建该目录。
m3u8_dir_path=/Users/whq19/Downloads/EasyDarwinGoM3u8

;切片文件时长。本地存储时,将以该时间段为标准来生成ts文件(该时间+一个I帧间隔),单位秒。
;如果需要直播,这个值设小点,但是这样会产生很多ts文件;如果不需要直播,只要存储的话,可设大些。
ts_duration_second=6

;key为拉流时的自定义路径,value为ffmpeg转码格式,比如可设置为-c:v copy -c:a copy,表示copy源格式;default表示使用ffmpeg内置的输出格式,会进行转码。
/stream_265=default

其中,我们要做些修改:

sve_stream_to_local表示是否开启本地存储。1表示开启,0表示不开启。我们改成1即可
ffmpeg_path表示ffmpeg的可执行文件的路径。即上一步从ffmpeg下载安装后的路径,如我的mac上的路径为/Users/apple/Downloads/ffmpeg-20180719-9cb3d8f-macos64-shared/bin/ffmpeg
m3u8_dir_path表示录像文件的存储目录。设置为一个存在的可读可写目录即可。比如我设置为/Users/apple/Downloads/EasyDarwinGoM3u8
启动EasyDarwin服务,可看到有这样一句[EasyDarwin] 2018/11/17 12:45:35 rtsp-server.go:67: Prepare to save stream to local....输出日志,表示配置本地存储成功。

一定要注意这个路径跟配置文件里的要一致。

这样就完成了设置及安装。登录默认是admin  admin

 

2、FFMPEG

①设置环境变量:https://jingyan.baidu.com/article/a3a3f81124c5e08da2eb8a29.html

②在cmd中运行如下命令:

ffmpeg -f dshow -i video="imx188_azurewave(p)":audio="麦克风阵列 (Realtek High Definition Audio)" -vcodec libx264 -r 25 -preset:v ultrafast -tune:v zerolatency -f rtsp rtsp://127.0.0.1/test

注意:audio 跟 video一定要与自己的电脑一致,查看如下图设备管理器中

运行完后出现下图则运行成功。

运行成功后就可以用VLC查看rtsp跟m3u8格式的视频了。

 

VLC里输入http://127.0.0.1:10008/record/abc/20190429/out.m3u8 地址就能看到自己了。

到此就完成了。

### 使用 FFmpegEasyDarwin 进行 RTMP 推流 为了通过 FFmpeg 将媒体文件或桌面捕获的内容推送到 EasyDarwin 并使用 RTMP 协议进行传输,可以按照如下方法配置和设置参数。 #### 配置推送本地视频文件至 EasyDarwin 对于本地已有 MP4 文件的情况,可以通过下面这条命令来完成操作: ```bash ffmpeg -re -i "国外街头广场行人视频-1920x1080-1分56秒.mp4" -c:v libx264 -preset ultrafast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 128k -ar 44100 -f flv rtmp://192.168.0.108/live/stream_key[^2] ``` 此命令中的各个选项解释如下: - `-re`:读取输入文件的速度应与原始时间戳相匹配。 - `-i`:指定要处理的输入文件路径。 - `-c:v libx264` 和其他编码相关参数用于控制输出视频的质量以及格式。 - `rtmp://192.168.0.108/live/stream_key` 是目标服务器地址及频道密钥,请替换为实际使用的 IP 地址和服务端点。 #### 实现桌面实时捕捉并推送给 EasyDarwin 如果希望直接抓取当前屏幕画面并通过网络直播出去,则可创建批处理脚本(适用于 Windows),其内容类似于这样: ```batchfile @echo off ffmpeg -f gdigrab -framerate 30 -video_size 1920x1080 -i desktop -c:v h264_nvenc -preset llhq -tune zerolatency -profile:v baseline -level 3.0 -s 1280x720 -f flv rtmp://192.168.0.108/live/desktopStreamKey[^3] ``` 上述代码片段里包含了几个重要部分: - `-f gdigrab`: 表明源数据来自图形设备接口 (GDI),即整个显示器的画面。 - `-framerate`, `-video_size`, 及 `-i desktop` 定义了采集帧率、分辨率大小还有具体的输入对象。 - 输出编解码器选择了硬件加速版本 (`h264_nvenc`) 来提高效率;当然也可以更改为软件方式如 `libx264`. - 最后的 URL 参数同样指向了一个假设性的 RTMP 流地址,记得替换成自己的服务实例信息.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值