• 视频硬解api介绍


      在一个gpu如此强大的时代,视频解码怎么能少了gpu厂商的参加。为了用硬件加速视频解码,厂商定义了一些api。

      好吧,一旦和硬件打交道,就会有os的参加,有了硬件与os参加,api肯定会变成很凌乱,看了一点代码,一些wiki,一些文档,写个总结,希望真正的专家斧正一下。

    windows平台:

      微软一家说了算,硬件都是小弟。所以api没那么凌乱。就一种

      DXVA(directx video acceleration),两个版本,1.0和2.0.

    linux平台:

      什么事到了linux这,都异常让人郁闷。

      号称给你很多选择,最自由的选择,如果都不满意,还可以自己定义一套。

      其实呢?我根本不需要那么多选择,我只需要一个容易用的,好用的,稳定的而已。我只是一个普通的程序员,没有站到时代前沿,就想快速开发。

      显卡有三大家,intel,amd,nvdia,自然硬解api也就有三套。

      intel的:va api (video acceleration api),自我号称为linux标准。freedesktop也用的这套标准。

      nv的:   vdpau (video decode and presentation api for unix),nv的定义的api。

      amd的: Xvba (x-video bitstream acceleration api)),amd定义的api。

        其实开源界如果只有三套,其实也还算好吧。但是很让人恼火的就是。当你的硬件平台是nv时,你发现你的想用的软件只支持va api,肿么办?那。。。模拟吧。。于是就有了vdpau for va api。xvba fo va api。

       从这个角度讲,也还算可以,至少大家在名义上让intel当了老大。大家都在后端用自己的代码模拟实现intel的api。不过事实上,还有 va api for vdpau这种东西。。。我凌乱了。。你看明白了么?

     ps:

      实际上,硬件厂商参与完之后,x组织也没忘记插一脚。有个标准XvMC(X-Video Motion Compensation)标准,ffmpeg中有支持,不过签于x组织的弱势,这套api支持不好。其他的va api与vdpau,ffmpeg也加入了支持,不知道为什么xvba没有支持,难道amd已经穷到没人提交patch给开源社区了?

    再ps:

       最近看了ffmpeg 的patch list,发现1.0时,有人提交xvba的patch,但是没有被合并到主分支上来,看来还需要一段时间ffmpeg才能直接开启amd显卡的硬解。

      http://developer.amd.com/tools-and-sdks/open-source/

      sdk请戳上面的链接。

    android平台:

      google一家,别无分号,虽然号称你可以自己干掉libstagefright这个框架,自己实现一套。不过有这样技术实力的公司,通常不去干破坏标准的事。  

      于是也简单了,openmax。

      嵌入式平台嘛,远远比pc世界的厂商多,复杂的多,标准一定要十分十分抽象,干脆什么都没有,只有一个状态机。

      所以标准变得十分简化。

          不过这样对硬件厂商就方便多了,大家自己只要能搞出openmax定义的组件就好了。

    mac 

      实际上如果操作系统厂商比较封闭一点,世界可能会更好。比如mac os,上面说了linux上视频加速接口的混乱,来自freebsd的mac os又好了很多。

      只有一套api,叫vda(Video Decode Acceleration Framework),详细请戳

      https://developer.apple.com/library/mac/technotes/tn2267/_index.html

      https://lists.libav.org/pipermail/libav-api/2011-November/000314.html

          

  • 相关阅读:
    mac 打开文件路径
    js 小技巧
    java 随机数
    sql server 2000 按日期查找
    WML
    Groovy
    Windows Azure Traffic Manager (4) Windows Azure Traffic Manager (4) 循环法和故障转移
    Windows Azure Cloud Service (28) 在Windows Azure发送邮件(中)
    [New Portal] Windows Azure Cloud Service (30) 新的Windows Azure SDK 1.7和新的Windows Azure Managemeng Portal
    Windows Azure Traffic Manager (3) Windows Azure Traffic Manager (3) 创建流量管理器策略和性能负载平衡
  • 原文地址:https://www.cnblogs.com/mr-nop/p/3376199.html
Copyright © 2020-2023  润新知