GStreamer 是一个开源库,是一个复杂的软件,可作为众多GNU / Linux操作系统的多媒体框架,以及Android,OpenBSD,Mac OS X,Microsoft Windows,和Symbian操作系统。
功能一目了然
主要功能包括全面的核心库,智能插件架构,多媒体技术的扩展,以及广泛的开发工具,因此您可以轻松地在应用程序中添加对GStreamer的支持。
它是各种开源项目的主要多媒体后端,广泛来自音频和视频播放应用,例如GNOME桌面环境中的图腾(视频),以及复杂的视频和音频编辑器。
此外,该软件具有极高的性能和低延迟,这得益于其极其轻量级的数据传递技术,以及通过时钟进行全局流间(音频/视频)同步。
包含多个编解码器包
该项目由几个不同的包组成,也称为代码包,可以一次性或单独地从其默认软件存储库轻松安装到任何GNU / Linux发行版上。它们如下:GStreamer Plugins Base,GStreamer Plugins Good,GStreamer Plugins Bad,和GStreamer Plugins Ugly。
GStreamer是一个紧凑的核心库,它基于基于图形的结构,允许随机的pipleline结构,基于GLib 2.0对象模型库,可用于面向对象的设计和继承。
使用QoS(服务质量)技术
为了在高CPU负载下保证最佳的音频和视频质量,该项目使用QoS(服务质量)技术。此外,它提供了多线程管道的透明和简单的构造。
由于其简单,稳定和干净的API(应用程序编程接口),开发人员可以轻松地将其集成到他们的应用程序中,以及创建将扩展其默认功能的插件。它还为他们提供了一个功能齐全的调试系统。
底线
总之,GStreamer是一个非常强大且备受推崇的开源生态系统多媒体框架,为GNU / Linux用户提供了广泛的音频和视频编解码器,用于媒体播放和处理。
< strong>本新闻稿中的新功能:
- 修正错误。
版本1.14.1中的新功能:
- 修正错误。
版本中的新功能:
- 此版本仅包含错误修正,从以下版本更新应该是安全的1.8.0。
1.8.2版中的新功能:
- 此版本仅包含错误修正,应该是安全的从1.8.0更新。
1.8.0版中的新功能:
- Android上的硬件加速零拷贝视频解码
- 使用android.hardware.Camera API的Android新视频捕获源
- Windows Media反向播放支持(ASF / WMV / WMA)
- 新的跟踪系统为更复杂的调试工具提供支持
- 新的高级GstPlayer播放便利API
- 对新Vulkan API的初步支持,请参阅Matthew Waters的博客文章了解更多详情
- 改进的Opus音频编解码器支持:支持两个以上的频道; MPEG-TS demuxer / muxer现在可以处理Opus;采用Ogg,Matroska,ISOBMFF(Quicktime / MP4)和MPEG-TS作为容器的样本精确编码/解码/传输;新的编解码器实用程序函数,用于在pbutils库中处理Opus标头和大写字母。 Opus编码器/解码器元素也被移动到gst-plugins-base(来自-bad),以及opus RTP depayloader / payloader -good。
- GStreamer VAAPI模块现已作为GStreamer项目的一部分发布和维护
- GStreamer编辑服务中的资产代理支持
版本1.6.3中的新功能:
- 修复GL库中的回归,使得Android上的glimagesink无法使用
- queue2元素中的整数算术溢出,可能会因NULL指针取消引用而导致缓冲或导致崩溃
- 通过读取比可用内存更多的内存来修复AAC / ADTS类型取景器中的崩溃
- 停止忽略VP8 / VP9编码器中的编码器错误
- 弃用GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED。它是减少的,从未实际实施
- 确保在GstVideoBufferPool中存储正确的视频信息
- 在交错TCP上执行SRTP时修复rtspsrc中的上限
- 修复0大小数据包上的pcap解析器崩溃
- 在appsrc中清除EOS标志以允许在EOS和刷新后重复使用
- 在流切换期间忽略流同步器中的刷新流以修复gst-editing-services中由此引起的问题
- 在“数据”之后忽略WAV文件中的标签和其他元数据。 PUSH模式下的块以防止它们被解释为音频
- 仅针对YUV颜色格式在v4l2中正确使用色度法
- 将MPEG TS muxer中的保留位设置为1s
- 修复SBC帧长度的计算
- 修复RTP JPEG2000 depayloader的输出,使每个缓冲区有一帧,并在不完整帧上的OpenJPEG解码器崩溃
- 将gst-libav中的ffmpeg快照更新为2.8.5
- 内存泄漏修复了scaletempo,原始视频RTP depayloader以及与音频/视频过滤器相关的playink
- 修复OSX音频插件中的错误处理
- 各种gobject-introspection注释修复和添加
- 针对最新clang编译器的编译器警告修复
版本1.6.1中的新功能:
- 修复了gst-libav编码器中的崩溃
- 更多DASH-IF测试流正在运行
- Live DASH,HLS和MS SmoothStreaming流为自适应流媒体协议提供更可靠的工作和其他修复
- 反向播放与scaletempo配合使用以保持音频音高
- 报告负的applied_rate 的正确流时间
- 解码期间的SRTP数据包验证不再拒绝有效数据包
- 修复了audioaggregator和aggregator以在合适的时间开始生成输出,例如在开头没有输出很多沉默
- gst-libav的内部ffmpeg快照已更新为2.8.1
- cerbero支持Mac OS X 10.11(El Capitan)
- 修复了各种内存泄漏,包括playbin,playsink和decodebin中的主要泄漏
- 各种GObject-Introspection注释修复了绑定
- 还有很多很多
版本1.6.0中的新功能:
- 立体3D和多视图视频支持
- 特技模式API,仅用于关键帧快进/快退播放等。
- 改进DTS(解码时间戳)与PTS(演示时间戳)处理以解决负面DTS
- 新的GstVideoConverter API,可在所有支持的格式之间进行更优化和更正确的原始视频帧转换,并重新缩放
- v4l2src现在支持重新协商
- v4l2transform现在可以进行缩放
- V4L2元素现在正确报告Colorimetry
- 更简单的MP4,Matroska,Ogg,MPEG-TS分块录制:新的splitmuxsink和multifilesink改进
- 内容保护信令API和通用加密(CENC)支持DASH / MP4
- 许多自适应流媒体(DASH,HLS和MSS)改进
- 新的PTP和NTP网络客户端时钟以及更好的远程时钟跟踪稳定性
- 使用glimagesink或gtkglsink 以高分辨率显示高质量文字字幕
- RECORD支持GStreamer RTSP服务器
- RTSP服务器和客户端中的重传(RTX)支持
- RTSP在客户端和服务器上寻求支持已得到修复
- RTCP调度改进和缩小RTCP支持
- MP4 / MOV muxer获得了新的“强大”功能。尝试始终将输出文件保持在有效状态的操作模式
- 聚合器,audiomixer和compositor中的实时混音支持得到了很大改善
- compositor现在还支持动态重新调整输入流
- 具有适当输入同步和实时输入支持的新audiointerleave元素
- Blackmagic Design DeckLink捕获和回放卡支持从头开始重写; 2k / 4k支持;模式感应
- RTP和MPEG-TS中的KLV元数据支持
- H.265视频编码器(x265),解码器(libav,libde265)和RTP payloader和depayloaders
- 新DTLS插件和SRTP / DTLS支持
- OpenGL3支持,多个上下文和上下文传播,3D视频,传输/转换分离,字幕混合
- 新的基于OpenGL的QML视频接收器,Gtk GL视频接收器,CoreAnimation CAOpenGLLayerSink视频接收器
- gst-libav切换到ffmpeg作为libav-provider,获得对3D /多视图视频,特技模式和CAVS编解码器的支持
- 用于单元测试的GstHarness API
- gst-editing-services获得了全新的ges-launch-1.0界面,改进了混音支持并集成到gst-validate中
- gnonlin在gst-editing-services中被推荐使用nle(非线性引擎)
- gst-validate有一个新的插件系统,一个广泛的默认测试套件,支持并发测试运行和valgrind支持
- 用于SDK二进制包的cerbero构建工具获得了新的“bundle-source”命令
- 对Android,iOS,OS X和Windows平台支持的各种改进
版本1.5.2中的新功能:
- 740502:向GstDirectControlBinding添加绝对属性
- 740575:在GStreamer中修复DTS
- 745366:concat:转发FLUSH_START / FLUSH_STOP事件
- 746949:concat:添加active-pad属性
- 750027:concat:刷新搜索后将内部起始偏移重置为0
- 750033:basetransform - 允许整理/分离缓冲区
- 750039:保持共享内存的缓冲区
- 750319:memory:子类不知道unmap中的映射标志
- 750530:ptp:FreeBSD,DragonFly和其他BSD没有ifreq.ifw_hwaddr
- 750574:netclientclock:使时钟成为内部时钟周围的包装时钟
- 750761:inputselector:处理不同的持续时间曲目选择
- 750782:管道:添加gst_pipeline_set_latency(),getter和GObject属性
- 751026:basesink:正确处理最后样本属性的缓冲区列表
- 751047:concat:添加adjust-base属性
- 751107:concat:释放垫时,适当发送EOS。
- 751235:utils:get_compatible_pad不完全尊重过滤器上限
- 751420:basesink:需要深度复制drain 中的最后一个缓冲区列表
版本1.4.5中的新功能:
- GStreamer核心:
- 736969:queue2:缓冲时死锁
- 738092:basesink:根据方向钳位报告的位置
- 740001:任务:暂停和停止时的竞争条件
- GStreamer插件基地:
- 741420:视频池:应用对齐后应在配置中更新大小
- 715050:为audio / x-audible添加typefinder
- 739544:tcp:在tcp元素中添加测试并修复内存泄漏
- 739840:typefind应识别Apple Core Audio Format(CAF)
- 740556:videodecoder:DTS时不要抱怨!=关键帧上的PTS
- 740675:playsink:继续播放,重置静音属性
- 740730:rtspconnection:如果父源已被销毁,请不要删除子源
- 740853:audiodecoder:在发送EOS之前推送待处理事件。
- 740952:alsa:NetBSD修复
- 741045:在某些情况下,audiorate可能会丢失时间戳精度
- 741198:playbin:泄漏GstPads
- GStreamer插件好:
- 711437:apev2mux:不应该在WavPack文件的开头放置APEv2标签
- 726194:当捕获卡有时是隔行扫描时,v4l2src无法很好地处理,有时候会以相同的分辨率进行处理
- 736397:flvdemux:逐流重新同步行为导致A / V-desyncs
- 737603:v4l2bufferpool:当字段为V4L2_FIELD_INTERLACED时设置缓冲区交错标志
- 739476:vpx:无法从git 构建libvpx
- 739722:matroskamux:线程安全寄存器GstMatroskamuxPad
- 739789:v4l2allocator:如果分配器已处于活动状态,则修复错误消息
- 739791:当v4l2_allocator_new()失败时,v4l2bufferpool:unref pool
- 739792:v4l2allocator:修复gst_v4l2_allocator_stop原型
- 739996:videomixer:如果其中一个来源存在,则丢弃很多帧
- 740040:v4l2src:出现V4L2_BUF_FLAG_ERROR时失败
- 740392:rtspsrc:mikey base64 decode key-mgmt leak
- 740407:qtmux将捕获限制为4096x4096
- 740633:v4l2src:RW io-mode已损坏
- 740636:v4l2src:并非总是在驱动程序上设置帧速率
- 740671:aspectratiocrop:视频大小更改时需要重置裁剪
- 740905:v4l2:仍然有1个包含到linux / videodev.h
- 741271:rtph264pay:使用SPS / PPS时H.264 payloader中的缓冲区泄漏
- 741381:rtph264pay:从PAUSED开始竞赛条件可能会导致崩溃 - > READY
- 741407:deinterlace:在query_caps中,如果过滤器是隔行扫描的,则仅返回支持的格式
- 737579:v4l2object:为输出设备设置颜色空间
- 739754:v4l2bufferpool:在排队之前应验证所有记忆是否可写
- GStreamer插件坏:
- 722764:rawparse:修复SEEKING查询处理
- 729768:mpegtsbase:提升限制以最初读取更多字节以查找PCR
- 739152:gl / cocoa:使用GNUStep构建失败
- 740191:dvbbasesink:32位(rpi)上的段错误
- 740201:gl / cocoa:不在OSX上编译&lt; 10.7再一次
- 740451:srtpdec:leaks rtp / rtcp sink events
- 740953:configure.ac:unportable test(1)比较运算符
- 741321:opusparse:修复头解析esp。 libopus的编码输出
- GStreamer RTSP服务器:
- 739481:rtsp-stream:离开rtpbin时泄漏srtp解码器
版本1.4.4中的新功能:
- 版本1.4.5中修复的错误:
- 737498:multiqueue:计算当前级别时不考虑GAP事件
- 737794:multiqueue:如果队列超出序列化事件则死锁
- 737999:systemclock:多线程进入状态问题
- 738198:multiqueue:不在EOS上唤醒未链接的流
版本1.4.1中的新功能:
- 1.4版本系列正在添加新功能1.2系列的一部分,是包含新功能的GStreamer多媒体框架的API和ABI-stable 1.x版本系列的一部分。与1.4.0相比,1.4.x错误修复版本仅包含重要的错误修正。
版本1.4 RC2中的新功能:
- GStreamer团队很高兴地宣布稳定版1.4系列的第二个候选版本。 1.4版本系列在1.0和1.2系列之上添加了新功能,是GStreamer多媒体框架的API和ABI-stable 1.x版本系列的一部分。
- 如果没有检测到更大的回归或更大的问题,并且发布了候选版本的足够测试,那么此版本候选版本很快将会出现稳定的1.4.0版本。 1.3版本系列期间添加的新API目前不会再发生变化。
版本1.4 RC1中的新功能:
- 新API:
- GstMessageType已添加GST_MESSAGE_EXTENDED。之前的所有类型都可以像以前一样用作标记类型,但从该消息开始,类型只是递增计数。这是必要的,以便能够添加更多的消息类型。在2.0中,GstMessageType将变为枚举,而不再是标志类型。
- 用于设备探测的GstDeviceMonitor,例如列出所有可用的音频或视频捕获设备。这是从0.10替换GstPropertyProbe。
- 事件在通过焊盘行进时累积运行时偏移量,由gst_pad_set_offset()函数设置。例如,这允许在QOS事件中对此进行补偿。
- GstBuffer有一个新标志“tag-memory”在将内存添加或删除到缓冲区时自动设置。这允许缓冲池检测它们是否可以回收缓冲区或者需要先重置它。
- GstToc有新的API将GstTocEntries标记为循环。
- 已定义未授权的资源错误,以通知应用程序由于缺少授权而访问资源失败并将此情况与其他情况区分开来。此更改实际上已在1.2.4中。
- GstPad有一个新标志“accept-intersect”,它将使默认的ACCEPT_CAPS查询处理程序执行交集而不是子集检查。这对于可以处理不完整上限的解析器元素很有意思。
- GstCollectPads现在支持刷新和SEEK事件的默认处理程序。
- 新的GstFlowAggregator辅助对象,简化了具有多个源焊盘的元素中流返回的处理。此外,GstPad现在总是存储最后一个流返回并提供一个API来检索它。
- GstSegment有新的API来将运行时间偏移一个特定值,这在GstPad中用于在所有情况下允许gst_pad_set_offset()中的正负偏移。
- 对codec utils和codec解析器库中添加了对h265 / HEVC和VP8的支持,并将其集成到各种元素中。
- 已添加用于调整RTSP连接的TLS验证的API。
- RTSP和SDP库现在支持MIKEY(RFC 3830),并且有API可以区分不同的RTSP配置文件。
- 用于访问RTP时间信息和统计信息的API。
- 对rtpbin添加了对辅助流的支持。
- 添加了对平铺原始视频格式的支持。
- GstVideoDecoder和GstAudioDecoder有API来帮助聚合标记事件并将自定义标记合并到它们中。
- GstBufferPool现在支持刷新。
- playbin / playsink支持应用程序提供的音频和视频过滤器。
- GstDiscoverer有新的和简化的API,可以获取有关传递给插件安装程序的缺失插件和信息的详细信息。
- GL库从gst-plugins-gl合并到gst-plugins-bad,提供了一个通用的基础设施,用于处理GStreamer管道中的GL,以及一个包含一些元素的插件,尤其是视频接收器。支持的平台目前是Android,Cocoa(OS X),DispManX(Raspberry Pi),EAGL(iOS),WGL(Windows)和通用X11,Wayland和EGL平台。这取代了eglglessink,也应该取代osxvideosink。
- gst-plugins-bad中的新GstAggregator基类。这应该在未来取代GstCollectPads并修复其API中的长期存在的缺点。与基类一起提供了一些元素,如视频混合器(合成器)。
- 主要变化:
- 新的插件和元素:
- v4l2videodec元素,用于访问可通过V4L2访问的平台上的硬件编解码器,例如:三星Exynos。这与现有V4L2元素和相应基础设施的重大重构相结合。 v4l2videodec元素替换了mfcdec元素。
- 新的downloadbuffer元素,取代了queue2的下载缓冲功能。与queue2的代码相比,它更简单,仅适用于这个单一用例。一个值得注意的新功能是,当没有其他任何内容要下载时,它正在下载已下载的流部分中的空白。启用下载缓冲时,playbin现在使用它。
- rtpstreampay和rtpstreamdepay元素,用于根据RFC 4571在流API(例如TCP)上传输RTP数据包。
- rtprtx元素,用于标准兼容的重传实现,集成到rtpmanager插件中。
- audiomixer元素,它将多个音频流混合在一起,同时保持同步。计划将其替换为加法元素。
- 用于3D相机的OpenNI2插件,如Kinect相机。
- 用于解码高动态范围EXR图像的OpenEXR插件。
- curlsshsink和curlsftpsink通过SSH / SFTP写文件。
- 从0.10移植的videosignal,ivfparse和sndfile插件。
- avfvideosrc,vtdec和其他元素从0.10开始移植,现在可在OS X和iOS上使用。
- 其他变化:
- gst-libav现在使用libav 10.1,并获得对H265 / HEVC的支持。
- 通过各种插件和基类中的错误修正和功能添加,改进了对硬件编解码器和特殊内存类型的支持。
- 在queue2和multiqueue元素中缓冲的各种错误修正和改进。
- dvbsrc现在支持更多传送机制和其他功能,包括DVB S2和T2支持。
- MPEGTS库支持更多描述符。
- 对tsdemux和tsparse的重大改进,特别是时间和寻求相关。
- souphttpsrc现在支持保持活动连接,压缩,可配置的重试次数以及SSL证书验证的配置。
- hlsdemux经历了重大的重构,现在工作更可靠,并支持更多HLS功能,如技巧模式。此外,片段会在下载时向下游推送,而不是等待每个片段完成。
- dashdemux和mssdemux现在也在下载时将片段推送到下游,而不是等待每个片段完成。
- videoflip可以根据方向标签自动翻转。
- openjpeg支持OpenJPEG2 API。
- waylandsink被重构,现在应该更有用。它还包括一个小型库,很可能在将来被删除,并将导致GstVideoOverlay界面的扩展。
- gst-rtsp-server现在支持SRTP和MIKEY。
- gst-libav编码器正在与下游通过上限协商任何配置文件/级别设置。
- 在整个地方都有很多关于覆盖警告的修复。
- 谈判相关的绩效改进。
- 800多个已修复的错误报告,以及其他许多错误修复和其他无错误报告的改进。
- 需要注意的事项:
- 删除了eglglessink元素,并用glimagesink元素替换。
- 删除了mfcdec元素,并替换为v4l2videodec。
- osxvideosink仅适用于OS X 10.6或更高版本。
- 在Android上,用于初始化GStreamer的自动生成的Java类的命名空间已从com.gstreamer更改为org.freedesktop.gstreamer以防止名称空间污染。
- 在iOS上,如果您之前使用过GnuTLS GIO模块,则必须从二进制文件中包含的项目更新项目中的gst_ios_init.h和gst_ios_init.m。装载机制略有变化。
版本1.2.4中的新功能:
- GStreamer核心:
- 724373:当管道暂停时,Queue2会截断其临时文件
- 725517:docs:修复拼写错误并删除未知注释
- 725809:ghostpad:由于目标板上缺少引用计数而导致罕见崩溃
- 727253:解析:发布tar包中包含的Bison生成的文件导致编译错误
- 727883:baseparse:队列帧的内存泄漏
- GStreamer插件基地:
- 693263:typefinding:MPEG-2视频ES检测为H.263
- 683504:播放链接:禁用字幕时死锁和次优字幕禁用
- 700770:typefinding:mp3文件被误检测为h263 video
- 723597:tagdemux:GST_FORMAT_TIME中的Seek事件转换为BYTES到早期
- 724633:oggdemux:忽略推送模式中的最后一页
- 724720:rtspconnection:无法以隧道模式断开/重新连接读取连接
- 725313:rtspconnection:从不以隧道模式调用closed()回调
- 725644:typefinding:mp3文件被误检测为H.263
- 726642:rtspconnection:错误处理中的次要内存泄漏
- 727025:adder:重做逻辑以检查是否必须发送eos。
- GStreamer插件好:
- 725104:qtdemux:反向播放和视频流切换失败
- 722185:souphttpsrc:racy“服务器不支持寻求“错误
- 724619:读取pulsesink的设备名称属性时崩溃
- 725124:rtspsrc:修复任务创建失败时的死锁
- 725712:rtpsession:RTCP FIR收到未知SSRC时崩溃
- 725860:v4l2src:使用v4l2src修复Hauppauge HDPVR视频捕获设备
- 726777:rtpjpegpay:有效负载大小未正确计算
- 728017:[回归] eos事件无法从gstrtpjitterbuffer发出。
- 728041:rtph264depay:输出avc格式时将所有输出缓冲区标记为delta单位
- 724638:aacparse:未找到音频帧时缺少弹性
- 727329:check:souphttpsrc:未知类型名称'SoupStatus'
- GStreamer插件坏:
- 724013:不要在fluiddec中硬编码/ usr / share / sounds / sf2路径
- 725137:hlsdemux:如果有查询参数,则无法计算媒体播放列表网址
- 725140:hlsdemux:无法正确解析CODECS和RESOLUTION
- GStreamer libav插件:
- 727779:avdec_h264,matroskademux:寻求崩溃(1.2回归) 版本1.2.2中的
新功能:
- 1.2版本系列正在添加新版本1.0系列之上的功能,是包含新功能的GStreamer多媒体框架的API和ABI-stable 1.x版本系列的一部分。
版本1.2.0中的新功能:
- 新API:
- GstContext协商/共享/宣布用于在元素之间共享通用上下文,例如显示句柄
- GL纹理上传转换元,用于允许将不同的缓冲区类型转换为OpenGL纹理
- GstCapsFeatures作为GstCaps的扩展,允许在元素之间协商特定的内存或元需求
- 连续和不可映射内存的GstMemory标志
- stream-start事件现在具有可选标志,例如用于信令稀疏流
- stream-start甚至现在有一个可选的group-id字段来表示应该一起播放的所有流
- gst-plugins-base中的分配器库,目前仅支持通用dmabuf内存
- insertbin库,更易于处理动态链接的管道(现在是-bad)
- EGL帮助程序库(现在是-bad)
- MPEG-TS数据结构库(现在是-bad)
- 新GstVideoRegionOfInterestMeta描述视频帧上感兴趣的区域。
- GstVideoDecoder / Encoder有new :: flush()vfunc来替换错误定义的:: reset()vfunc。
- URI查询允许立即查询重定向的URI。
- 主要变化:
- 新工具:gst-plugins-base中的gst-play-1.0,用于在命令行上进行基本回放测试。
- 新插件:
- mssdemux for Microsoft Smooth Streaming
- 用于DASH自适应流媒体协议的dashdemux
- bluez与蓝牙设备互动
- 用于JPEG2000解码和编码的openjpeg
- daala用于实验性Daala解码和编码
- vpx插件具有实验性VP9解码和编码支持
- 用于WebP解码的webp插件(稍后要添加的编码)
- 其他各种:yadif,srtp,sbc,fluidynth,midiparse,mfc,ivtv,accuraterip和audiofxbad
- 移动插件:
- dtmf,vp8rtp,scaletempo和rtpmux插件都在gst-plugins中 - 现在好了
- 视频:
- 修复视频处理和视频转换等转换器中隔行扫描视频的处理(例如,单独缩放两个字段)
- videoconvert将在需要转换时尽量减少质量损失
- 来自gst-plugins-bad中(令人困惑的)libgstbasevideo-1.0库的实验性GstSurfaceConverter,GstSurfaceMeta和GstVideoContext API现已被删除,并被GStreamer Core和gst-plugins-base中的新API取代(见上文) )。由于这就是此库中的所有内容,因此已从gst-plugins-bad 中删除了整个实验性libgstbasevideo-1.0库。
- 在视频转换中更好地处理色度子采样和色度选址转换,并且改善了对隔行扫描视频的支持。
- videotestsrc中的新风车和轮辐图案
- videomixer现在可以在其水槽上接受不同的视频格式,并在混合过程中转换为通用格式
- 音频:
- audioconvert将在需要转换时尽量减少质量损失
- adder现在允许对其输入流进行静音/取消静音,也可以按输入流量 进行静音/取消静音
- pulseaudio元素可以在回放期间在设备之间切换
- aacparse可以在ADTS← - > RAW 之间进行转换
- 平台特定更改:
- 现在,即使在非glibc平台(例如Windows,OSX,Android)上,大写,事件等也会在GStreamer调试日志中打印,而不仅仅是指针地址。
- 网络元素(UDP / TCP)现在可以更好地处理IPv6套接字无法处理IPv4的平台(例如Windows)
- Linux / BSD:v4l2有许多改进和清理
- 其他变化:
- gst-libav现在使用libav 9
- 现在支持插件的静态链接(也在1.0.7中)
- rtspsrc:添加对NetClientClock的支持:当服务器在SDP中建议GstNetTimeProvider时,设置一个从属于远程时钟的GstNetClientClock并在provide_clock中建议这个时钟。简化来自RTSP服务器的资源的同步回放。 gst-rtsp-server现在支持将其添加到SDP并可以提供网络时钟
- RTP重传/ NACK支持和大RTP抖动缓冲改进
- SRTP和DTLS支持
- 对许多元素和核心进行更改以使用正确的粘性事件顺序,并且在刷新期间也不会丢失任何重要的粘性事件
- &gt; 1000个已修复的错误报告,以及其他许多错误修复和其他无错误报告的改进
- 需要注意的事项:
- 单个标题包括所有库,例如#include - 这是一些绑定所必需的。
- 在以前不正确的情况下,更严格(正确)限制子集检查。如果子集上限缺少超集上限所具有的某些字段,则上限现在始终无法成为另一组上限的兼容子集。如果上限现在不完整,这可能会导致未协商的错误。但是,它还可以防止由于以不兼容/意外方式格式化的管道数据导致某些元素导致的数据损坏。检查h264上限以获取流格式和对齐字段以及流格式字段的AAC上限。此更改也将包含在下一个稳定的1.0.8版本中。
- 在某些地方更严格地检查缺失事件并更正粘性事件顺序(stream-start,caps,segment);默认情况下,在稳定版本中未启用此功能,但在使用git版本,开发版本或在CFLAGS中使用-UG_DISABLE_ASSERT进行编译时,您可能会收到警告
- x264enc现在默认输出字节流中的数据,如果下游有任何上限(例如没有设置上限的appsink,filesink,udpsink,tcpserversink等)。
- MPEG TS分路器发布的消息现在包含不同格式的PMT,PAT等。这种新格式使用新MPEGTS库中的数据结构
- GstContext API已在1.1.4和1.1.90 之间更改
1.1.4版中的新功能:
- 新API:
- GstContext协商/共享/宣布用于在元素之间共享通用上下文,例如显示句柄
- GL纹理上传转换元,用于允许将不同的缓冲区类型转换为OpenGL纹理
- GstCapsFeatures作为GstCaps的扩展,允许在元素之间协商特定的内存或元需求
- 连续和不可映射内存的GstMemory标志
- stream-start事件现在具有可选标志,例如用于信令稀疏流
- stream-start甚至现在有一个可选的group-id字段来表示应该一起播放的所有流
- gst-plugins-base中的分配器库,目前仅支持通用dmabuf内存
- insertbin库,更易于处理动态链接的管道(现在是-bad)
- EGL帮助程序库(现在是-bad)
- MPEG-TS数据结构库(现在是-bad)
- 新GstVideoRegionOfInterestMeta描述视频帧上感兴趣的区域。
- GstVideoDecoder / Encoder有new :: flush()vfunc来替换错误定义的:: reset()vfunc。
- URI查询允许立即查询重定向的URI。
- 主要变化:
- 新工具:gst-plugins-base中的gst-play-1.0,用于在命令行上进行基本回放测试。
- 新插件:
- mssdemux for Microsoft Smooth Streaming
- 用于DASH自适应流媒体协议的dashdemux
- bluez与蓝牙设备互动
- 用于JPEG2000解码和编码的openjpeg
- daala用于实验性Daala解码和编码
- vpx插件具有实验性V9解码和编码支持
- 用于WebP解码的webp插件(稍后要添加的编码)
- 其他各种:yadif,srtp,sbc,fluidynth,midiparse,mfc,ivtv,accuraterip和audiofxbad
- 移动插件:
- dtmf,vp8rtp,scaletempo和rtpmux插件都在gst-plugins中 - 现在好了
- 视频:
- 修复视频处理和视频转换等转换器中隔行扫描视频的处理(例如,单独缩放两个字段)
- videoconvert将在需要转换时尽量减少质量损失
- 来自gst-plugins-bad中(令人困惑的)libgstbasevideo-1.0库的实验性GstSurfaceConverter,GstSurfaceMeta和GstVideoContext API现已被删除,并被GStreamer Core和gst-plugins-base中的新API取代(见上文) )。由于这就是该库中的全部内容,因此已从gst-plugins-bad中删除了整个实验性libgstbasevideo-1.0库。
- 在视频会话中更好地处理色度子采样和选址转换
- videotestsrc中的新风车和轮辐图案
- 音频:
- adder现在允许对其输入流进行静音/取消静音,也可以按输入流量 进行静音/取消静音
- pulseaudio元素可以在回放期间在设备之间切换
- aacparse可以在ADTS← - > RAW 之间进行转换
- 平台特定更改:
- 现在,即使在非glibc平台(例如Windows,OSX,Android)上,大写,事件等也会在GStreamer调试日志中打印,而不仅仅是指针地址。
- 网络元素(UDP / TCP)现在可以更好地处理IPv6套接字无法处理IPv4的平台(例如Windows)
- Windows:d3dvideosink为上游元素提供缓冲池
- Linux / BSD:v4l2有许多改进和清理
- 其他变化:
- gst-libav现在使用libav 9
- 现在支持插件的静态链接(也在1.0.7中)
- rtspsrc:添加对NetClientClock的支持:当服务器在SDP中建议GstNetTimeProvider时,设置一个从属于远程时钟的GstNetClientClock并在provide_clock中建议这个时钟。简化来自RTSP服务器的资源的同步回放。 gst-rtsp-server现在支持将其添加到SDP并可以提供网络时钟
- RTP重传/ NACK支持和大RTP抖动缓冲改进
- SRTP和DTLS支持
- 对许多元素和核心进行更改以使用正确的粘性事件顺序,并且在刷新期间也不会丢失任何重要的粘性事件
- &gt; 1000个已修复的错误报告,以及其他许多错误修复和其他无错误报告的改进
- 需要注意的事项:
- 单个标题包括所有库,例如#include - 这是一些绑定所必需的。
- 在以前不正确的情况下,更严格(正确)限制子集检查。如果子集上限缺少超集上限所具有的某些字段,则上限现在始终无法成为另一组上限的兼容子集。如果上限现在不完整,这可能会导致未协商的错误。但是,它还可以防止由于以不兼容/意外方式格式化的管道数据导致某些元素导致的数据损坏。检查h264上限以获取流格式和对齐字段以及流格式字段的AAC上限。此更改也将包含在下一个稳定的1.0.8版本中。
- 在某些地方更严格地检查缺失事件并更正粘性事件顺序(stream-start,caps,segment);默认情况下,在稳定版本中未启用此功能,但在使用git版本,开发版本或在CFLAGS中使用-UG_DISABLE_ASSERT进行编译时,您可能会收到警告
- x264enc现在默认输出字节流中的数据,如果下游有任何上限(例如没有设置上限的appsink,filesink,udpsink,tcpserversink等)。
评论没有发现