Ubontu20.04利用FFmpeg完成USB摄像头的rtsp推流及拉流

1.Ubuntu 安装FFmpeg和h264库

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

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

sudo apt update
sudo apt install ffmpeg libx264-dev

在安装完成后,运行

ffmpeg -version 

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

2. 安装rtsp-simple-server

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

rtsp-simple-server

Ubontu20.04,选择

如果是aarch架构选择arm64v8。

下载对应编译好的文件:

打开终端直接运行:

./mediamtx

如果有报错就是端口被占用。

3. FFmpeg推流

注意:在推流之前先运行rtsp-simple-server

3.1 UDP推流
ffmpeg -re -i 1.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
3.2 TCP推流
ffmpeg -re -i 1.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream
3.3 循环推流
ffmpeg -re -stream_loop -1 -i 1.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
3.4 网络串流
ffmpeg -f v4l2 -i /dev/video4 -bufsize 2000k -async 1 -framerate 30 -pix_fmt yuv420p -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport tcp -f rtsp rtsp://192.168.182.125:8554/stream

注意:

  • -f v4l2:指定输入格式为 Video4Linux2,这是 Linux 操作系统下视频设备的一个接口。

  • -i /dev/video4:指定输入设备。

  • /dev/video4:Linux 下的视频设备节点,代表一个视频捕捉设备。

  • -bufsize 2000k:设置内部缓冲区大小为 2000k 字节,这有助于控制数据流的速率。

  • -async 1:这个参数用于调整音视频同步。值 1 表示允许小的同步调整。

  • -framerate 30:设置视频捕捉的帧率。

  • -pix_fmt yuv420p:指定像素格式。yuv420p 是一种视频像素格式,属于 YUV 家族。

    YUV:代表颜色空间,其中 Y 是亮度(Luminance),U 和 V 是色度(Chrominance)

    420:表示色度分辨率相对于亮度分辨率的比例。在这种情况下,每四个 Y 像素对应一个 U 和一个 V 像素。这意味着色度数据的分辨率是亮度数据分辨率的一半,这是压缩的关键部分。

    p:表示像素格式是逐行扫描的(progressive),与隔行扫描(interlaced)相对。逐行扫描意味着视频帧是完整的一行接着一行渲染,而不是先渲染所有的奇数行,然后是偶数行。

  • -vcodec libx264:指定视频编码器为 libx264,这是一个非常高效的视频编码库。

  • -preset:v ultrafast:设置编码预设。ultrafast 预设意味着编码速度最快,但可能会牺牲压缩效率和质量。

  • -tune:v zerolatency:优化编码器设置以减少延迟。这对于实时流非常有用。

  • -rtsp_transport tcp:指定 RTSP 流的传输协议为 TCP。相比于 UDP,TCP 提供了更可靠的传输。

  • -f rtsp:指定输出格式为 RTSP(实时流协议),用于实时视频流的传输。

  • rtsp://192.168.182.125:8554/stream:指定 RTSP 流的输出地址和端口。这个地址是 RTSP 服务器或客户端的地址,可通过ifconfig查看。

4. 拉流

4.1 ffplay拉流显示
ffplay rtsp://192.168.182.125:8554/stream
4.2  VLC拉流显示

使用apt命令安装vlc:

sudo apt install vlc

终端输入vlc开启:

参考文章:基于FFmpeg进行rtsp推流及拉流(详细教程)_ffmpeg rtsp推流-CSDN博客ffmpeg将USB摄像头视频转发为H264的RTSP流_ffmpeg rtsp 转 h264-CSDN博客   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值