利用FFmpeg实现windows和linux(federo系统)在局域网环境中的usb摄像头RTSP推流与拉流(在同一局域网下任意PC设备都可以进行拉流操作)

1.安装FFmpeg

FFmpeg 是一个免费、开源的跨平台视频和音频流处理工具。

首先,打开终端(在 Windows 中是命令提示符,在 Windows 搜索栏中输入“cmd”,然后打开命令提示符),然后运行以下命令以检查您的系统上是否已安装 FFmpeg:

ffmpeg -version

1.1 Windows系统

转到 FFmpeg 官方网站,然后下载最新版本的 Windows 安装包。

下载完成后,双击安装包文件,然后按照提示操作安装 FFmpeg。

1.2 Ubuntu 和 Debian 系统

对于 Ubuntu 和 Debian 系统,可以使用 apt 包管理器来安装 FFmpeg:

sudo apt update
sudo apt install ffmpeg

1.3 CentOS 和 Fedora 系统

对于 CentOS 和 Fedora 系统,可以使用 yum 来安装 FFmpeg:

sudo yum install ffmpeg

1.4 macOS系统

对于 macOS系统,可以使用 Homebrew 来安装 FFmpeg:

brew install ffmpeg

1.5指令无法下载后手动下载

linux系统指令无法下载时,可以通过https://johnvansickle.com/ffmpeg/下载后解压文件,根据自己开发板的系统和架构自行选择

在安装完成后,可以再次运行

ffmpeg -version

命令来检查是否安装成功。如果安装成功,将显示安装的版本号等信息。


2. 安装rtsp-simple-server

安装rtsp服务器,可以去这个链接

rtsp-simple-server

下载对应编译好的文件直接运行就好。

2.1 windows下载

2.2 linux下载(根据arm架构下载,是armv7?8?9?)


3.在linux系统上进行rtsp推流操作

3.1准备工作

我这里是搭载了federo28系统的开发板,各位可以参考,如下:

首先在/home(或者自己选择的)路径下创建自己的文件夹,我创建的qinzhiyu文件如下:

将手动下载好的linux系统的ffmpegrtsp-simple-server压缩包和放入自己建的文件中,并且解压,如下:

通过以下ifconfig查看局域网的ip地址,我的地址为192.168.22.50

3.2后台运行rtsp-simple-server

rtsp-simple-server所在目录中,输入以下指令

./rtsp-simple-server &   #&可以使得rtsp-simple-server可执行文件后台运行

运行后的状态如下,在下面的推流中选择rtsp的8554端口

3.3查看摄像头驱动路径

通过下面指令对比插上摄像头后,在/dev目录下观察video开头文件变化,我这里是多了video4文件

ls /dev

3.4利用ffmpeg把摄像头画面推流到搭建局域网的rtsp视频流服务器上

根据查询到的摄像头的路径,输入下面的指令:(根据需求选择TCP或者UDP传输协议)

TCP

ffmpeg -re -i /dev/video4 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency  -rtsp_transport tcp -f rtsp rtsp://192.168.222.50:8554/camera_test

UDP

ffmpeg -re -i /dev/video4 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency  -rtsp_transport udp -f rtsp rtsp://192.168.222.50:8554/camera_test

运行后的状态如下:


4.利用ffplay在windows上进行拉流

在windows中下载FFmpeg压缩文件后解压,在ffmpeg-2023-02-22-git-d5cc7acff1-essentials_build\bin中有三个exe文件,如下:

将这三个文件复制到cmd显示的C:\Users\Administrator目录中,然后打开cmd命令窗口,输入下面的指令:

ffplay rtsp://192.168.222.50:8554/camera_test

输入指令后的显示效果如下:

FFmpeg是一个功能强大的跨平台多媒体处理工具,常用于视频编码、解码、媒体操作,包括从本地文件或实时摄像头捕获内容送到网络,以及从网络取并播放。在局域网(LAN)中使用FFmpeg,主要涉及以下几个步骤: 1. ****: - **设置编码器**: 使用如-h264enc或-vp9enc选项配置视频编码器,-acodec aac或libopus配置音频编码器。 - **创建RTSP或HTTP**: FFmpeg支持多种协议,如RTMP、RTSP、HTTP Live Streaming (HLS)等。比如使用`-f rtsp`送到RTSP服务器,`-f flv`送到RTMP服务器。 - **指定目标地址**: 指定网络上可以访问的服务器地址端口,例如`-rtsp_transport tcp`指定TCP协议。 2. ****: - **解析URL**: 根据使用的协议,如RTSP URL、RTMP URL或HLS播放列表URL,使用FFmpeg解析并连接到源。 - **解码器配置**: 设置相应的解码器,如`-decoders`选项来启用特定解码器。 - **播放**: 使用`ffplay`命令行工具播放取的,或者在其他应用程序中集成FFmpeg解码器。 3. **局域网限制注意事项**: - 在局域网环境下,确保防火墙设置允许进出量,特别是RTSP或UDP端口。 - 的性能取决于网络带宽设备性能,可能需要调整码率以适应网络条件。 **相关问题--:** 1. 如何在FFmpeg中设置合适的码率以优化局域网? 2. FFmpeg如何处理RTSPRTMP协议的兼容性问题? 3. 在局域网环境下,FFmpeg是否需要特定的服务器软件支持?
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失了志的咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值