Giter VIP home page Giter VIP logo

syengine's Introduction

ShanYe MediaFoundation Engine (Windows)

AppVeyor Build Status License

> 快速整合指南 | Quick Start Guide (分段视频无缝播放指南)

> 关于 RTMP 直播流 | RTMP Playback

> 下载 VSIX 包 | Download VSIX Package

开发信息

  • 开发者:ShanYe [联合开发 @saki-saki、@3meng、@silverdragon727、@xqq、@typcn]
  • 完成度:100% [实现跟系统播放MP4(本地或网络)一样的性能、稳定性、效果、API兼容性。]

许可协议

  • Licensed under LGPLv3 or later.
  • LGPLv3许可请求外的情况,请联系[email protected],并说明目的。
  • 在您的应用中使用的时候,请务必带上LGPL许可文件及本开源库的信息和GitHub地址。
  • 下面的库依据原本的协议:ffcodecs (ffmpeg)、stagefright (AOSP)

使用方式

  • 直接下载VSIX扩展包,安装后在VS中引用即可使用。
  • 使用git submodule进行源码级别的整合。
  • 下载最新的zip压缩包进行源码级别的整合。

版本历史 (简单信息)

  • 2016-07-10:添加标准协议RTMP直播的支持。(感谢xqq和typcn的实现)
  • 2016-02-05:添加UWP支持。
  • 2016-02-01:添加FFmpeg的视频、音频软件解码,仅支持部分codec。
  • 2016-01-07:添加 SYEngine.MediaInformation 运行时类,可以通过这个类在不播放的情况下获取到媒体容器的详细信息。
  • 2015-12-31:修复MultipartStreamMatroska的Seek相关bug,修复播放快结束时的MKV容器bug,优化网络Seek后的缓冲逻辑。
  • 2015-12-26:在MultipartStreamMatroska中添加事件触发器,C#的APP可以动态监听事件,并且在切换下一分段视频或者用户跳播的时候,动态更新切片的地址。
  • 2015-12-22:修复使用MultipartStreamMatroska播放切片的网络视频源的时候,Seek的时候卡住UI响应的问题。
  • 2015-12-18:已经不需要在 Package.appxmanifest 中添加相关对象信息,真正实现了一行代码初始化即可完美整合。
  • 2015-12-16:修复MediaElement的DownloadProgressChanged事件在播放FLV的时候不触发下载进度的问题,现在FLV整体播放效果已跟系统播放MP4近乎100%相同
  • 2015-12-14:移除CoreMFCommon工程;修复播放网络流的时候,Seek没缓冲进度的问题。
  • 2015-12-11:修复关键bug,即花屏、网络差环境下的缓冲逻辑等,已经可以投入产品使用。不过仍有细小的不稳定性。
  • 2015-12-09:重构demuxers,合并到一个工程,原来的工程删除。
  • 2015-12-07:第一次提交到git进行托管。

组件1:跨平台的解复用器 (可使用在Xcode)

  • CoreCommon:此为核心模块,组件1中的所有其他的项目都会直接依赖于此项目,此项目为静态库,提供基础的抽象、内存管理、解码器标准化定义等。
  • CoreDemuxers:包含自行编写的FLV\MKV\MP4解封装器。

组件2:Win32的MF分离器和混流器

  • CoreMFSource:此为最核心的实现,其直接依赖CoreCommon,间接依赖FLV、MKV、MP4这三个Demuxer。其提供了高层封装,使组件可以在Win32的MF管道线模型中运行,其也是WinRT应用的MediaElement控件播放时调用的核心模块。
  • MultipartStreamMatroska:直接依赖ffcodecs。此库提供多切片分段的视频流重新混合为一个分段并且输出为MKV容器,然后CoreMFSource即可播放这个混合后的单个视频,实现多分段播放无缝过度。其可以无缝混合本地文件以及HTTP网络URL流。

已知问题

  • MultipartStreamMatroska 存在一点点的内存泄漏,多一个分P泄漏20字节左右,不是很严重。
  • MultipartStreamMatroska 无法提供整体的下载进度。

syengine's People

Contributors

rukino-saki avatar typcn avatar mematrix avatar xqq avatar shan-ye avatar silverdragon727 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.