美文网首页
ffmpeg-解码 gop 段任意一帧

ffmpeg-解码 gop 段任意一帧

作者: markfork | 来源:发表于2020-11-09 11:13 被阅读0次

    解码数据

    目标: 将 gop 数据解码为一帧一帧图片

    多媒体处理流程

    [图片上传失败...(image-15b43c-1604651923220)]

    解码处理流程

       // 获取AVFormatContext
       AVFormatContext ctx -> avformat_open_input(ctx,srcFile); 
       // AVFormatContext (获取目标流)
       st = fmt_ctx->streams[stream_index];
       // 从目标流中获取 codec
       AVcodec codec = avcodec_find_decoder(st->codecpar->codec_id);
       // 新建编解码器容器
       AVCodecContext *c = avcodec_alloc_context3(NULL);
       // 从已知流拷贝codecContext 到新的AVCodecContext
       ret = avcodec_parameters_to_context(c, st->codecpar))
       // 打开新建的编码器容器
       avcodec_open2(c, codec, NULL)
       // 开始一系列编码器操作
       
    

    编译 & 运行

    1. MAC
       clang -g -o decode_video decode_video.c `pkg-config --libs libavformat libavcodec libswscale`
    
    2. 运行
        ./decode_video data/1.h264 ./result/  
    
    3. linux 
       gcc -g -o decode_video decode_video.c `pkg-config --libs libavformat libavcodec libswscale`
    

    运行效果

    result文件夹下运行效果

    ffmpeg_decode_h264 frame

    至此获取gop 与 解码gop获取一帧证明是可行的。

    相关文章

      网友评论

          本文标题:ffmpeg-解码 gop 段任意一帧

          本文链接:https://www.haomeiwen.com/subject/zwgtbktx.html