Skip to content

electron vlc ffmpeg rtsp 例子

要使用 FFmpeg 将一个文件作为 RTSP 流进行推送,你需要设置一个 RTSP 服务器,FFmpeg 本身并不直接提供 RTSP 服务。你可以使用 FFmpeg 将本地文件推送到 RTSP 服务器,或者使用 FFmpeg 配合一个外部 RTSP 服务器(如 rtsp-simple-serverffserver)来提供 RTSP 流。

FFmpeg RTSP 服务器推送流

假设你已经设置了一个 RTSP 服务器(例如 rtsp-simple-server),接下来,我们将介绍如何使用 FFmpeg 将本地视频文件推送到 RTSP 服务器,并通过 RTSP 协议进行访问。

1. 安装并运行 rtsp-simple-server

DANGER

访问 GitHub 有困难或者比较慢的同学,可以通过访问这个地址获取对应的可执行文件

https://gitee.com/fe521/electron-vlc-ffmpeg-rtsp-simple

rtsp-simple-server 是一个轻量级且易于使用的 RTSP 服务器,适用于快速部署 RTSP 流服务。以下是安装步骤:

安装步骤:

  1. 下载 rtsp-simple-server

  2. 解压并启动服务器

    • 解压下载的文件,并运行 mediamtx_v1.10.0_windows_amd64\\mediamtx.exe。默认情况下,服务器会监听 8554 端口,用于提供 RTSP 流。
  3. 启动 RTSP 服务器

    • 打开命令行窗口,进入解压后的文件夹,运行以下命令启动 RTSP 服务器:
    bash
    mediamtx_v1.10.0_windows_amd64\\mediamtx.exe

    此时,RTSP 服务器已经在 rtsp://localhost:8554/ 地址启动,等待接受流的推送。

2. 使用 FFmpeg 推送流

一旦 RTSP 服务器成功启动,你可以使用 FFmpeg 将本地的视频文件推送到该服务器。

下载安装 ffmpeg 并且配置环境变量

  1. https://www.ffmpeg.org/download.html
  2. 选择 Windows builds by BtbN 点击打开 https://github.com/BtbN/FFmpeg-Builds/releases

推送流命令示例:

假设你有一个本地视频文件 input.mp4,可以通过以下命令将其推送到 RTSP 服务器:

bash
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 编解码器。以下是推流的命令示例:

powershell
ffmpeg -re -i "C:\Users\Administrator\Videos\你的文件.mp4" -c:v libx265 -f rtsp rtsp://localhost:8554/stream

你还可以通过调整压缩参数来控制输出质量和性能:

powershell
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 服务器,能为你提供简单且稳定的视频流传输解决方案。