随笔七、开启gst-rtsp-server服务及推流测试

news2024/11/14 20:48:01

目录

1. 环境

2. 启用gst-rtsp-server服务

3. 交叉编译测试程序examples

4. 推流测试


1. 环境

泰山派RK3566开发板的SDK使用了GStreamer媒体编解码框架,其扩展能力应该是优于ffmpeg,因此目前不考虑移植ffmpeg。要实现摄像头推流,还需要流体服务器。之前已经使用mediamtx做了测试,但后续需要在应用层面控制摄像头,也可能涉及一些功能需求,必须使用库函数方式。

分析了SDK文件,在\tspi_linux_sdk\buildroot\package\gstreamer1文件夹里,不仅包含gstreamer1和gst1-plugins-xxx插件,还看到了gst1-rtsp-server,集成1.18和1.20两个版本供选择。

################################################################################
#
# gst1-rtsp-server
#
################################################################################

GST1_RTSP_SERVER_VERSION = 1.20.0
GST1_RTSP_SERVER_SOURCE = gst-rtsp-server-$(GST1_RTSP_SERVER_VERSION).tar.xz
GST1_RTSP_SERVER_SITE = https://gstreamer.freedesktop.org/src/gst-rtsp-server
GST1_RTSP_SERVER_LICENSE = LGPL-2.1+
GST1_RTSP_SERVER_LICENSE_FILES = COPYING COPYING.LIB
GST1_RTSP_SERVER_CPE_ID_VENDOR = gstreamer_project
GST1_RTSP_SERVER_CPE_ID_PRODUCT = gst-rtsp-server
GST1_RTSP_SERVER_INSTALL_STAGING = YES

可以看到,如果启用gst-rtsp-server服务,会自行下载安装包。默认编译kernel是找不到gst-rtsp-server服务的,说明并没有启用。

2. 启用gst-rtsp-server服务

由于SDK里已经包含了必要的设置,启用gst-rtsp-server服务仅需要2个步骤

第一个是确认需要gst-rtsp-server服务的版本,按照说明,必须和gstreamer的版本一致。在开发板查看gstreamer的版本。

#确定GStreamer版本
root@RK356X:/# gst-inspect-1.0 --version
gst-inspect-1.0 version 1.20.0
GStreamer 1.20.0
Unknown package origin

的确是1.20,是一致的。

第二步就是开启gst-rtsp-server服务选项,让SDK编译并打包进去。我就去官网直接下载1.20包,将其放在tspi_linux_sdk\buildroot\dl文件夹里,下载链接

修改sdk/buildroot/configs/rockchip/video_gst.config文件,最后面添加一行

BR2_PACKAGE_GST1_RTSP_SERVER=y

然后就可以重新编译。

在output目录多了一个gst1-rtsp-server-1.20.0文件夹,在其中的gst子目录里有rtsp-server和rtsp-sink两个子目录,提供了rtsp server

但是,在gst1-rtsp-server-1.20.0/build这个文件夹里,没有examples文件夹。打开gst-rtsp-server-1.20.0.tar.xz包可以看到里面有examples和tests文件夹,里面是测试程序。我们需要自己来编译了。

3. 交叉编译测试程序examples

进入tspi_linux_sdk/buildroot/output/rockchip_rk3566/build/gst1-rtsp-server-1.20.0目录,在examples子目录里面有很多test测试源码,比如test-lanuch.c是启动rtsp服务拉流

gstreamer的包没用makefile,采用的是meson,应该是更加便捷,用ninja工具编译。

进入<sdk>/buildroot/output/rockchip_rk3566/build/gst1-rtsp-server-1.20.0文件夹,修改meson.build文件199行,把if判断注释掉,这样就直接编译examples文件夹了

subdir('gst')
#if not get_option('tests').disabled()
  subdir('tests')
#endif
#if not get_option('examples').disabled()
  subdir('examples')
#endif
subdir('docs')

进入build目录,编译后会生成examples及tests文件夹

cd build

ninja

