zoukankan      html  css  js  c++  java
  • ffmpeg优化

    不同版本有很大的区别,注意你的版本是不是最新版

    解码优化:
    1)对IDCT汇编化,并优化VLD的实现
    2)根据ARM9 cache & cache line的大小做MB的分组,使得每次可以同时处理多个MB
    即 对多个MB在一个循环内做VLD--->IDCT-->MC--.......
    3)优化关键代码段的内存访问(MC)
    4)不要使用FFmpeg内置的img_convert()做yuv2rgb转换
    5)其他更深层次的优化细节可能告诉你,目前也没有用!

    基于不同平台的优化,指令集优化,arm

    http://blog.csdn.net/huyinguo/article/details/4721212

    如何正确使用av_seek_frame实现视频拖放

     

       time=5;//拖放到5秒的位置 

    我对MMX优化没有研究,不过/libavcodec/x86里有很多针对X86平台的汇编优化,或许你可以用到。另外,不要局限在FFMPEG, 现在GOOGLE推出的OPENCORE里的H264解码器效率比FFMPEG高很多,可以试试这个base :)

    http://blog.csdn.net/lius1984/article/details/4167392


    ffmpeg->neon->版本-》asm

    yasm是汇编编译器,因为ffmpeg中为了提高效率用到了汇编指令,比如MMX和SSE。解决这个问题方面有两个:
    1、在网上下载一个yasm.exe并安装在mingw/bin下面,编译代码时你注意看,会发现asm后缀的文件用的编译器是yasm,c文件用的是gcc;
    2、不使用汇编指令,在配置时加上,即./configure  --disable-yasm

    3、yasm下载(非必须):

    用mac下的MacPorts下载yasm,前提是系统已经安装了MacProts

    Macports安装方法:http://www.ccvita.com/434.html

     

    通过Macports下载并且安装yasm:

    [plain] view plaincopy

    sudo port install yasm 
    yuv转rgb 如果在iPhone 3GS上,可以利用GPU做转换输出

    版主找到可行的方法了吗?用opengl画图的话也得转换成rgb格式的吧,而且这个过程很耗时

    不过一般LCD控制器支持输入数据是YUV420或YUV422,可以调用系统API来显示。比如Mac OS X的Core Image接口就能接受YUV420的数据类型

    多重纹理,和纹理格式可以说没啥关联,这个要看具体的实现。你可以把YUV数据当作RGB载入GLSL,然后shader转换为RGB显示。
    用查表法,把YUV转成RGB输出

    YUV display in OpenGl

    http://stackoverflow.com/questions/1106741/need-help-with-yuv-display-in-opengl

    在任何平台上执行sws_scale函数都慢(相对来说)

    我在ARM9上执行sws_scale更吓人,根本没法用,后面改用自己写的YUV2RGB函数转换有了一个质的飞越,但是还是达不到要求(解码花了四十多MS,转RGB模式带显示到SDL表面花了七十多MS),每秒能播个8-10帧,还是不带播声音的说。痛苦中,为啥FFMPEG不能发布一个已经优化了的转码版本,让我们这些莱鸟不要在ARM的优化上挣扎呀。

    http://www.rosoo.net/a/201003/8943.html

    http://blog.csdn.net/linzhiji/article/details/6750791

    通过sdl显示视频的过程如下:SDL_Init -- SDL_SetVideoMode -- SDL_CreateYUVOverlay -- SDL_LockYUVOverlay  -- SDL_DisplayYUVOverlay -- SDL_UnlockYUVOverlay 。


    没有调用主线程去SDL_DisplayYUVOverlay.

    sws_scale是新版ffmpeg的函数,替代了img_convert

  • 相关阅读:
    转:每个架构师都应该研究下康威定律
    使用OpenShiftFQ上外网
    关系模式设计
    数据库应用系统工程过程
    数据库系统
    四种常见 Git 工作流比较
    Git 进阶指南
    C#高性能TCP服务的多种实现方式
    浮动广告
    <span></span>
  • 原文地址:https://www.cnblogs.com/weinyzhou/p/2592454.html
Copyright © 2011-2022 走看看