GStreamer跨平台多媒体框架

Gstreamer基本概念

GStreamer是用于构造媒体处理组件图的库。它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。

应用程序可以透明地利用编解码器和过滤器技术的优势。可以通过编写带有通用接口的简单插件来添加新的编解码器和过滤器。

  • 播放DVB流时的MPEG-TS时间戳回归
  • 合成器:某些输入缩放/转换情况下的伪影,并确保实际支持输出格式,以及重新协商
  • 通过giosrc改进decodebin / playbin中的sftp:// URI播放
  • 自适应demux / dashdemux / hlsdemux
  • rtsp服务器
  • android媒体:编码AVC
  • 各种单元测试
  • 错误和内存泄漏改进
  • 各种稳定性,性能和可靠性方面的改进
  • gi注释改进
  • 构建编译

多平台

GStreamer可在所有主要操作系统上运行,例如Linux,Android,Windows,Max OS X,iOS,以及大多数BSD,商业Unix,Solaris和Symbian。它已被移植到各种操作系统,处理器和编译器。它可以在32位和64位以及Little Endian或Big Endian的所有主要硬件体系结构上运行,包括x86,ARM,MIPS,SPARC和PowerPC。

GStreamer可以桥接到其他多媒体框架,以便重用现有组件(例如编解码器)并使用平台输入/输出机制:

  • Linux / Unix:OpenMAX-IL(通过gst-omx)
  • Windows:DirectShow
  • Mac OS X:QuickTime

综合核心库

  • 基于图的结构允许任意管道构建
  • 基于 GLib 2.0对象模型的面向对象设计和继承
  • 小于500KB的紧凑型核心库,大约65K行代码
  • 多线程管道构造
  • 面向插件和应用程序,简单且稳定的 API
  • 极轻量的数据传递意味着非常高的性能/低延迟
  • 面向核心和插件/应用开发完整 调试系统
  • 时钟以确保全局流间同步(A / V同步)
  • 服务质量(qos),以确保在高CPU负载下可能的最佳质量

智能插件架构

  • 动态加载的 插件提供了元素和媒体类型,这些元素和媒体类型是通过注册表缓存按需加载的,类似于ld.so.cache
  • 元素接口 处理所有已知类型的源,过滤器和接收器
  • 功能系统 允许使用MIME类型和特定于媒体的属性来验证元素兼容性
  • 自动插入使用功能系统自动完成复杂路径
  • 通过将管道转储到.dot文件并从中创建PNG图像,可以使其可视化
  • 资源友好的插件不会浪费内存

多媒体技术的广泛覆盖

可以通过新插件扩展GStreamers功能。下面列出的功能只是一个粗略的概述,可以使用GStreamers自己的插件获得,不包括任何第三方提供的功能。

  • 容器格式:asf,avi,3gp / mp4 / mov,flv,mpeg-ps / ts,mkv / webm,mxf,ogg
  • 流式传输:http,mms,rtsp
  • 编解码器:FFmpeg,各种编解码器库,第三方编解码器包
  • 元数据:原生容器格式,它们之间具有通用映射
  • 视频:各种色彩空间,支持逐行和隔行视频
  • 音频:各种位深度和多通道配置中的整数和浮点音频

广泛的开发工具

  • gst-launch命令行工具,用于快速进行原型制作和测试,类似于ecasound
  • 很多 文档,包括部分完成的 手册和 插件编写者指南
  • 每个模块中都有大量的测试程序和示例代码可供选择
  • 使用各种编程语言访问GStreamer API

