- 博客(20)
- 收藏
- 关注
原创 Gstreamer播放教程3: Short-cutting the pipeline (缩短管道)
1.目标1.目标基本教程8:Short-cutting the pipeline展示了应用程序如何使用两个特殊元素appsrc和appsink手动提取或注入数据到管道中。Playbin也允许使用这些元素,但连接它们的方法不同。要链接appsink到playbin,请参见回放教程7:Custom playbin sinks。本教程展示了如何链接appsrc和playbin如何配置appsrc2.A playbin waveform generator3.实现1.code#include.
2021-12-30 17:19:36
1884
原创 Gstreamer播放教程2: Subtitle management (字幕管理)
文章目录1.目标2.介绍3.实现1.compile2.code4.解析1.属性设置5.讨论1.目标本教程与前一个非常类似,但我们将使用字幕流之间的不同音频流之间切换。 这将允许我们学习:如何选择字幕流如何增加外部的字幕如何自定义字幕的字体2.介绍我们已经知道(从之前的教程中)容器文件可以容纳多个音频和视频流,我们可以很容易地通过改变playbin的current-audio或current-video属性来选择它们。切换字幕也很简单。值得注意的是,就像音频和视频一样,playbin负责为
2021-12-30 17:17:29
837
原创 Gstreamer播放教程1: playbin usage
文章目录1.Goal2.介绍3.实现1.compile2.code4.解析1.数据定义2.函数定义3.flag操作4.playbin属性设置5.处理键盘响应6.main loop7.analyze_streams8.handle_keyboard5.讨论1.Goal展示了如何自定义playbin元素。如何了解在文件中包含多少流,以及如何切换如何收集关于每个流的信息2.介绍更频繁地,可以找到多个音频,视频和字幕流嵌入在一个文件中。 最常见的情况是常规电影,其中包含一个视频,一个音频流(立体声或
2021-12-30 17:13:15
1239
1
原创 Gstreamer播放教程5: Color Balance
文章目录1. Goal2. Introduction3. Color balance example3.1 code3.2 compile4. Analyze4.1 code分析4.2 使用接口参考5. Conclusion1. Goal亮度、对比度、色相和饱和度是常见的视频调整,它们在GStreamer中统称为色彩平衡设置。本教程展示了:如何找到可用的色彩平衡通道如何改变它们2. IntroductionBasic tutorial 5: GUI toolkit integration 已
2021-12-30 17:10:30
764
原创 Gstreamer基础教程14:好用的元素
文章目录1. Goal2. Elements2.1 Bins1. playbin2. uridecodebin3. decodebin2.2 File input/output1. filesrc2. filesink2.3 Network1. souphttpsrc2.4 Test media generation1. videotestsrc2. audiotestsrc2.5 Video adapters1. videoconvert2. videorate3. videoscale2.6 Audio
2021-06-07 15:51:46
1768
原创 Gstreamer基础教程13:Playback Speed
文章目录1.Goal2.介绍3. A Trick mode player3.1 Compile3.2 Code1.Goal快进、倒放和慢动作都是所谓的技巧模式,它们都有修改正常播放速率的共同之处。本教程展示了如何实现这些效果,并在处理中添加frame-stepping。特别是,它显示如何改变播放速率,比正常速度快或慢,向前或向后如何逐帧推进视频2.介绍快进是一种以高于正常(预期)速度播放媒体的技术;而慢动作使用的速度低于预期的速度。反向回放做同样的事情,只是向后,从流的结尾到开始。所有这些
2021-06-07 10:37:10
869
原创 Gstreamer基础教程12: Streamer流
文章目录1. Goal2. Introducion3. A network-resilient example3.1 Compile3.2 Code4.解析5.总结1. Goal直接从Internet播放媒体而不将其存储在本地称为流。 每当我们使用以http://开头的URI时,我们都会在整个教程中这样做。 本教程显示了流媒体时要记住的其他几点。 特别是:如何启用缓冲(缓解网络问题)如何从中断中恢复(时钟丢失)2. Introducion流式传输时,媒体块一旦从网络到达,便会解码并排队等待呈
2021-06-07 10:35:07
564
原创 Gstreamer基础教程11: 调试工具
文章目录1. Goal2. Printing debug information2.1 The debug log2.2 Adding your own debug information2.3 Getting pipeline graphs3. 总结1. Goal有时情况无法按预期进行,并且从bus上检索到的错误消息(如果有)只是无法提供足够的信息。 幸运的是,GStreamer附带了大量调试信息,这些信息通常可以提示问题所在。 本教程显示:如何从GStreamer获取更多调试信息如何将自己的调
2021-06-07 10:22:28
679
原创 Gstreamer基础教程10: Gstreamer 工具
文章目录1. Goal2. 介绍3. gst-lanuch-1.03.1 Elements3.2 Properties3.3 Named elements3.4 Pads3.5 Caps filters3.6 Examples4. gst-inspect-1.05. gst-discoverer-1.06. Conclusion1. GoalGStreamer附带了一系列工具,从方便到绝对必要。 本教程中没有代码,请坐下来放松身心,我们将教您:如何在不使用C的情况下从命令行构建和运行GStreame
2021-06-07 10:21:12
1966
3
原创 Gstreamer基础教程9: 媒体信息采集
文章目录1.Goal2.介绍3.The GStreamer Discoverer3.1 Compile3.2 Code4.解析5.讨论1.Goal有时您可能想快速找出文件(或URI)包含哪种媒体,或者您是否能够播放所有媒体。 您可以构建一个管道,将其设置为运行,并查看总线消息,但是GStreamer具有一个实用程序可以为您完成此任务。 本教程显示:如何恢复有关URI的信息如何确定URI是否可播放2.介绍GstDiscoverer是在pbutils库(插件基础实用程序)中找到的实用程序对象,该
2021-06-07 10:18:53
674
原创 Gstreamer基础教程8: 缩短管道
文章目录1. Goal2. Introductin2.1 Buffer2.2 This tutorial3. Implement3.1 Compile3.2 Code4.解析使用buffer中的所有合并的内存块来填充info。flags描述对内存的期望访问。当flags为GST_MAP_WRITE时,buffer应可写(从gst_buffer_is_writable返回)。当buffer可写但内存不可写时,将自动创建并返回可写副本。buffer memory的只读副本也将被该可写副本替换。使用后,应使用gs
2021-06-07 10:08:10
617
原创 Gstreamer基础教程7: 多线程和Pad可用性
文章目录1. Goal2.介绍2.1 多线程2.2 The example pipeline2.3 Request Pads3. Implement3.1 Compile3.2 Code4. 解析5. 讨论1. GoalGStreamer自动处理多线程,但是在某些情况下,您可能需要手动解耦线程。 本教程显示了如何执行此操作,此外,还完成了有关“ Pad Availability”的说明。 更准确地说,此文档说明:如何为pipeline的某些部分创建新的执行线程什么是Pad可用性如何复制流2.
2020-12-21 20:16:10
630
原创 Gstreamer基础课程6: 媒体格式和Pad Caps
文章目录1.目标2.介绍2.1 Pads2.2 Pad 模版2.3 功能示例2.4 PS3.Implement3.1 Compile3.2 Code4.解析5.讨论1.目标Pad是Gstreamer的基本元素。本教程主要是what are Pad CapabilitiesHow to retrieve themWhen to retrieve themWhy you need to know about them2.介绍2.1 PadsPads允许数据进入和离开元素。Pad Caps则
2020-12-21 20:04:29
1033
原创 Gstreamer基础课程4: 时间管理
1.Goal2.Introduce3.Implement3.1. Compile3.2. Code4. 解析4.1. 数据封装4.2. pipeline创建4.3. bus使用4.4. UI界面刷新1.Goal如何使用Gstreamer与时间相关的工具。在pipeline中查询流位置或持续时间之类的消息在流中查找(跳转)到其他位置(时间)2.IntroduceGstQuery机制允许向element或pad询问一条消息。在此是里中,会询问pipeline是.
2020-12-18 20:28:05
468
1
原创 Gstreamer基础课程3: 动态管道
文章目录1.Goal2.介绍2.1. pad1.2. demuxer1.Goal介绍Gstreamer的剩余的概念,这些概念允许在信息可用时“动态”创建管道,而不是在应用程序开始时就定义一个整体式管道。2.介绍2.1. padGstreamer中的element通过pad(GstPad)来相互通信。source element只有src pad,sink element只有sink pad,filter具有src,sink pad。1.2. demuxer在此教程中会打开一个multipl
2020-10-23 17:49:31
1006
原创 Gstreamer基础教程2: Gstremaer概念
文章目录前言一、Goal二、Code1.编译运行2.code三. 解析1.element创建总结前言Gstreamer中的概念。一、Goal创建element连接element自定义element的行为二、Code1.编译运行gcc basic-tutorial-2.c -o basic-tutorial-2 `pkg-config --cflags --libs gstreamer-1.0`2.code#include <gst/gst.h>int main(
2020-10-23 11:31:27
460
原创 Gstreamer基础教程1: Hello world
Gstreamer基础教程1:Hello world1. Goal2. Code3. 解析3.1. 使用的函数3.1.1. gst_init2.gst_parse_launch3.2. 整体分析1. Goal播放一段视频。2. Code编译运行gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`./basic-tutorial-1basic-tutorial-1.c#inc
2020-10-22 21:00:10
542
转载 strtok的使用以及字符串指针的使用
strtok函数分解字符串为一组标记串,原型为: extern char *strtok(char *s, char *delim); s 为要分解的字符串, delim 为分隔符字符串。首次调用时, s 必须指向要分解的字符串,随后调用要把 s 设成 NULL 。 strtok 在 s 中查找包含在 delim 中的字符 并用 NULL(‘/0’) 来替换,直到找遍整 个字符串。返回指向目前找到...
2019-10-12 14:30:14
786
原创 gst-launch-1.0在Linux下的命令
一.前提:1.要连入相关的设备,虚拟机里的Ubuntu可在“移动设备”里查找相关设备2.在Linux上安装相关的gstreamer3.gst-launch1.0和gst-launch0.1相比有所不同,具体区别见GStreamer 0.10到1.0移植指南二.命令一)实现测试视频显示gst-launch-1.0 videotestsrc ! xvimagesink二)实现摄像头采...
2019-03-12 16:12:56
15230
5
原创 前提
查询资料步骤1.直接查官网2.再百度查论坛你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将...
2019-03-11 20:09:13
150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人