当前位置: 首页 > news >正文

GStreamer学习笔记(四)

Time management

仅当管道处于PLAYING状态时,可以刷新屏幕。如果不在PLAYING状态,什么都不做,因为大多数查询都会失败。

函数与知识点

  1. GstClockTime 说明:所需的超时时间必须以GstClockTime的形式指定。即以纳秒(ns)为单位。表示不同时间单位的数字应乘以诸如GST_SECONDGST_MSECOND之类的宏。这使得代码更易读。
  2. gst_element_query_position() 功能:查询一个元素(通常是顶层pipelineplaybin元素)的流位置(以纳秒为单位)。这将是一个介于0和流持续时间(如果已知)之间的值。这个查询通常只能在管道预滚(即达到PAUSEDPLAYING状态)后才能工作。当调用函数时,应用程序将在管道总线上收到一个ASYNC_DONE消息。说明:如果重复调用这个函数,也可以创建一个查询并在gst_element_query()中重用它。
  3. gst_element_query (GstElement * element, GstQuery * query) 功能:对给定的元素执行查询。说明:对于没有实现查询处理程序的元素,此函数将查询转发给随机的srcpad或该元素的随机链接的sinkpad的对等体。请注意,某些查询可能需要运行中的管道才能正常工作。
  4. gst_element_query_duration() 功能:查询一个元素(通常是顶级pipelineplaybin元素)的总流持续时间(以纳秒为单位)。这个查询只有在管道预滚(即达到PAUSEDPLAYING状态)后才能工作当调用函数时,应用程序将在管道总线上收到一个ASYNC_DONE消息。说明:如果出于某种原因持续时间发生变化,将在管道总线上收到一个DURATION_CHANGED消息,在这种情况下,应该使用这个函数重新查询持续时间。
  5. GST_TIME_FORMAT() 功能:一个可以在类似printf的格式字符串中使用的字符串,用于以h:m:s格式显示GstClockTime值。使用GST_TIME_ARGS来构造相应的参数。
  6. GST_TIME_ARGS() 功能:使用GST_TIME_FORMAT格式字符串对 t 进行格式化。注意:t 将被评估多次。说明:t是一个GstClockTime
  7. gst_element_seek_simple() 功能:在给定的元素上执行简单的跳转的简单API,意味着它只会相对于流的起始位置跳转到给定的位置。对于更复杂的操作,比如段跳转(例如循环播放)或更改播放速度或相对于最后配置的播放段进行跳转,应该使用gst_element_seek()。说明:在完全预滚的PAUSEDPLAYING管道中,对可跳转的媒体类型进行跳转总是保证返回TRUE,对于肯定不可跳转的媒体类型(如实时流),返回FALSE。一些元素允许在READY状态下进行跳转,在这种情况下,它们将存储跳转事件并在放入PAUSED状态时执行它。如果元素支持在READY状态下进行跳转,在接收到READY状态下的事件时,它将始终返回TRUE
  8. GST_SEEK_FLAG_FLUSH 功能:这会在进行跳转之前丢弃管道中的所有数据。在重新填充管道并开始显示新数据之前,可能会暂停一会儿,但极大地增加了应用程序的响应能力。如果不提供此标志,旧的数据可能会在一段时间内显示,直到新位置出现在管道末尾。
  9. GST_SEEK_FLAG_KEY_UNIT 说明:对于大多数编码后的视频流,不可能在任意位置进行跳转,而只能在称为关键帧的特定帧之间进行跳转。当使用此标志时,跳转实际上会移动到最接近的关键帧并立即开始生成数据。如果不使用此标志,则管道会在内部移动到最接近的关键帧(没有其他选择),但数据不会显示,直到到达请求的位置。这个最后的选择更准确,但可能需要更长时间。
  10. GST_SEEK_FLAG_ACCURATE 说明:某些媒体剪辑没有足够的索引信息,这意味着在任意位置进行跳转是耗时的。在这些情况下,GStreamer通常会估计要进行跳转的位置,并且通常工作得很好。如果这种精度对您的情况不够好(您看到的跳转时间不准确),那么请提供此标志。请注意,计算跳转位置可能需要更长时间(非常长时间,在某些文件上)。
  11. gst_query_new_seeking(GstFormat format) 功能:构造一个新的查询对象,用于查询流的跳转属性。cleanup函数:gst_query_unref。返回值:一个新的GstQuery(所有权转移)

相关文章:

GStreamer学习笔记(四)

