ffmpeg 2个图片合并为视频

  1. 打开图片1,打开解码器

  2. 打开图片2,打开解码器

  3. 打开输出文件

  4. 分配音视频文件封装实例
    avformat_alloc_output_context2(&out_fmt_ctx, nullptr, nullptr, dest_name);

    复制代码
    #include <libavformat/avformat.h>
    
    int avformat_alloc_output_context2(AVFormatContext **out_ctx,
                                       const AVOutputFormat *ofmt,
                                       const char *format_name,
                                       const char *filename);
  5. 打开输出流
    avio_open(&out_fmt_ctx->pb, dest_name, AVIO_FLAG_READ_WRITE);

    复制代码
    #include <libavformat/avformat.h>
    
    int avio_open(AVIOContext **s, const char *url, int flags);
  6. 创建编码器
    AVCodec *codec = avcodec_find_encoder(AV_CODEC_ID_H264);
    AVCodecContext *encodec = avcodec_alloc_context3(codec);

  7. 设置编码器参数(像素格式、视频宽高、帧率、时间基、关键帧间隔时间等)
    encodec->pix_fmt = AV_PIX_FMT_YUV420P;
    encodec->width = src_vStream->width();
    encodec->height = src_vStream->height();
    encodec->framerate = (AVRational{25,1});
    encodec->time_base = (AVRational{1,25});
    encodec->gop_size = 12;
    encodec->max_b_frames = 0; // 0 表示不要B帧
    if(out_fmt_ctx->oformat0>flag & AVFMT_GLOBALHEADER){
    // 允许操作系统显示该视频的缩略图
    encodec->flags = AV_CODEC_FLAG_GLOBAL_HEADER;
    }

  8. 打开编码器

  9. 创建新的数据流
    avformat_new_stream(out_fmt_ctx, nullptr);

  10. 把编码器参数实例复制给目标结构体
    avcodec_parameters_from_context(dest_vStream->codecpar, encodec);

  11. 设置视频流索引
    dest_vStream->codecpar->codec_tag = 0;

  12. 写文件头
    avformat_write_header(out_fmt_ctx, nullptr);

  13. 对视频帧重新编码写入文件(2遍)

  14. 写入文件尾

av_write_trailer(out_fmt_ctx);

相关推荐
2601_965449082 小时前
AI视频制作:做系列考古视频音色不统一,AI 音色克隆的完整流程
人工智能·机器学习·音视频
2601_965449083 小时前
AI视频制作:做系列历史地图视频想固定音色,AI 音色克隆的流程实测
人工智能·音视频
智塑未来4 小时前
AI视频翻译配音工具怎么选?5款工具的链路覆盖对比
人工智能·音视频
做萤石二次开发的哈哈6 小时前
商场分区广播怎么开发?商用音频主机四大技能与音频文件管理实践
音视频·蓝海aiot一站式工作台·公共广播·智慧广播·萤石云开放平台·商用音频主机·矩阵路由
音视频牛哥7 小时前
大牛直播SDK(SmartMediaKit)iOS平台Unity3D RTSP/RTMP播放器集成实践
音视频·unity3d·ios rtmp播放器·ios rtsp播放器·ios unity3d播放器·ios unity rtsp·ios unity rtmp
美狐美颜SDK开放平台7 小时前
视频美颜SDK如何应对快速转头与大幅度面部动作?
android·人工智能·ios·音视频·直播美颜sdk·视频美颜sdk
甜到心里的蛋糕10 小时前
AI 生成 MV 音频异响排查:频谱定位、片段替换与 Nginx 缓存
人工智能·python·nginx·ffmpeg·音视频·音频处理
镭封20 小时前
从视频文案提取到 AI 配音,短视频制作需要哪些工具?
人工智能·智能手机·音视频·语音识别·媒体
2601_9556624621 小时前
搞笑视频配音怎么做?如何选择有辨识度的声音
大数据·人工智能·音视频·语音识别·媒体
镭封1 天前
自媒体内容生产怎么提速?文案整理、配音与剪辑流程
人工智能·小程序·音视频·语音识别·媒体