electron vlc ffmpeg rtsp 例子
要使用 FFmpeg 将一个文件作为 RTSP 流进行推送,你需要设置一个 RTSP 服务器,FFmpeg 本身并不直接提供 RTSP 服务。你可以使用 FFmpeg 将本地文件推送到 RTSP 服务器,或者使用 FFmpeg 配合一个外部 RTSP 服务器(如 rtsp-simple-server
或 ffserver
)来提供 RTSP 流。
FFmpeg RTSP 服务器推送流
假设你已经设置了一个 RTSP 服务器(例如 rtsp-simple-server
),接下来,我们将介绍如何使用 FFmpeg 将本地视频文件推送到 RTSP 服务器,并通过 RTSP 协议进行访问。
1. 安装并运行 rtsp-simple-server
DANGER
访问 GitHub 有困难或者比较慢的同学,可以通过访问这个地址获取对应的可执行文件
rtsp-simple-server
是一个轻量级且易于使用的 RTSP 服务器,适用于快速部署 RTSP 流服务。以下是安装步骤:
安装步骤:
下载
rtsp-simple-server
:- 访问 GitHub Releases 页面,选择适合你的 Windows 操作系统的版本进行下载。
解压并启动服务器:
- 解压下载的文件,并运行
mediamtx_v1.10.0_windows_amd64\\mediamtx.exe
。默认情况下,服务器会监听 8554 端口,用于提供 RTSP 流。
- 解压下载的文件,并运行
启动 RTSP 服务器:
- 打开命令行窗口,进入解压后的文件夹,运行以下命令启动 RTSP 服务器:
bashmediamtx_v1.10.0_windows_amd64\\mediamtx.exe
此时,RTSP 服务器已经在
rtsp://localhost:8554/
地址启动,等待接受流的推送。
2. 使用 FFmpeg 推送流
一旦 RTSP 服务器成功启动,你可以使用 FFmpeg 将本地的视频文件推送到该服务器。
下载安装 ffmpeg 并且配置环境变量
- https://www.ffmpeg.org/download.html
- 选择
Windows builds by BtbN
点击打开 https://github.com/BtbN/FFmpeg-Builds/releases
推送流命令示例:
假设你有一个本地视频文件 input.mp4
,可以通过以下命令将其推送到 RTSP 服务器:
ffmpeg -re -i input.mp4 -c:v libx264 -f rtsp rtsp://localhost:8554/stream
命令解析:
-re
:以实时速度读取输入文件(适用于直播流)。-i input.mp4
:指定输入文件路径,支持本地文件或其他流(例如摄像头输入)。-c:v libx264
:使用 H.264 编解码器进行视频压缩。-f rtsp
:指定输出格式为 RTSP。rtsp://localhost:8554/stream
:指定 RTSP 服务器的 URL,以及你希望推送的流名称。
通过这种方式,你可以将视频流推送到 RTSP 服务器,并可以通过 RTSP 客户端(如 VLC)进行观看。
推流为 H.265(HEVC)
如果你想将视频流推送为 H.265 格式以提高压缩效率,可以使用 FFmpeg 中的 libx265
编解码器。以下是推流的命令示例:
ffmpeg -re -i "C:\Users\Administrator\Videos\你的文件.mp4" -c:v libx265 -f rtsp rtsp://localhost:8554/stream
你还可以通过调整压缩参数来控制输出质量和性能:
ffmpeg -re -i "C:\Users\Administrator\Videos\你的文件.mp4" -c:v libx265 -preset fast -crf 23 -f rtsp rtsp://localhost:8554/stream
命令解析:
-preset fast
:指定编码速度,较快的编码会牺牲一些视频质量以提高速度。-crf 23
:设置视频的质量,范围是 0 到 51,值越低质量越高。23
是一个常用的平衡值。
使用 Electron VLC 播放 RTSP 视频流
一旦视频流推送成功,你可以使用 VLC 播放器查看 RTSP 流。只需在 VLC 播放器中输入 RTSP 流地址:
rtsp://localhost:8554/stream
VLC 将会连接到 RTSP 服务器,并播放实时视频流。
最后
通过 FFmpeg 配合 RTSP 服务器,你可以轻松将本地视频文件转换为实时视频流,并通过 RTSP 协议进行播放。无论是推送 H.264 还是 H.265 格式的视频流,FFmpeg 都能提供强大的支持,而 rtsp-simple-server
作为 RTSP 服务器,能为你提供简单且稳定的视频流传输解决方案。