美文网首页
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 段任意一帧

    解码数据 目标: 将 gop 数据解码为一帧一帧图片 多媒体处理流程 [图片上传失败...(image-15b43...

  • 第4讲-FFmepg-视频解码

    内容一:FFmpeg-命令行补充? 内容二:FFmpeg-视频解码? 第一点:确定音视频编解码流程学习? 第二点:...

  • ffmpeg-OpenSLES播放音频数据

    前言 ndk调试命令 上两篇文章FFmpeg - 初探ffmepg并解码数据FFmpeg-多线程解码播放下面是基于...

  • FFMPEG-视频解码流程

    第一步:组册组件 av_register_all()例如:编码器、解码器等等… 第二步:打开封装格式->打开文件 ...

  • FFmpeg视频解码播放

    一 原理: 通过ffmpeg对视频进行解码,解码出每一帧图片,然后根据一定时间播放每一帧图 二 如何集成 ffmp...

  • ijk硬编码队列

    typedefstructsort_queue { AVFrame pic; //解码后一帧 intser...

  • FFmpeg-多线程解码播放

    数据音频重采样 在上篇文章FFmpeg - 初探ffmepg并解码数据我们已经可以获取到音频的数据了,也解决内存上...

  • ffmpeg开发知识点回顾

    视频花屏/卡顿原因 如果GOP分组中的P帧丢失会造成解码端的图像发生错误 为了避免花屏问题的发生,一般如果发现P帧...

  • ffmpeg播放器开发H.264解码+OpenGL渲染工具的封装

    效果图: FFmpegVC: 输入一个沙河内的视频文件(比如:flv格式,内存小)解码为一帧一帧的图片集合(像素格...

  • FFmpeg过时方法的替换

    寻找视频流的第一帧 ======》 获取codec上下文指针 ======》 对该帧进行解码 ======》 编码...

网友评论

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

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