GStreamer跨平台多媒体框架的更多相关文章

  1. Android多媒体框架对音乐播放器的支持

    下面介绍一下Andriod多媒体框架对开发者提供的支持有哪些.               1. MediaScannerReceiver                   这个广播接收者在接收到A ...

  2. Android的多媒体框架OpenCore介绍

    网上资料很少, 不过还是找到一个比较详细的说明: 特地在此整理了下: 地址:http://blog.csdn.net/djy1992/article/details/9339787 分为几个阶段: 1 ...

  3. .NET 跨平台界面框架和为什么你首先要考虑再三

    ​​​原文地址 现在用 C# 来开发​跨平台应用已经有很成熟的方案,即共用非界面代码,而每个操作系统搭配特定的用户界面代码.这个方案的好处是可以直接使用操作系统原生的控件和第三方控件,还能够和操作系统 ...

  4. 【译】.NET 跨平台界面框架和为什么你首先要考虑再三

    现在用 C# 来开发跨平台应用已经有很成熟的方案,即共用非界面代码,而每个操作系统搭配特定的用户界面代码.这个方案的好处是可以直接使用操作系统原生的控件和第三方控件,还能够和操作系统深度集成. 这里的 ...

  5. .NET 跨平台RPC框架DotNettyRPC

    DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standard2.0 2.产生背景 传统.NET开发中遇到远程调用 ...

  6. 微软跨平台ORM框架之EFCore

    EFCore是微软推出的跨平台ORM框架,想较于EF6.X版本,更加轻量级.EFCore目前已经更新到2.x. 接下来用CodeFirst的方式来使用EFCore. 1.创建控制台程序 2.引入EFC ...

  7. 新的开始 接触ASP.NET Core跨平台的框架

    今天我刚学习了使用Visual Studio 2015新建了.NET Core项目写了一个小的CSHTML代码.按我的话说就是,把C#和HTML合起来使用了,写了一个简单的关于学生的“增” “删” “ ...

  8. .NET 跨平台RPC框架DotNettyRPC Web后台快速开发框架(.NET Core) EasyWcf------无需配置,无需引用,动态绑定,轻松使用 C# .NET 0配置使用Wcf(半成品) C# .NET Socket 简单实用框架 C# .NET 0命令行安装Windows服务程序

    .NET 跨平台RPC框架DotNettyRPC   DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standar ...

  9. JobEngine 基于quartz.net 跨平台作业框架

    github:https://github.com/zzhi/JobEngine 基于quartz.net 的跨平台作业框架 quartz.net(https://github.com/quartzn ...

随机推荐

  1. 【网络协议】 TCP三次握手的流程

    在TCP/IP协议中,TCP协议通过三次握手,建立可靠的连接服务: 三次握手是由客户端发起 第一步: 客户端向服务端发送请求报文(实际上就是一个具有特定格式的数据包),报文中包含一个标志为Syn,Sy ...

  2. hdu2482 字典树+spfa

    题意:       给你一个地图,地图上有公交站点和路线,问你从起点到终点至少要换多少次公交路线. 思路:       首先上面的题意说的和笼统,没说详细是因为这个题目叙述的很多,描述起来麻烦, 下面 ...

  3. hdu 4309 最大流 + DFS

    题意:      给以三种有向边     (1) 隧道,可以过无数人,也可以藏c个人.     (2) 路,只能过人(流量INF).     (3)古桥,如果不修理可以过1个人,修理可以过无数个人,但 ...

  4. hdu1255 扫描线,矩形重叠面积(两次以上)

    题意:       给你n个矩形,然后问你这n个矩形所组成的画面中被覆盖至少两次的面积有多大. 思路:       和1542差距并不是很大,大体上还是离散化+线段树扫面线,不同的地方就是这个题目要求 ...

  5. PowerShell-3.多线程

    $start = Get-Date $task1 = { $vUrl = 'http://img.mottoin.com/wp-content/uploads/2016/09/5-25.png' $v ...

  6. JVM虚拟机-了解Java堆中对象分配、布局和访问的全过程

    目录 前言 对象的创建 类加载检查 分配内存 内存空间分配方式 指针碰撞 空闲列表 并发时的内存分配 同步处理:CAS 本地线程分配缓冲:TLAB 初始化零值 设置对象头 执行 init 方法 对象的 ...

  7. 【mybatis】mybatis分页拦截器搭配bootstrap-table使用

    提前说明: 这一种方式已被我自己pass掉了,已经被新的方式迭代了.但是记录下自己曾经的成果还是有必要的,而且里面的思想还是不变的,另外技术不就是在不断地迭代中升级吗.千万不要想着一步完美,那样会让你 ...

  8. PHP逐行解析文件,并写入数据库

    $filePath为文件路径,上传文件则返回文件路径调用下面函数即可public function readText($filePath,&$errorCode,&$errorMess ...

  9. js--吐血总结最近遇到的变态表单校验---element+原生+jq+easyUI(前端职业生涯见过的最烦的校验)

    最近写了无数各种形式的表单,记录下奇奇怪怪的校验规则~ 一:首先是element自带的rules校验规则: element作为常用框架,自带rules属性简单易懂,官方文档一目了然,不再赘述,应付常用 ...

  10. Scrum Meeting 4

    Basic Info where:共享空间 when:2021/4/29 target: 简要汇报一下已完成任务,下一步计划与遇到的问题 Progress Team Member Position A ...