rk3588使用gstreamer推流

这篇具有很好参考价值的文章主要介绍了rk3588使用gstreamer推流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ppa搜索需要的软件包

在https://launchpad.net/上搜索软件名+ppa
找到需要的包后下面命令安装

sudo add-apt-repository ppa:george-coolpi/multimedia
sudo apt update

如果不需要了下面命令删除

sudo add-apt-repository -r ppa:george-coolpi/multimedia
sudo apt-get update

安装gstreamer

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 |grep mpp

rk3588使用gstreamer推流,ffmpeg,ubuntu
不支持rkmpp的硬编码
下面安装插件gstreamer1.0-rockchip

 sudo apt-get install gstreamer1.0-rockchip
 gst-inspect-1.0 |grep mpp

这时已经支持硬件编码了
rk3588使用gstreamer推流,ffmpeg,ubuntu

gstreamer基础操作

#播放自带测试视频
gst-launch-1.0  videotestsrc ! video/x-raw,format=YUY2,framerate=30/1 ! videoconvert ! autovideosink
#videorate 更改桢率
gst-launch-1.0  videotestsrc ! video/x-raw,format=YUY2,framerate=30/1 ! videorate ! video/x-raw,format=YUY2,framerate=1/1 !  videoconvert ! autovideosink
#videoscale更改尺寸
gst-launch-1.0  videotestsrc ! video/x-raw,format=YUY2,framerate=30/1 ! videoscale ! video/x-raw,format=YUY2,width=800,height=700 !  videoconvert ! autovideosink
#播放自带测试音频
gst-launch-1.0 audiotestsrc ! audioconvert ! autoaudiosink

播放本地视频mp4

#仅视频
#方法1
gst-launch-1.0 filesrc location=a.mp4 ! qtdemux ! avdec_h264 ! autovideosink
#方法2
gst-launch-1.0 filesrc location=xx.mp4 !  decodebin !  autovideosink
#仅音频
gst-launch-1.0 filesrc location=a.mp4 ! qtdemux name=a  ! faad ! audioconvert ! audioresample ! autoaudiosink
#视频+音频
gst-launch-1.0 filesrc location=a.mp4 ! qtdemux name=a  ! queue ! faad ! audioconvert ! audioresample ! autoaudiosink a. ! queue !  decodebin ! autovideosink

udp本地传输视频

#服务端264编码
gst-launch-1.0 -v videotestsrc ! "video/x-raw,framerate=30/1" ! x264enc key-int-max=30 ! rtph264pay ! udpsink host=127.0.0.1 port=1234
#服务端本地视频h264编码
#方法1
gst-launch-1.0 -v filesrc location=a.mp4 ! decodebin !  x264enc key-int-max=30 ! rtph264pay ! udpsink host=127.0.0.1 port=1234
#方法2
gst-launch-1.0 -v filesrc location=a.mp4 ! qtdemux ! avdec_h264 ! x264enc key-int-max=30 !  rtph264pay ! udpsink host=127.0.0.1 port=1234
#客户端
gst-launch-1.0 udpsrc port=1234 ! "application/x-rtp, payload=96" ! rtph264depay ! decodebin ! autovideosink sync=false

摄像头udp传输

查找设备

v4l2-ctl --list-devices
H65 USB CAMERA: H65 USB CAMERA (usb-0000:00:14.0-1):
	/dev/video2
	/dev/video3

播放视频画面

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

rk3588 硬件编码mpph264enc,使用gstreamer udp 传输视频流分辨率为640x480

#服务端
 gst-launch-1.0 v4l2src device=/dev/video0  !  video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! video/x-raw,format=NV12 !  mpph264enc ! queue ! h264parse ! rtph264pay ! udpsink host=10.42.0.1 port=1234
 #接收端
 gst-launch-1.0 udpsrc port=1234 ! "application/x-rtp, payload=96" ! rtph264depay ! decodebin ! autovideosink sync=false

rk3588使用gstreamer推流,ffmpeg,ubuntu

由于yuy2格式只支持640X480分辨率30帧的图像,现在用压缩过的mjpeg格式图像支持更高的分辨率,图像明显大了许多分辨率为1280x720

#服务端
 gst-launch-1.0 v4l2src device=/dev/video0  ! image/jpeg !  avdec_mjpeg ! videoconvert ! video/x-raw,height=720,width=1280,frame=30/1,format=NV12 !  mpph264enc ! queue ! h264parse ! rtph264pay ! udpsink host=10.42.0.1 port=1234
 #接收端
 gst-launch-1.0 udpsrc port=1234 ! "application/x-rtp, payload=96" ! rtph264depay ! decodebin ! autovideosink sync=false

rk3588使用gstreamer推流,ffmpeg,ubuntu

安装支持gstreamer的cv2

添加ppa仓库

sudo add-apt-repository ppa:trinitronx/focal-backport-buildeps
sudo apt update

查看包名

apt list | grep opencv

安装python3-opencv

sudo apt-get installl python3-opencv

查看是否支持gstreamer

import cv2
print(cv2.getBuildInformation())

rk3588使用gstreamer推流,ffmpeg,ubuntu
下面使用cv2 进行gstreamer的视频流传输,下面代码是发送端

import cv2

import numpy as np
import cv2 as cv
import os
import time


gst_str_rtp = "appsrc ! queue ! videoconvert   ! video/x-raw,format=NV12  ! mpph264enc  \
        ! rtph264pay !  udpsink host=10.42.0.1 port=1234"