4. 推流测试

将镜像烧写到开发板,将编译好的测试程序test-launch这些拷贝到开发板,记得确认下文件的运行权限。我这里是直接打包到镜像里了,进入程序所在目录

#摄像头推流,有1s多延迟

./test-launch "( v4l2src device=/dev/video0 ! video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! mpph264enc ! rtph264pay name=pay0 pt=96 )" &

#本地拉流

gst-launch-1.0 playbin uri=rtsp://127.0.0.1:8554/test

电脑端用vlc拉流

由于摄像头是定焦,自拍距离近了点,不太清晰。

后续可以参考测试程序编写应用程序,实现摄像头控制及其他扩展需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL的半同步模式

MySQL 的半同步复制 MySQL 的半同步复制&#xff08;Semi-Synchronous Replication, SSR&#xff09;是一种增强的复制机制&#xff0c;旨在减少主服务器&#xff08;Master&#xff09;发生故障时的数据丢失风险&#xff0c;并在一定程度上提高复制的可靠性。半同步复制结合了…

零基础5分钟上手亚马逊云科技-高可用负载均衡器

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

怎么将文档翻译成英语?5个方法一键将文档翻译成所需语言

夏日的尾声&#xff0c;处暑的凉风轻轻拂过&#xff0c;不仅带来了季节的更迭&#xff0c;也悄然拉开了国际交流的新序幕。 那份精心雕琢的处暑宣传文案&#xff0c;字字珠玑&#xff0c;情感饱满。但别急&#xff0c;想要这份佳作跨越语言的长河&#xff0c;触及更广阔的国际…

中资优配:信用债市场遭遇卖盘压力

近期&#xff0c;诺言债遭受卖盘压力&#xff0c;连跌多日&#xff0c;引发商场关注。 近两日&#xff0c;诺言债商场出现回调&#xff0c;工业债、城投债与二级本钱债价格均出现跌落。到8月27日收盘&#xff0c;“24兴业银行二级本钱债01”上行7.5个基点至2.355%&#xff0c;…

佰朔资本:股指预计保持震荡格局 关注化学制药、石油化工等板块

2024年1—7月规上工业企业赢利平稳增加&#xff0c;较前值略有上升。工业企业赢利能否企稳的要害在于有用需求&#xff0c;其时以价换量特征依然显着&#xff0c;供应快于需求使得工业企业库存继续被动冲高。在内需方面&#xff0c;大规模设备更新、消费品以旧换新政策有助于继…

uboot环境变量擦除之烧录工具擦除flash mtd0分区

有时会uboot环境变量修改了没有生效,需要擦除整个mtd分区 Erasing at 0x100000 – 100% complete. &#xff08;1M&#xff09; uboot给flash的中分区

正方体挖出几小块后的体积

如图&#xff0c;有一个边长为20厘米的大正方体&#xff0c;分别在它的角上、棱上、面上各挖掉一个大小相同的小立方体后&#xff0c;表面积变为2454平方厘米&#xff0c;那么挖掉的小立方体的边长是多少厘米?() A 2 B 2.5 C 3【正确答案】 D 3.5 这道题和上一期《立体空间想象…

算法学习-基础数据结构

基础数据结构 一.栈 1.普通栈 套路&#xff1a;从前往后遍历 需要考虑相邻元素 有消除操作 栈。 2.单调栈 二.队列 1.普通队列 2.优先队列 三.Trie 使用场景&#xff1a;可以求某个字符串在众多字符串中出现的次数&#xff0c;以某个字符串为前缀出现的次数 Trie中…

设计一个最小栈

问题 请你设计一个 最小栈 。它提供 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆…

昂科烧录器支持MindMotion灵动微电子的微控制器MM32F5333D7P

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中MindMotion灵动微电子的32位微控制器MM32F5333D7P已经被昂科的通用烧录平台AP8000所支持。 MM32F5333D7P微控制器搭载了由安谋科技授权的Armv8-M架构“星辰”STAR-MC1处理器&a…

