FFMPEG Codec capabilities笔记

概述

在ffmpeg音频编码中,有些编码器支持任意数量的音频样本(如,ALAW),还有些则仅支持固定长度的音频样本(如,AAC)。这些区别则可以通过codec->capabilities标记进行解读。

AV_CODEC_CAP_VARIABLE_FRAME_SIZE

如果编码器的capabilities字段含有该标记,则表示输入编码器的样本数量是可变的。否则则必须依照编码器的frame_size字段填充样本个数。

if (!(avctx->codec->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE)
    user_nb_samples = avctx->frame_size;
else 
	user_nb_samples = 1234; //value defined by user

这里补充说下avctx->frame_size,该字段表示单个通道包含的样本个数,因此总的输入大小应该为avctx->frame_size * channels * per_frame_bytes(每个样本占用的字节大小,比如S16LE个数样本:2字节)。

AV_CODEC_CAP_SMALL_LAST_FRAME

该字段用于标注,编码器最后一帧可以送样本数小于avctx->frame_size的buffer,以防止编码后的音频被截断。

其他

其它字段若有遇到再慢慢补充。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值