Time management 仅当管道处于PLAYING状态时,可以刷新屏幕。如果不在PLAYING状态,什么都不做,因为大多数查询都会失败。 函数与知识点 GstClockTime 说明:所需的超时时间必须以GstClockTime的形式指定。即以纳秒(ns…...

DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb

DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb 一、概述 华为GaussDB出来已经有一段时间,最近工作中刚到Gauss数据库。作为coder,那么如何通过可视化工具来操作Gauss呢? 本文将记录使用免费、开源的DBeaver来…...

.net core 2.1 简单部署IIS运行

netcore的项目不像netFramework那么方便部署到iis还是要费点功夫的 比如我想把这个netcore2.1的项目部署到iis并运行: 按照步骤走: 一、确认自己的netcore环境 1、需要安装下面3个环境包(如果电脑已安装请忽略) 检查是否安装cmd命令:cmd&…...

提高视觉检测系统稳定性的隐藏办法——10G高速图像采集卡

提高视觉检测系统稳定性的隐藏办法——10G高速图像采集卡 目前,随着我国各方面配套基础设施建设的完善,企业技术、资金的积累,各行各业积极探索和大胆的尝试机器视觉技术,实现工业自动化、智能化。在机器视觉系统的使用过程中&am…...

注解方式实现数据库字段加密与解密

目录 前言实现步骤定义注解加密工具类定义mybatis拦截器 总结 前言 一些敏感信息存入数据需要进行加密处理,比如电话号码,身份证号码等,从数据库取出到前端展示时需要解密,如果分别在存入取出时去做处理,会很繁锁&…...

C\C++ 使用socket判断ip是否能连通

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介&#xff1a; 使用socket判断ip是否能联通 效果&#xff1a; 代码&#xff1a; #include <iostream> #include <cstdlib> #include <cstdio> #include &…...

数学建模-相关系数

excel基本操作&#xff1a;ctrl右&#xff0c;ctrl左&#xff0c;ctrlshift下/右&#xff0c;ctrlshift空格 题目里有数据&#xff0c;给出描述性统计是比较好的习惯 excel描述性统计&#xff1a;数据-数据分析-描述统计 MATLAB要做散点图C62个 SPSS可以直接画出两两之间的散…...

Ubuntu下安装、配置及重装CUDA教程

安装CUDA 前往Nvidia CUDA Tools官网选择对应的架构和版本下载CUDA 以如下架构和版本为例&#xff1a; 查看显卡驱动 nvidia-smi如果显卡驱动已经装了&#xff0c;那么在CUDA安装过程中不用再勾选安装driver 下载并安装CUDA wget https://developer.download.nvidia.co…...

自学网络安全(黑客)为什么火了?

网安专业从始至终都是需要学习的&#xff0c;大学是无法培养出合格的网安人才的。这就是为啥每年网安专业毕业生并不少&#xff0c;而真正从事网安岗位的人&#xff0c;寥寥无几的根本原因。 如果将来打算从事网安岗位&#xff0c;那么不断学习是你唯一的途径。 网络安全为什…...

Android S 修改关于手机的logo

1.让图片加载生效 frameworks/base/packages/SettingsLib/LayoutPreference/res/layout/preference_about_phone.xml <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" android:id"id/entity_header" style"…...

Mysql 备份与还原

目录 一、数据备份的重要性 二、数据库备份类型 2.1 物理备份 2.&#xff12; 逻辑备份 三、常见的备份方法 3.1 物理冷备 3.2 专用备份工具 mysqldump 或 mysqlhotcopy 3.3 启用二进制日志进行增量备份 3.4 第三方工具备份 四、MySQL完全备份 五、数据库完全备份分类…...

Cadence PCB 仿真Model Integrity专题

&#x1f3e1;《总目录》   &#x1f3e1;《宝典目录》 目录 1&#xff0c;内容概述2&#xff0c;内容目录 1&#xff0c;内容概述 本专题详细介绍Cadence的仿真建模工具 Model Integrity。 2&#xff0c;内容目录 Cadence PCB仿真 Model Integrity 功能详述与启动方法图文教…...

记一次阿里云被挖矿处理记录

摘要 莫名其妙的服务器就被攻击了&#xff0c;又被薅了羊毛&#xff0c;当做免费的挖矿劳动力了。 一、起因 上班&#xff08;摸鱼&#xff09;好好的&#xff0c;突然收到一条阿里云的推送短信&#xff0c;不看不知道&#xff0c;两台服务器被拉去作为苦力&#xff0c;挖矿去…...

Linux系统使用(超详细)

目录 Linux操作系统简介 Linux和windows区别 Linux常见命令 Linux目录结构 Linux命令提示符 常用命令 ls cd pwd touch cat echo mkdir rm cp mv vim vim的基本使用 grep netstat Linux面试题 Linux操作系统简介 Linux操作系统是和windows操作系统是并列…...

【问题总结】Docker环境下备份和恢复postgresql数据库

目录 文章目录 以从备份恢复forest_resources库为例一、备份数据库二、需要还原的数据库准备1 删除掉远程的库。2 重新创建一个空的库。可以使用sql3 找到数据库存放的路径&#xff0c;并将备份文件上传到对应的路径下 三、 进入docker容器内部&#xff0c;执行数据库恢复附录…...

《TCP IP网络编程》第六章

《TCP IP网络编程》第六章&#xff1a;基于 UDP 的服务端/客户端 UDP 套接字的特点&#xff1a; 通过寄信来说明 UDP 的工作原理&#xff0c;这是讲解 UDP 时使用的传统示例&#xff0c;它与 UDP 的特点完全相同。寄信前应先在信封上填好寄信人和收信人的地址&#xff0c;之后…...

如何学习java

-学习Java是一个循序渐进的过程&#xff0c;下面提供一些学习Java的方法&#xff0c;帮助您有效地掌握这门编程语言&#xff1a; 定义学习目标&#xff1a;明确您学习Java的目标和用途。是为了进入软件开发行业&#xff0c;还是用于特定项目或兴趣爱好&#xff1f;明确学习目标…...

RabbitMQ实现六类工作模式

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; RabbitMQ实现六类工作模式 ⏱️ 创作时间&#xff1a; 2023年07月20日…...

all in one (群辉、软路由、win/linux)折腾日记

目录 生命不息&#xff0c;折腾不止名词解释硬件参数装机 生命不息&#xff0c;折腾不止 因自身能力有限&#xff0c;可能内容质量不高&#xff0c;欢迎志同道合的各路大神加入&#xff0c;共同折腾&#xff01; 名词解释 ALL IN ONE &#xff1a;多功能一体机 OpenWrt【软路…...

【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】

目录 一、基于 Session 实现登录(1) 发送短信验证码① 手机号格式后端校验② 生成短信验证码 (2) 短信验证码登录、注册(3) 登录验证① 通过 SpringMVC 定义拦截器② ThreadLocal (4) 集群 Session 不共享问题 二、基于 Redis 实现共享 session 登录(1) 登录之后&#xff0c;缓…...

SDMatte开源模型部署实录:从镜像拉取到首张图产出完整记录

SDMatte开源模型部署实录&#xff1a;从镜像拉取到首张图产出完整记录 1. 引言 SDMatte是一款面向高质量图像抠图场景的AI模型&#xff0c;特别适合处理主体分离、透明物体提取、边缘精修、商品图去背景等任务。对于玻璃、薄纱、羽毛、叶片等边缘细节复杂或半透明目标&#x…...

4大维度优化Windows 11:给专业用户的系统减负指南

4大维度优化Windows 11&#xff1a;给专业用户的系统减负指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简化和改善你…...

深度解析:如何通过自动化技术实现企业通讯工具外部群的自动化管理

突破接口限制&#xff0c;实现私域社群运营的“最后一公里”自动化 在私域流量运营中&#xff0c;外部群&#xff08;包含客户的群聊&#xff09;的管理效率一直是技术痛点。官方接口往往对外部群的某些主动操作&#xff08;如主动发送、群成员管理等&#xff09;有较为严格的…...

高可用(HA)架构的商业价值:从技术冗余到业务连续性的战略升级

在大型企业数字化转型进入深水区的今天&#xff0c;ERP、CRM、OA、BI工具等核心系统已成为业务运转的“生命线”&#xff0c;系统中断哪怕是分钟级&#xff0c;都可能引发业务停滞、数据泄露、合规违规等连锁风险&#xff0c;直接损害企业商业利益与品牌声誉。高可用&#xff0…...

Clawdbot+Python爬虫实战:自动化数据采集与智能分析

ClawdbotPython爬虫实战&#xff1a;自动化数据采集与智能分析 1. 为什么数据采集需要Clawdbot这样的智能体 你有没有遇到过这样的场景&#xff1a;市场部同事凌晨三点发来消息&#xff0c;“老板急要竞品价格数据&#xff0c;明早九点前要出分析报告”。你打开浏览器&#x…...

论文救星来了!Paperxie AI 毕业论文写作,让本科生告别秃头式赶稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 一、开篇&#xff1a;谁懂啊&#xff0c;论文季的痛真的需要被治愈 谁还没在论文季经历过这些崩溃瞬间&#xff1…...

LabWindows/CVI报错

NON-FATAL RUN-TIME ERROR: "main.c", line 488, col 9, thread id 0x000057C4: Function GetCtrlVal: (return value -13 [0xfffffff3]). Invalid control ID 该怎么解决啊各位...

Cogito-V1-Preview-Llama-3B开发:微信小程序智能客服对接实战

Cogito-V1-Preview-Llama-3B开发&#xff1a;微信小程序智能客服对接实战 最近有不少朋友在问&#xff0c;把大模型部署到服务器上之后&#xff0c;怎么才能让微信小程序用起来&#xff1f;今天我就以星图GPU平台上部署的Cogito-V1-Preview-Llama-3B模型为例&#xff0c;跟大家…...

STM32CubeIDE开发环境详解与实战指南

STM32CubeIDE开发环境全解析&#xff1a;从入门到实战1. 开发环境概述1.1 STM32CubeIDE核心特性STM32CubeIDE是基于Eclipse框架的集成开发环境&#xff0c;专为STM32微控制器设计。其主要技术特性包括&#xff1a;集成STM32CubeMX配置工具内置GCC编译工具链支持GDB调试接口跨平…...

cv_resnet50_face-reconstruction效果对比:不同光照/姿态下人脸重建质量实测报告

cv_resnet50_face-reconstruction效果对比&#xff1a;不同光照/姿态下人脸重建质量实测报告 你是不是也好奇&#xff0c;一个基于ResNet50的人脸重建模型&#xff0c;到底能把一张照片还原到什么程度&#xff1f;它能不能处理好那些光线不好、角度刁钻的照片&#xff1f;今天…...