ubuntu 安装Gstreamer 并拉webrtc流

1 安装gstreamer

gstreamer的编译较麻烦,要安装gstreamer的源码包和插件包
网上有的方法直接使用apt包安装,但是安装的版本比较低是1.14 后面编译webrtc插件时要求gstreamer要求>1.19 所以使用源码编译的方式

1.1 编译gstreamer和插件

参考链接
gstreamer源码编译参考 !!!
glib编译升级链接
编译ffmpeg在编译源码包之前

编译完gstreamer后
在这里插入图片描述

1.2 编译gstreamer-example

2 简便安装与使用gstreamer

2.1安装gstreamer 基本库

sudo apt update
sudo apt upgrade

下载基本的包

apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
//查看版本
gst-inspect-1.0 --version

安装参考:安装参考链接

2.2 显示v4l2摄像头

gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720,framerate=30/1 ! jpegdec ! videoconvert ! xvimagesink

显示参考链接

------- 先查看摄像头的配置信息

v4l2-ctl --list-formats-ext -d /dev/video0 

!!! 一定要满足摄像头的格式、帧率和分辨率

------ YUYV USB摄像头

gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)YUY2, width=640, height=480, framerate=30/1" ! videoconvert ! autovideosink

------- mjpg USB摄像头

gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=1920,height=1080,framerate=60/1 ! jpegparse ! jpegdec ! videoconvert ! autovideosink

// jpeg 的格式为压缩过的图像编码,需要解码成YUYV或nv12

------- 自适应 USB摄像头

gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! autovideosink

2.3 使用gstreamer推送rtmp流

gst-launch-1.0 -v v4l2src device=/dev/video4 ! video/x-raw, format=YUY2, width=640, height=480, framerate=30/1 ! videoconvert ! x264enc tune=zerolatency ! flvmux streamable=true ! rtmpsink location='rtmp://127.0.0.1:1935/live/livestream'

format = YUY2表示v4l2摄像头的输出数据格式,一般为 YUY2(未压缩的年YUYV图像帧)或mjpeg(视频编码)。因此要推rtmp需要转码或编码为h264。推rtmp到srs参考

----- 使用GPU进行推流

2.4 使用gstreamer webrtc-bin推送webrtc流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值