Redux的中间件原理分析

Redux的中间件原理分析 redux的中间件对于使用过redux的各位都不会感到陌生&#xff0c;通过应用上我们需要的所有要应用在redux流程上的中间件&#xff0c;我们可以加强dispatch的功能。最近抽了点时间把之前整理分析过的中间件有关的东西放在这里分享分享。本文只对中间件涉…

在线客服系统源码 完全开源可二开 带完整的安装代码包以及搭建部署教程

系统概述 在线客服系统是一种基于互联网技术的客户服务解决方案&#xff0c;通过即时通讯工具&#xff0c;如文本聊天、语音通话、视频交流等方式&#xff0c;实现企业与客户之间的实时互动。它打破了传统客服模式的时空限制&#xff0c;使客户能够在任何时间、任何地点获得快…

Java基础(4)- IDEA

目录 一、Module 1.创建module 2.关闭modue 3.导入module 4.src灰色 二、Package 1.创建package 2.删除package 3.package取名规范 三、类 1.创建类 2.快捷语法 3.HelloWorld 四、IDEA基本设置说明 1.字体 2.提示的快捷键 五、常用快捷键 一、Module 1.创建mod…

Python大数据之Hadoop学习——day05_hive基本操作

一.SQL,Hive和MapReduce的关系 用户在hive上编写sql语句&#xff0c;hive把sql语句转为mapreduce程序去执行 二.Hive的架构映射流程 三.MetaStore元数据管理三种模式 metastore服务配置有3种&#xff1a; 内嵌模式、本地模式、远程模式&#xff08;推荐&#xff09; 内嵌模式…

【一文读懂】基于Havenask向量检索+大模型,构建可靠的智能问答服务

Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎&#xff0c;深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内的几乎整个阿里的搜索业务。本文针对性介绍了Havenask作为一款高性能的召回搜索引擎&#xff0c;应用在向量检索和LLM智能问答场景的解决方案和核心优势…

泰山派小手机---ubuntu 环境的搭建

问题&#xff1a; 本来我的 泰山派的 ubuntu 虚拟机环境已经搭建好了&#xff0c;但是由于一直到捣鼓 neovim &#xff0c;把虚拟机 内核搞崩溃&#xff0c;所以从新安装一下 虚拟机。 过程&#xff1a; 1 首先是 安装虚拟机。 下载镜像。 https://mirrors.ustc.edu.cn/ubu…

密码强度验证——js基础积累

//密码强度等级 getPwdLevel:function (pwd,minLength8) {var level 0;if (pwd.length < minLength) return level;if (/\d/.test(pwd)) level; //数字if (/[a-z]/.test(pwd)) level; //小写if (/[A-Z]/.test(pwd)) level; //大写if (/\W/.test(pwd)) level; //特殊字符ret…

安卓好软-----手机端提取apk的小工具 方便简单 无需root权限

apk提取工具 工具小巧。可以提取手机上面当前安装的apk和系统应用apk。而且无需root权限即可正常使用。 效果非常不错。比其他工具提取系统app方便好使。 下载&#xff1a;https://download.csdn.net/download/mg668/89683199?spm1001.2014.3001.5503

副业赚钱新玩法:大模型也能月入过万?

在这个多元化的时代&#xff0c;副业已经成为了越来越多人的选择。无论是为了实现个人兴趣&#xff0c;还是为了增加收入来源&#xff0c;副业都为我们提供了无限可能。而随着人工智能技术的飞速发展&#xff0c;利用大模型来开展副业也成为了一种新兴的方式。今天&#xff0c;…

日常避坑指南:如何正确使用 aiohttp 上传文件,避免文件被提前关闭

在日常开发中,我们经常会遇到需要上传文件到服务器的场景。如果你选择使用 aiohttp 进行异步请求,上传文件的方式需要特别注意,否则可能会遇到一些令人头疼的问题——比如文件被提前关闭,导致上传失败。这篇文章将为你详细解析这个问题,并提供有效的解决方案,帮助你在开发…