FFmpeg RTSP 拉流的使用方法(基于FFmpeg进行rtsp推流及拉流)

一、安装 FFmpeg

FFmpeg 是一个集成了多种音频/视频编解码器、容器格式解析器、文件格式转换器等功能的开源软件。要使用 FFmpeg 拉流,首先需要安装 FFmpeg。

sudo apt-get update
sudo apt-get install ffmpeg

安装完成后,可以使用以下命令检查 FFmpeg 是否正确安装:

ffmpeg -version

二、拉取 RTSP 流

要拉取 RTSP 流,需要了解 RTSP 协议。RTSP 是一种用于控制实时多媒体会话的网络协议,它通常用于流媒体服务器和客户端之间的控制信令交互。

使用 FFmpeg 拉取 RTSP 流的方式如下:

ffmpeg -i rtsp://xxxxx -c copy -f mp4 out.mp4

其中,rtsp://xxxxx 是 RTSP 流的 URL 地址,-c copy 表示直接复制原始数据流,不进行编码;-f mp4 表示输出格式为 MP4;out.mp4 是输出的文件名。

如果要将 RTSP 流实时展示在屏幕上,可以使用以下命令:

ffmpeg -i rtsp://xxxxx -vf "drawtext=fontfile=/path/to/font.ttf:text='Sample Text':fontcolor=white@0.8:x=10:y=10:fontsize=24" -f sdl "RTSP Stream"

其中,-vf "drawtext=fontfile=/path/to/font.ttf:text='Sample Text':fontcolor=white@0.8:x=10:y=10:fontsize=24" 表示在视频上叠加文本,可以自定义文本内容、字体、大小和位置;-f sdl "RTSP Stream" 表示输出格式为 SDL(Simple DirectMedia Layer),可以实时展示视频流。

三、拉取多路 RTSP 流

如果要同时拉取多路 RTSP 流,可以使用以下命令:

ffmpeg \
  -i rtsp://xxxxx1 -c copy -f mp4 out1.mp4 \
  -i rtsp://xxxxx2 -c copy -f mp4 out2.mp4

其中,-i rtsp://xxxxx1 -c copy -f mp4 out1.mp4 表示拉取第一路 RTSP 流并保存到 out1.mp4,-i rtsp://xxxxx2 -c copy -f mp4 out2.mp4 表示拉取第二路 RTSP 流并保存到 out2.mp4。

四、其他命令参数

除了上述基本命令,FFmpeg 还有很多其他参数可以使用,例如:

  • -t 指定录制时长,例如 -t 10 表示录制 10 秒
  • -ss 指定起始时间(跳过一定时间的视频),例如 -ss 00:01:00 表示跳过前 1 分钟
  • -r 指定视频帧率,例如 -r 25 表示帧率为 25 帧/秒
  • -b 指定视频码率,例如 -b 1000k 表示码率为 1000kbps
  • 更多参数可以在 FFmpeg 官方文档 中查看

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注