out = cv2.VideoWriter(gst_str_rtp, cv2.CAP_GSTREAMER, 0, float(52), (640, 480), True)
cap = cv.VideoCapture('v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! appsink', cv.CAP_GSTREAMER)

 if not cap.isOpened():
     print("Cannot capture from camera. Exiting.")
     os._exit()

while(True):
    ret, frame = cap.read()
    # cv.imshow('frame', frame)
    out.write(frame)
    # if cv.waitKey(1) & 0xFF == ord('q'):
    #     break

#cap.release()
#cv.destroyAllWindows()

下面代码为视频显示端

import cv2 


camSet = 'udpsrc port=1234 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264"'\
     ' ! rtph264depay ! avdec_h264 ! videoconvert ! appsink'

cap = cv2.VideoCapture(camSet, cv2.CAP_GSTREAMER)
if not cap.isOpened():
    print("Cannot capture from camera. Exiting.")
else:
    print('ok')

while(True):
    ret, frame = cap.read()
    cv2.imshow('frame', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

成功的显示了经过rk3588编码的图像
rk3588使用gstreamer推流,ffmpeg,ubuntu文章来源地址https://www.toymoban.com/news/detail-595370.html

到了这里,关于rk3588使用gstreamer推流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -01

    我不生产代码,我只是代码的搬运工,相信我,看完这个文章你的图片一定能变成流媒体推出去。 诉求:使用opencv拉流,转成bgr数据,需要把处理后的数据(BGR)编码成264,然后推流推出去,相当于直播(实时编码) 超低延迟的RTSP播放器 https://github.com/tsingsee/EasyPlayer-RTSP-

    2024年02月04日
    浏览(53)
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -03(完结)

    解码库使用的时候发现瑞芯微以前做过解码库对ffmpeg和gstreamer的支持 然后最近实在不想再调试Rtsp浪费时间了,就从这中间找了一个比较快的方案 编译流程参考文献 https://blog.csdn.net/T__zxt/article/details/123424359 编译的ffmpeg是这个版本 https://github.com/jjm2473 安装了下面这些东西:

    2024年02月01日
    浏览(75)
  • 迅为RK3588开发板RTMP推流之视频监控之搭建 RTMP 媒流体服务器

    1.安装 nginx+rtmp 运行所要用到的库和依赖环境 apt-get update apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev openssl 2. 下 载 nginx-1.20.2 源 码 ( 下 载 地 址 : http://nginx.org/download/nginx-1.20.2.tar.gz) 和nginx-rtmp-module(下载地址:hyttps://github.com/arut/nginx-rtmp-module),网盘“iTOP-

    2024年02月02日
    浏览(53)
  • ArmSoM-W3之RK3588安装ffmpeg

    FFmpeg 是一个完整的、跨平台的音频和视频录制、转换和流媒体解决方案。既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg 提供了多种媒体格式的封装和解封装,包括多种音视频

    2024年02月02日
    浏览(44)
  • RK3588平台开发系列讲解(视频篇)ffmpeg 的移植

    沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ffmpeg 是一种多媒体音视频处理工具,具备视频采集功能、视频抓取图像、视频格式转换、给视频加水印并能将视频转化为流等诸多强大的功能。它采用 LGPL 或 GPL 许可证,是一种开源程序。 FFmpeg主要特点和功能: 多媒

    2024年02月21日
    浏览(45)
  • RK3588适配Ubuntu系统

            RKsdk上支持buildroot以及Debian系统,但是Ubuntu需要自己移植,有很多公司都移植好了可以直接用,这里就总结记录一下我制作Ubuntu的过程。 http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.1-base-arm64.tar.gz 这里我选择的是Ubuntu20.04,直接下载至指定本地文件夹

    2024年02月09日
    浏览(52)
  • RK3588实战:调用npu加速,yolov5识别图像、ffmpeg发送到rtmp服务器

    前言:最近在学习一些rk3588相关的东西,趁着这个项目,把学习的相关东西整合下,放到一个项目里面,巩固学习的知识。 项目名称:yolov5识别图像、ffmpeg发送到rtmp服务器 功能:1、opencv读取usb摄像头,使用RK3588自带的NPU推理yolov5s算法,识别图像            2、使用ffmpeg,

    2024年02月03日
    浏览(43)
  • 基于 RK3588 构建 Ubuntu 22.04 根文件系统

    以下内容在 Rockchip 的 Linux SDK 目录下完成,请先解压 Linux SDK。 1.1 下载 Ubuntu Base Ubuntu-Base 是Ubuntu官方构建的ubuntu最小文件系统,基础包大小通常只有几十兆,可以很方便的个性化定制嵌入式环境。使用北京外国语大学镜像站加速下载,注意选择根据开发板架构选择arm64或其他

    2024年02月13日
    浏览(114)
  • 使用Gstreamer+OpenCV实现两路图像数据混合拉流推流

    本示例看完后,可基本掌握以下内容 1、利用opencv+gstreamer拉流推流的基本步骤 2、可学习gstreamer,图像混合的一些插件用法 3、TX2 NX上的视频编解码与硬件加速,H264编码参数调整 4、linux下如何提高线程优先级 我需要实现的功能是在TX2 NX上,拉取摄像头数据,并在摄像头数据上

    2024年02月09日
    浏览(41)
  • 基于讯为RK3588平台搭建Ubuntu20.04.5根文件系统

    在搭建系统之前,需要详细阅读讯为公司提供的一些资料(虽然他们家资料一直都做的不完善),搭建好用于开发的Ubuntu虚拟机环境,熟练使用一些常用工具如烧录系统的工具RKDevTool、传输文件的工具FileZilla、远程连接工具MobaXterm等等。当然,本章只针对根文件系统,uboot、

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包