zoukankan      html  css  js  c++  java
  • ffmpeg从内存读取文件

    正常情况,ffmpeg直接从文件读取

    AVFormatContext * _ctx = NULL;
    avformat_open_input(&_ctx, _filePath, 0, 0);
    

     我们也可以自定义从内存读取,这样,可以用于读取一些加密的视频文件

        int fill_iobuffer(void * opaque,uint8_t *buf, int bufsize){  
            if(!feof(fp_open)){  
                int true_size=fread(buf,1,bufsize,fp_open);  
                return true_size;  
            }else{  
                return -1;  
            }  
        }
    
    
    
    AVFormatContext * _ctx = NULL;
    unsigned char* _iobuffer = (unsigned char*)av_malloc(32768);
    AVIOContext* _avio = avio_alloc_context(_iobuffer , 32768 , 0 , NULL,fill_iobuffer,NULL,NULL);
    _ctx->pb = _avio;
    
    fp_open=fopen(_filename,"rb+");  
    
    if ((ret = avformat_open_input(&_ctx, "nothing", 0, 0)) < 0) {
    	printf( "Could not open input file.");
    }
    
  • 相关阅读:
    kibana ,logstash and filebeat
    The Run-Time Constant Pool The Constant Pool
    hsdb
    The Dataflow Model: A Practical Approach to Balancing
    编译器
    汇编
    状态机
    lsm-tree
    Serviceability
    JIT编译器
  • 原文地址:https://www.cnblogs.com/IWings/p/5877066.html
Copyright © 2011-2022 走看看