FFmpeg写入输出文件

本文介绍如何使用 FFmpeg 的 API 函数 avio_open2 打开一个输出文件,然后用 av_interleaved_write_frame 来把编码器输出的 AVPacket 保存进去文件。 本文的代码下载地址:百度网盘,提取码:hpdo

与 输出 相关的 API 函数如下: 1,avformat_alloc_output_context2,申请一个输出文件上下文,这个函数会生成 AVFormatContext 2,avformat_new_stream,往容器增加一个输出流,可以是音频流,或者视频流,或者一些其他的数据流。 3,avcodec_parameters_from_context,把 AVCodecContext 里面的 编解码参数 复制到输出流的 AVCodecParameters 。 4,avio_open2,正式打开输出文件。 5,avformat_write_header,往输出文件写入头信息。 6,av_interleaved_write_frame,把 AVPacket 写入输出文件。


要特别注意 avformat_write_header 这个函数,必须是容器里面的所有流都初始化完成了,才能调 avformat_write_header。 本文的代码只有一个视频流,所以比较简单,但是如果同时有音频流跟视频流,那就必须等音频也解码出 AVFrame,音频流初始化完成才能 执行 avformat_write_header。 输出流的初始化主要通

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值