一、安装 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 官方文档 中查看